在openGL中,我有一个沿轴按-1比例缩放的对象...这将导致该对象无法正确渲染,因为所有正面现在都是背面。缺少禁用剔除功能后,如何使该对象正确渲染?有没有一种方法可以在不修改构成我模型的纹理法线顶点的情况下进行操作?

最佳答案

您可以简单地切换剔除模式。您可以使用glCullFace(mode)来决定应该剔除哪些三角形。提供GL_BACK的参数意味着仅渲染正面的多边形,而GL_FRONT的参数意味着仅渲染背面的多边形。因此,如果您的转换意味着“背面”多边形实际上是正面,则调用glCullFace(GL_FRONT)应该可以解决问题。

或者,您也可以使用glFrontFace(dir)来控制将哪些多边形视为正面/背面,并使用GL_CW(顺时针)或GL_CCW(逆时针)(默认为逆时针,因此如果将其设置为Clocksie,则原始背面多边形将被视为正面)。

10-07 15:18