我正在关注计算机图形通过OpenGL,第2版由Sumanta Guha第二版,并在第35页,它说,
从提高(原件)square.cpp的第一个顶点
glVertex3f(20.0, 20.0, 0.0)到glVertex3f(20.0, 20.0, 1.5)原因广场-实际上,新的数字是不是正方形更多-被裁剪.相反,如果第二个顶点从升起glVertex3f(80.0, 20.0, 0.0)到glVertex3f(80.0, 20.0, 1.5),那么这个数字是从当第一个顶点提出修剪过,但非常不同.为什么?对称性结果不应该相似吗?提示:OpenGL在将它们三角形化为三角形之后绘制多边形,其中多边形的第一个顶点是扇形的中心.例如,图2.16中的扇形由顶点v0周围的三个三角形组成.
相应代码的样子
glVertex3f(20.0, 20.0, 0.0);
glVertex3f(80.0, 20.0, 0.0);
glVertex3f(80.0, 80.0, 0.0);
glVertex3f(20.0, 80.0, 0.0);
Run Code Online (Sandbox Code Playgroud)
如果我只将第一个顶点的z轴设置为1.5f,我得到这样的输出,
如果我只将第二个顶点的z轴设置为1.5f,我会得到以下输出
在后一种情况下,我可以理解为什么我因为削波而得到那个输出,但是我不明白为什么我在前一种情况下得到那个输出.
您正在绘制两个三角形:A,B,C和A,C,D.
如果更改其中z一个顶点,则两个三角形将不再位于同一平面中.
在第一种情况下,您更改A会影响两个trianges.在第二种情况下,您正在更改B,这将仅影响第二个三角形.
请注意,您使用的代码非常过时,并且无法在OpenGL的现代核心配置文件中工作,其中"现代"意味着:十年之后.