【发布时间】:2011-08-11 21:18:07
【问题描述】:
只是一个简单的问题。我在 3D OpenGL 场景中有一个四边形。我逆时针定义了平面的法线。使法线指向平面的一侧。在我的光源方向。四边形很轻,但在两侧。
它不应该只在四边形的一侧发光吗?还是像四边形这样的基元非常薄,因此从两侧看起来都很轻。因此,如果我想制作一堵墙,我会使用两个四边形。墙的每一侧都有一个。
谢谢
【问题讨论】:
只是一个简单的问题。我在 3D OpenGL 场景中有一个四边形。我逆时针定义了平面的法线。使法线指向平面的一侧。在我的光源方向。四边形很轻,但在两侧。
它不应该只在四边形的一侧发光吗?还是像四边形这样的基元非常薄,因此从两侧看起来都很轻。因此,如果我想制作一堵墙,我会使用两个四边形。墙的每一侧都有一个。
谢谢
【问题讨论】:
两侧多边形的默认 OpenGL 光照行为是计算正面的光照并将其应用于两侧。
您可以通过为每个双面多边形使用具有单独法线的前后多边形来解决此问题。
或者,您可以使用 glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE) 启用 GL_LIGHT_MODEL_TWO_SIDE 进行光照计算。请参阅glLightModel reference 了解更多信息。
【讨论】: