2014-09-20 130 views
0

我喜欢画两条线[10,10,0] [ - 10,-10,0]。我可以创建一个行成功地,带点云材料和线条材料的多种材料

var geometry = new THREE.Geometry(); 
geometry.vertices.push(new THREE.Vector(10,10,0)); 
geometry.vertices.push(new THREE.Vector(-10,-10,0)); 
geometry.verticesNeedUpdate = true; 
var material = new THREE.LineBasicMaterial({ color: 0xff0000, linewidth: 2, side: 2 }); 
var line = new THREE.Line(geometry, material); 
scene.add(line); 

我喜欢画画就行的顶点两种颗粒,

var geometry = new THREE.Geometry(); 
geometry.vertices.push(new THREE.Vector(10,10,0)); 
geometry.vertices.push(new THREE.Vector(-10,-10,0)); 
geometry.verticesNeedUpdate = true; 
var material = new THREE.LineBasicMaterial({ color: 0xff0000, linewidth: 2, side: 2 }); 
var material1 = new THREE.PointCloudMaterial({ color: 0xff0000, size: 3, sizeAttenuation: false }); 
var materials = new THREE.MeshFaceMaterial([material, material1]); 
var line = new THREE.Mesh(geometry, materials); 
scene.add(line); 

这种方法不能正常工作,创建的模型,但在场景中不可见。 任何人都可以给出一些好的建议。

回答

0

AFAIK一个网格将需要至少3个顶点在网格中创建一个面。看看Line class docs如何创建一条线。
例如。

var line = new THREE.Line(geometry, material) 
+0

谢谢克里斯。是的,但是对于创建一条线来说,两个顶点就足够了(起点和终点),我可以轻松创建一条不是问题的线,创建一个particlecloud也不是问题,在THREE.Line中我们不能使用multipleMaterial,所以我想创建一个网格是使用meshfacematerial的方式。这里我的需求是多种材料,(即)单线网格或线条中的线性材料和点云材料。我的要求是,在线开始和结束点处有两个粒子的线,而我用鼠标事件移动粒子时,线顶点应该移动到粒子位置 – user2089677 2014-09-20 10:08:47

+0

啊好的,我从来没有真正使用Line类,所以不能帮助对不起。 – 2pha 2014-09-20 17:54:52