gpt4 book ai didi

three.js - 在球体上的three.js中翻转法线

转载 作者:行者123 更新时间:2023-12-04 16:27:21 26 4
gpt4 key购买 nike

我一直在四处寻找,但还没有找到我的问题的任何真正好的答案..
问题是我有这个球体..只是一个基本的球体,我想翻转法线
球体获得一种“空心/雕刻效果”,然后将我的纹理应用到球体的“内部”。关于如何翻转法线的任何想法?

另外..如果在three.js中不可能做到这一点..是否可以导入一个法线已经翻转的模型并获得我正在寻找的效果?

最佳答案

您可以通过反转面的缠绕顺序来翻转几何体中的法线。然后,您必须修复 UV。

for ( var i = 0; i < geometry.faces.length; i ++ ) {

var face = geometry.faces[ i ];
var temp = face.a;
face.a = face.c;
face.c = temp;

}

geometry.computeFaceNormals();
geometry.computeVertexNormals();

var faceVertexUvs = geometry.faceVertexUvs[ 0 ];
for ( var i = 0; i < faceVertexUvs.length; i ++ ) {

var temp = faceVertexUvs[ i ][ 0 ];
faceVertexUvs[ i ][ 0 ] = faceVertexUvs[ i ][ 2 ];
faceVertexUvs[ i ][ 2 ] = temp;

}

但是,您只需设置 Material.side = THREE.BackSide 即可获得相同的效果。 , 或 Material.side = THREE.DoubleSide .

在任何一种情况下,您的纹理都将被翻转。你可以预先翻转你的纹理,或者在three.js之外构建一个模型并导入它。

三.js r.65

关于three.js - 在球体上的three.js中翻转法线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21462851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com