OpenGL-glVertex替换绘制的点?

OpenGL-glVertex替换绘制的点?,opengl,replace,Opengl,Replace,在下面的OpenGL代码中,会发生什么 glNormal3f( nx1, ny1, nz1 ) glVertex3f( x1,y1,z1 ) glNormal3f( nx2, ny2, nz2 ) //different Normal glVertex3f( x1,y1,z1 ) //same vector 大写: 我有一个带法线的点,如果我用另一个法线再次创建该点,该点会更改其旧法线向量,或者忽略最后一次调用 当我试图以更平滑的方式渲染带有灯光的球体时,出现了这个问题 使用法线。它

在下面的OpenGL代码中,会发生什么

glNormal3f( nx1, ny1, nz1 )
glVertex3f( x1,y1,z1 )
glNormal3f( nx2, ny2, nz2 ) //different Normal
glVertex3f( x1,y1,z1 )      //same vector
大写:
我有一个带法线的点,如果我用另一个法线再次创建该点,该点会更改其旧法线向量,或者忽略最后一次调用

当我试图以更平滑的方式渲染带有灯光的球体时,出现了这个问题
使用法线。

它只需在完全相同的位置绘制两个法线。在点被“识别”为位于同一位置、更新法线等的场景背后,没有什么神奇之处

glNormal3f()
只设置当前法线,它将一直保持这种状态,直到下一次调用
glNormal3f()
为止


每个
glVertex3f()
复制当前法线、颜色和纹理坐标,并向GL命令队列提交完整的顶点。

法线如何?两个三角形共用一个边。。。如果我将法线重新指定给点,三角形的面会改变吗?当涉及到照明时,它是法线吗?这取决于你如何定义事物。围绕这些顶点和法线的代码是什么样子的?可以使用“逐顶点”法线,这些法线是连接到此顶点的面法线的归一化平均值,以获得平滑着色。或者只是面法线(可能写为每个顶点的单独法线)具有平面着色三角形。在后一种情况下,您可能会得到代码中显示的内容。同一顶点使用多条法线多次出现。确定。“逐顶点”法线是什么意思?平滑着色是如何实现的?这给出了一个很好的解释:;)好啊谢谢。我理解。在我的例子中,我画了一个球体…我试图计算周围法线的总和,但我没有必要。我为每个顶点指定了一条法线,该法线等于标准化的半径,并且有效。为了实现这种平滑,openGl需要一些enable()选项,或者它是内置的?