我有两个在一端相交的圆柱体。我可以单独更改交叉点的半径,但它们仍然在一端相遇,如下所示。但是,我希望这两者之间的交点是平滑的,或者换句话说,它们在交点中的法线要像这里提到的那样共享:http ://www.opengl-tutorial.org/intermediate-tutorials/tutorial-9-vbo-索引/ . 我已将法线更新设置为 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,但几何图形还不平滑。