2017-01-27 2 views
0

У меня есть массив Vector3s, которые определяют произвольную изогнутую форму в 3D-пространстве. Я могу сделать схему кривой в Three.js, используя THREE.Geometry и THREE.Line, но я хотел бы заполнить ее цветом.3D Curve Geometry in Three.js

Я пробовал использовать THREE.ShapeGeometry и THREE.Mesh, но кажется, что THREE.ShapeGeometry предназначен только для 2D-плоскостей (z-координаты моих вершин игнорируются). Я также попытался использовать THREE.Geometry и определить грани в дополнение к вершинам, которые я хотел, но не повезло.

Как мне это сделать?

Код:

geom.vertices = curve.getPoints(100); 

for (var i = 0; i < 97; i++) { 
    geom.faces.push(new THREE.Face3(i, i + 1, i + 2)); 
} 

var material = new THREE.MeshNormalMaterial(); 

obj = new THREE.Mesh(geom, material); 
scene.add(obj); 

ответ

0

Исправлено путем изменения кода в вопросе выше выдержке ниже:

geom.vertices = curve.getPoints(100); 

for (var i = 0; i < 98; i++) { 
    geom.faces.push(new THREE.Face3(0, i + 1, i + 2)); 
} 

var materialObj = { color : 0xff0000, side: THREE.DoubleSide }; 
var material = new THREE.MeshBasicMaterial(materialObj); 

obj = new THREE.Mesh(geom, material); 
scene.add(obj);