Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js-双面平面单面反转_Three.js_Textures - Fatal编程技术网

Three.js-双面平面单面反转

Three.js-双面平面单面反转,three.js,textures,Three.js,Textures,我使用了将面推到几何体的方法来实现双面平面 for (var i=0, len=geometry.faces.length; i<len; i++) { var face = geometry.faces[i].clone(); face.materialIndex = 1; geometry.faces.push(face); geometry.faceVertexUvs[0].push(geometry.faceVertexUvs[0][i].slice

我使用了将面推到几何体的方法来实现双面平面

for (var i=0, len=geometry.faces.length; i<len; i++) {
    var face = geometry.faces[i].clone();
    face.materialIndex = 1;
    geometry.faces.push(face);
    geometry.faceVertexUvs[0].push(geometry.faceVertexUvs[0][i].slice(0));
}

for(var i=0,len=geometry.faces.length;i如果要将两个平面背靠背放置,最好的方法如下:

var geometry = new THREE.PlaneGeometry(80, 116, 20, 20);

var geometry2 = geometry.clone();
geometry2.applyMatrix( new THREE.Matrix4().makeRotationY( Math.PI ) );

THREE.GeometryUtils.merge( geometry, geometry2, 1 );
执行此操作时,请确保每个平面的材质都具有
material.side=3.FrontSide

更新小提琴:


three.js r.63

这会使顶点加倍,我需要做一些繁重的变换,这种方法会使计算加倍不,不会。两种方法都有相同数量的面、法线、顶点法线和uv,只是顶点列表不同。您可以调用
geometry.mergeVertices()
如果您愿意,顶点将是相同的。即使它看起来不错,动画开始时还是一团糟,当我可以共享项目时,我会让您知道;现在我只翻转图像:)是的,
CanvasRenderer
有其局限性。