0

我用 glBegin 和 glEnd 绘制了一个简单的四边形。通过 for 循环,我创建了四边形的副本并在 3D 空间中围绕我的 y 轴旋转它。现在的问题是我只看到前面的四边形。后面的这些不显示。我假设问题出在法线向量内,即朝向我的方向。是否有可能为一个四边形定义两个法线向量。

4

2 回答 2

3

听起来您需要禁用背面剔除:

glDisable(GL_CULL_FACE);
于 2011-11-10T11:51:36.733 回答
0

后面的这些不显示。我假设问题出在法线向量内,

问题不在于法线向量,而在于 OpenGL 所考虑的正面和背面。什么是由屏幕上顶点的缠绕决定的。如果顶点以逆时针顺序在屏幕上,则默认情况下 OpenGL 假定为正面。如果启用背面剔除,则不会绘制背面。你可以禁用剔除,但是你会得到奇怪的光照结果。

最好的方法是用它自己的一组四边形显式地绘制背面;绕组和法线调整。

于 2011-11-10T13:15:48.380 回答