Three.LinePieces用不同的材料(颜色)?

Three.LinePieces用不同的材料(颜色)?

问题描述:

我试图绘制图形密集使用three.js所超过10k的边缘。使用Three.LinePieces用不同的材料(颜色)?

字行片段有更好的表现,但我无法弄清楚如何,因为只有一个“材料”指定每个边缘(线)不同的颜色,可以用来创建线对象。

下面是一些代码:

function drawEdges() { 
    edgeGeometry = new THREE.Geometry(); 
    edgeMaterial = new THREE.LineBasicMaterial({ opacity: 0.1 }); 
     foreach source-target node pair: 
      edgeGeometry.vertices.push(new THREE.Vector3(source.x, source.y)); 
      edgeGeometry.vertices.push(new THREE.Vector3(target.x, target.y)); 
    } 
    var edges = new THREE.Line(edgeGeometry, edgeMaterial, THREE.LinePieces); 
    scene.add(edges); 
} 

我的问题是:是否有可能使用如使用THREE.LinePieces不同的材料?任何暗示是赞赏。

在此先感谢。

如果使用的是WebGLRenderer,就可以了。

在几何中,您需要指定geometry.colors,它的长度等于顶点数的THREE.Color()的数组。

然后您指定材料和网格像这样:

var material = new THREE.LineBasicMaterial({ 
    color: 0xffffff, 
    vertexColors: THREE.VertexColors 
}); 

var mesh = new THREE.Line(geometry, material, THREE.LinePieces); 

例子:http://mrdoob.github.com/three.js/examples/webgl_lines_colors.html

three.js所r.57

+0

谢谢你的提示,@WestLangley。我使用的是CanvasRenderer,因为它提供了更好的线条渲染结果。我想对我来说切换到WebGLRenderer更好。 – Gnavvy 2013-03-18 00:34:47