【发布时间】:2017-09-22 12:34:04
【问题描述】:
我有两个在一端相交的圆柱体。我可以单独更改交叉点的半径,但它们仍然在一端相遇,如下所示。但是,我希望这两者之间的交点是平滑的,或者换句话说,它们在交点中的法线要像这里提到的那样共享:http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-9-vbo-indexing/。 我已将法线更新设置为 TRUE,并将法线的所有 y 分量在交点处更改为零。它仍然没有显示出平滑的交叉点。这两个圆柱体是用BufferGeometry制作的。
所以我的部分代码更重要:1- 因为几何是 BufferGeometry,所以我首先使用下面的两个命令为两个几何创建法线:
comp.mesh.geometry.computeFaceNormals();
comp.mesh.geometry.computeVertexNormals();
2- 然后由于两个几何图形的顶点数相同,我将所有顶点的 y 分量设置为 0:
for (i=0;i<comp.mesh.geometry.attributes.position.array.length;i++){
comp.mesh.geometry.attributes.normal.array[i*3 + 1] = 0;
comp1.mesh.geometry.attributes.normal.array[i*3 + 1] = 0;
}
当我让程序显示法线时,它们的法线 y 分量为 0,但几何图形还不平滑。
【问题讨论】:
-
显示您的代码。
-
谢谢韦斯特兰利。请查看添加链接中的代码。
-
请在您的帖子中分享您的代码(最好是sn-p)。如果 jsfiddle 曾经被删除,那么您的问题的上下文就会随之消失。