我有多个WebGL线要渲染,它们都具有相同的渲染风格。因此,对于性能,我想在一次绘制调用中将它们全部渲染为单个对象。
但问题是这些线路并非全部相互连接。
请参阅此处的示例:http://jsfiddle.net/b6jgS/6/
正如你可以看到戒指连接,但我不希望它们。然而,我仍然想在一次平局电话中画出它们。
相关代码是这样的,它只是为某些环生成一些几何图形:
# Pardon the coffeescript!
ringsGeom = new THREE.Geometry()
for u in [-2..2]
for v in [0..100]
ringsGeom.vertices.push new THREE.Vector3(
Math.sin(v/100 * 2 * Math.PI)
Math.cos(v/100 * 2 * Math.PI)
u
)
rings = new THREE.Line(
ringsGeom
new THREE.LineBasicMaterial(
color: 0xffff00
linewidth: 1
)
)
scene.add rings
如何让单个对象绘制多条谨慎的断开线?
答案 0 :(得分:2)
您将几何体构造为表示各个线段的点对数组,然后像这样创建线条:
var line = new THREE.Line( geometry, material, THREE.LinePieces );
有关示例,请参阅GridHelper.js。
three.js r.58
P.S。 three.js包含requestAnimationFrame()
垫片。您不需要自己包含它。