Three.js: Picking de área

Creado en 27 abr. 2012  ·  5Comentarios  ·  Fuente: mrdoob/three.js

Hola, en primer lugar, lo siento mucho si no es aquí donde debo hacer preguntas generales.

¿Existe un ejemplo de "selección de áreas" de varios objetos 3D? ¿Eso es arrastrar un marco con el mouse y seleccionar todos los objetos dentro de él?

He estado jugando con el objeto THREE.Ray y sus métodos de intersección, pero sin recorrer y rastrear cada coord XY para encontrar todas las intersecciones, estoy un poco perdido.

Busqué en toda la web y en github y stack overflow, pero no encontré ayuda.
Cualquier ayuda muy apreciada.

Gracias por adelantado
Julz

Question

Todos 5 comentarios

Sería mejor para usted rastrear sus objetos en la escena y luego recorrer cada coordenadas XY. En este caso, no podrá usar THREE.Ray y tendrá que implementar una lógica personalizada para averiguar si un objeto está dentro del marco. Creo que este enfoque acelerará drásticamente su código.

Hmmm, este es un problema interesante.

Creo que el rectángulo en la pantalla debería corresponder a algún subfrustum de la cámara. Si pudiera construir una matriz para este frustum, entonces podría intentar hacer la misma verificación que hacemos para el sacrificio de frustum.

Sí, eso tiene sentido.
Aunque no me gustan mucho las coordenadas 3D o las matrices complejas,
Si defino un THREE.Matrix4 pasando vértices de rectángulo (arrastre del mouse) y puntos cercanos lejanos al método Matrix4.makeFrustum.
¿Podría entonces crear un THREE.Frustum pasando Matrix4 en el método Frustum.setFromMatrix?
Luego, use el método Frustum.contains para detectar si hay un objeto dentro de él.

¿Suena eso como si tuviera una gran esperanza de funcionar?

¿Las coordenadas del mouse se relacionan con las coordenadas del mundo 3D? ¿Es la posición del mouse relativa a las cámaras cerca del plano o algo así?

Lo siento si solo estoy siendo un n00b, realmente necesito una respuesta a esto.

Necesita proyectar las coordenadas del mouse en el mundo 3D. Echale un vistazo a éste ejemplo:
http://mrdoob.github.com/three.js/examples/webgl_interactive_cubes.html

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

filharvey picture filharvey  ·  3Comentarios

konijn picture konijn  ·  3Comentarios

boyravikumar picture boyravikumar  ·  3Comentarios

Horray picture Horray  ·  3Comentarios

ghost picture ghost  ·  3Comentarios