转换z维度后,纹理将从“平面网格”中消失

时间:2018-10-21 01:40:44

标签: javascript three.js textures

我发现,当我构造一个应用了Mesh的平面Texture时,如果我对z尺寸进行正向或负向平移(以避免z格斗),纹理就会消失。

有效的代码(z值未翻译):

var material = new THREE.MeshBasicMaterial({ map: texture, transparent: true, opacity: 0.5 });
var geometry = new THREE.PlaneBufferGeometry(1000, 1000);
geometry.translate( 2, 2, 0 ); // when the z value is 0 the stripe texture will show 
var stripe = new THREE.Mesh(geometry, material);
scene.add(stripe);

无效的代码(z值正负转换):

var material = new THREE.MeshBasicMaterial({ map: texture, transparent: true, opacity: 0.5 });
var geometry = new THREE.PlaneBufferGeometry(1000, 1000);
geometry.translate( 2, 2, 2 ); // when the z value is translated either positively or negatively (other than 0) the stripe texture will not show up
geometry.translate( 2, 2, -2 ); // this one doesn't work either
var stripe = new THREE.Mesh(geometry, material);
scene.add(stripe);  

我使用的OrthographicCamera的前锥体为0,后锥体为2000,因此应显示正值 。当我将视锥的前部更改为-100时(尽管我听说应该避免负的视锥部值,尽管我不确定为什么),但是当z出现时,条纹 do 出现维是一个非0的值。这是怎么回事?

更新: 这是一个有效的fiddle,您可以在其中转换函数中的z值并亲自查看问题。

0 个答案:

没有答案