javascript - Three.js 上的 VertexNormals 计算

标签 javascript three.js normals vertices

我不确定这是否是一个错误,但是一旦您在 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 个现有向量的中心吗?像这样的东西:
vector
如果没有,有什么解释为什么会发生这种情况吗?

提前致谢。

最佳答案

computeVertexNormals 计算连接到每个顶点的面的面法线的平均值。对于盒网格,并非所有顶点都连接到相同数量的面,因此您有不同的法线平均值。绘制wireframe使这更容易看到。

关于javascript - Three.js 上的 VertexNormals 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44504435/

相关文章:

带有 Bootstrap 的 JavaScript 表格过滤器

three.js - Threejs中的图像失真

javascript - three.js transformControls位置错误

c++ - 有人可以解释一下这段代码中的法线是如何计算的吗?

algorithm - 计算具有 100% 平滑度的平滑顶点法线的一般方法

Javascript onload 事件未在对象内触发

javascript - 使用 Node FS 将大型 CSV 写入 JS 文件

c++ - FbxSDK 打破常态

javascript - Testem gulp 任务完成后挂起

javascript - 如何比较对象的颜色属性 |三.js