2013-06-24 19 views
2

我有多個WebGL線要渲染,並且它們都具有相同的渲染風格。因此,爲了表現,我想在一次繪製調用中將它們全部渲染爲單個對象。將WebGL非連續線渲染爲單個對象

但問題是,線路並不全都連接到對方。

見這裏的例子:http://jsfiddle.net/b6jgS/6/

rings

正如你可以看到環連接,但我不希望他們。然而,我仍然希望通過一次平局來吸引他們。

相關的代碼是這樣的,它只是產生一些環一些幾何:

# 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 

如何讓單個對象繪製多個離散的斷開的線?

回答

2

您建造的幾何形狀對錶示各個線段上的點的陣列,然後創建訂單像這樣:

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

有關示例,參見GridHelper.js

three.js r.58

P.S. three.js包括requestAnimationFrame()墊片。你不需要自己包含它。

+0

所以這將有效地加倍幾何中的頂點數,對吧?如果這些比我的例子更復雜的話,這可能是一個大問題嗎? –

+0

雙,是的。這是一個權衡。 – WestLangley