Otra forma de NO hacer una bombilla (o un editor con Xj3D)

En el post anterior decía que para que un browser Xj3D pudiera ser utilizado para crear un editor hacían falta ciertos datos que, tal y como está, no se podían obtener fácilmente, a pesar de lo triviales que pudieran parecer:

  • dónde estamos (la posición del observador)
  •  hacia dónde miramos (la orientación del observador)
  • en qué dirección apuntamos el ratón (el usuario está señalando en 3D en una línea definida por su posición y la posición en la que apunta con el ratón)
  • si hay algún objeto en la dirección en la que apunta (para escoger un objeto, lo que se denomina “picking”)

Las tres primeras partes se pueden obtener tan sólo usando características de X3D. No es inmediato, hay que recurrir a crear un mundo con un juego de sensores especialmente dispuestos para obtener todas esas coordenadas. Y encontré una forma de obtener toda esa información… salvo por el último punto: ni siquiera con las últimas adiciones al estándar (que incluyen capacidades de picking) se puede detectar la intersección del punto que señala el usuario con cualquier objeto de la escena.

Lo frustrante es que esa información realmente existe y se calcula en el interior del browser Xj3D; bastaría con hacerla visible al exterior de alguna manera. En principio pensé en trastear con el código y crear algun método que me permitiera acceder a esa información directamente. Pero viendo la página web de un producto basado en X3D, me he dado cuenta de que las compañías, cuando tienen necesidades que el estándar no cubre, las solucionan creando nuevos nodos que se puedan incluir en las escenas para obtener la información necesaria. De esta manera, la nueva funcionalidad queda accesible no sólo para una aplicación en concreto a través de parches o agujeros, sino para todos los usuarios de X3D a los que pudiera interesar.

No obstante, implementar un nuevo nodo no parece ser exactamente trivial, sobre todo porque tendría que definir primero qué información quiero conseguir con esos nodos y estructurarla de forma que pudiera ser útil en general. Así que para averiguar qué información necesaria se puede hacer accesible a través de nuevos nodos y de dónde se puede sacar, la siguiente tarea será analizar cómo se controla internamente en Xj3D la posición y orientación del usuario.

2 comments so far

  1. zenphp on

    hola, se puede hacer algo así como 1 visualizador de modelos así simple!, me interesaría hacer uno🙂

  2. zenphp on

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: