OpenGL - GL_FRONT与GL_FRONT_AND_BACK

时间:2010-06-12 04:24:33

标签: opengl

我正在修补一个使用OpenGL进行3D渲染的开源项目。在材料的构造中,我看到如下代码:

// set ambient material reflectance
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, mAmbient);

在其他示例中,使用了:

glMaterialfv(GL_FRONT, GL_AMBIENT, mAmbient);

所以我的问题是,这有什么区别?在什么情况下它看起来会有所不同,如果我的音量被所有法线向外指出,是否有任何性能差异?

1 个答案:

答案 0 :(得分:7)

一个设置正面和背面的材质,另一个设置正面。如果你剔除背面,这并不重要。如果你没有剔除背面,那么,你只能看到正面的材料。

如果您正在封闭一个音量,您可能不会直接看到背面 - 如果相机在音量范围内,则唯一的方法就是这样。如果它在外面,那么你将永远不会看到背面,并且渲染它们没什么意义。 (这就是为什么在很多游戏中,如果你强迫相机进入一个物体,它看起来就像所有的多边形都是单面的:那是背面剔除)OpenGL只能为前后面设置不同的属性三角形/四边形等等。