object - texture - three.js-ejemplo de grupo de malla?(TRES.Objeto3D() avanzado)
three.js tutorial (2)
Estoy intentando comprender cómo agrupar / vincular mallas secundarias con un padre. Quiero ser capaz de:
- arrastre el padre
- rotar elementos secundarios relativos a los padres
- hacer que la rotación / traducción de los padres haga lo correcto para los niños
Mi único fondo en esto es usar LSL en Second Life para manipular prims vinculados en un objeto. Estoy pensando que no quiero fusionar mallas, porque quiero mantener el control (flotar, texturizar, girar, escalar, etc.) sobre cada niño.
¿Algún buen tutorial sobre esto? Esto se logra con THREE.Object3D (), ¿sí?
gracias, Daniel
De otra manera, porque una malla también puede ser un padre
meshParent.add(meshChild1);
meshParent.add(meshChild2);
scene.add(meshParent);
o
mesh1.add(mesh2);
mesh3.add(mesh1);
scene.add(mesh3);
mesh3 manipula todas las mallas, mesh1 se manipula y mesh2, mesh2 se manipula
El arrastre será un poco más complicado porque necesita determinar dónde se encontrarán las posiciones x / y del mouse en la pantalla (espacio de pantalla) en el mundo 3D, luego tendrá que lanzar un rayo y verificar si interseca el objeto que quieres arrastrar. Supongo que esta será una pregunta diferente.
Establecer la jerarquía de objetos es bastante simple. Como insinuó, usará una instancia THREE.Object3D para anidar objetos y usar su método add () . La idea es usar una Malla para objetos que tengan geometría, y las instancias de Object3D, donde solo necesitas anidar elementos. Sugiero comenzar con la muestra canvas_geometry_hierarchy .
Los bits interesantes son:
group = new THREE.Object3D();//create an empty container
group.add( mesh );//add a mesh with geometry to it
scene.add( group );//when done, add the group to the scene