Hay varias maneras de utilizar la geometría en three.js, a partir de modelos de exportación a través de un editor 3D (como Blender, para lo cual un buen three.js exporter ya existe), a la creación de geometría desde cero.
Una manera sería crear una instancia de TRES.Geometría y agregar vértices, luego averiguar cómo se conectan para agregar índices faciales, pero esta no es una manera fácil de hacerlo. Yo sugeriría comenzando con las geometrías existentes (que se encuentra en el paquete de extras/geometrías) como THREE.CubeGeometry, THREE.CylinderGeometry, THREE.IcosahedronGeometry, THREE.OctahedronGeometry, etc.)
Además hay algunas clases que realmente agradables le permite generar extrusiones (THREE.ExtrudeGeometry) y tornos (THREE.LatheGeometry). Para extrusiones, vea esto example.
Mencionaste crear media esfera. Ese es un candidato ideal para usar LatheGeometry. Todo lo que necesita hacer es crear una ruta de medio círculo (como una matriz de instancias de Vector3) y pasarla al torno para que gire el semicírculo en 3D, una media esfera. He aquí un ejemplo:
var pts = [];//points array - the path profile points will be stored here
var detail = .1;//half-circle detail - how many angle increments will be used to generate points
var radius = 200;//radius for half_sphere
for(var angle = 0.0; angle < Math.PI ; angle+= detail)//loop from 0.0 radians to PI (0 - 180 degrees)
pts.push(new THREE.Vector3(Math.cos(angle) * radius,0,Math.sin(angle) * radius));//angle/radius to x,z
geometry = new THREE.LatheGeometry(pts, 12);//create the lathe with 12 radial repetitions of the profile
Plug que la geometría en su malla y Bob de que el tío!
Opcionalmente se puede centrar la malla/pivote usando GeometryUtils:
THREE.GeometryUtils.center(geometry);
Que se diviertan!
Gracias amigo ... Puedo ver que sabes de lo que hablas ... así que ¿tienes una idea de cómo puedo hacer los objetos arrastrables? Vi algunos ejemplos y descubrí que tiene que ver con Three. Ray ... ¿Sabes algo al respecto? – BorisD
Me alegro de que ayude. Cada vez que quiero hacer algo con three.js compruebo si ya hay un ejemplo :) [webgl_interactive_draggablecubes] (http://mrdoob.github.com/three.js/examples/webgl_interactive_draggablecubes.html) es el lugar para comenzar. Necesita usar los oyentes mouseup/mousedown/mousemove. La idea es el mouse Las coordenadas 2D se convierten a 3D en función de la cámara y un rayo se "dispara" a través del espacio en profundidad. Luego hay una prueba para verificar si hay algún objeto en ese rayo/línea (cualquier intersección), de ser así, SELECCIONADO se establece en el primer objeto de la lista (si lo hay) ... etc –
larga historia corta, si copia esos 3 oyentes en su proyecto y tienen las variables SELECTED e INTERSECTED y proyector en la parte superior, también debería funcionar en su archivo. –