我不确定这是否是一个错误,但是一旦您在 THREE.BoxGeometry
中调用 geometry.computeVertexNormals()
,您就可以计算顶点法线,我认为结果向量是错误的。
拿this举个例子:
geometry = new THREE.BoxGeometry(50, 50, 50);
geometry.computeVertexNormals();
material = new THREE.MeshNormalMaterial();
如您所见,一切看起来都已正确完成,但是如果您旋转 X 轴,您会看到向量指向 different方向。
mesh.rotation.x = 90 * Math.PI / 180;
我们难道不应该期望在几何合并之前向量精确地指向 3 个现有向量的中心吗?像这样的东西:
如果没有,有什么解释为什么会发生这种情况吗?
提前致谢。
最佳答案
computeVertexNormals
计算连接到每个顶点的面的面法线的平均值。对于盒网格,并非所有顶点都连接到相同数量的面,因此您有不同的法线平均值。绘制wireframe使这更容易看到。
关于javascript - Three.js 上的 VertexNormals 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44504435/