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