我正试图在我的飞机顶部绘制一个2D广场,但我无法找到一个好的解决方案。到目前为止,我只是在飞机顶部绘制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形状来选择平面中感兴趣的区域。
我想解决方案是使用正交相机+盒子,但如果可能的话我想避免使用。
谢谢, 尼古拉斯
答案 0 :(得分:0)
为了防止z-fighting(共面[在同一平面上]对象混淆)你可以将其中一个对象设置为透明,不透明度1.0(hacky但很简单)或者你可以设置.polygonOffset
,polygonOffsetFactor
和polygonOffsetUnits
在材料上(将两者都设置为1.0应该很容易将其排除),但随意read more about it。