2015-02-10 64 views
0

我想在我的飛機上畫一個二維平面,但我無法得到一個好的解決方案。到目前爲止,我只是在飛機上繪製3D線。帶有紋理的3D平面上的二維覆蓋圖

geometry = new THREE.Geometry(); 
geometry.vertices.push(new THREE.Vector3(HANDLES[0].position.x, HANDLES[0].position.y, HANDLES[0].position.z)); 
geometry.vertices.push(new THREE.Vector3(HANDLES[0].position.x, HANDLES[1].position.y, HANDLES[0].position.z)); 
geometry.vertices.push(new THREE.Vector3(HANDLES[0].position.x, HANDLES[1].position.y, HANDLES[1].position.z)); 
geometry.vertices.push(new THREE.Vector3(HANDLES[0].position.x, HANDLES[0].position.y, HANDLES[1].position.z)); 
geometry.vertices.push(new THREE.Vector3(HANDLES[0].position.x, HANDLES[0].position.y, HANDLES[0].position.z)); 

material = new THREE.LineBasicMaterial({ 
    color: 0xff00f0, 
    linewidth: 20 }); 

line = new THREE.Line(geometry, material); 
scene.add(line); 

結果看起來不太好,因爲該行與紋理混在一起。

這將是在平面上繪製淨2D圖形的最佳方式?然後,我想使用這個2D形狀來選擇飛機中的感興趣區域。

我想一個解決方案是使用正交相機+盒子,但我想避免這種情況,如果可能的話。

enter image description hereenter image description here

謝謝, 尼古拉斯

回答

0

爲了防止Z-戰鬥(共面[在同一平面上]對象入門混淆),則可以設置對象作爲透明與不透明1.0中的一個( hacky但很容易的方法),或者你可以設置材料上的.polygonOffsetpolygonOffsetFactorpolygonOffsetUnits(設置爲1.0應該很容易將其排除),但請隨時致電read more about it

+0

謝謝,另請參閱:https://github.com/mrdoob/three.js/issues/2593 https://github.com/benpurdy/threejs-decals – Nicolas 2015-02-11 08:10:15