Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我用 glBegin 和 glEnd 绘制了一个简单的四边形。通过 for 循环,我创建了四边形的副本并在 3D 空间中围绕我的 y 轴旋转它。现在的问题是我只看到前面的四边形。后面的这些不显示。我假设问题出在法线向量内,即朝向我的方向。是否有可能为一个四边形定义两个法线向量。
听起来您需要禁用背面剔除:
glDisable(GL_CULL_FACE);
后面的这些不显示。我假设问题出在法线向量内,
问题不在于法线向量,而在于 OpenGL 所考虑的正面和背面。什么是由屏幕上顶点的缠绕决定的。如果顶点以逆时针顺序在屏幕上,则默认情况下 OpenGL 假定为正面。如果启用背面剔除,则不会绘制背面。你可以禁用剔除,但是你会得到奇怪的光照结果。
最好的方法是用它自己的一组四边形显式地绘制背面;绕组和法线调整。