我不知道我做错了什么还是错过了什么,但我想模拟阳光,例如在晴天。
当物体面对定向光时,它的光线很好,那里没有问题。如果我绕过该物体并回头看,那是黑暗的。并不是因为我正在使用GL_AMBIENT
而太暗,但对于晴天来说仍然太暗了。如果增加该值,它将永远看起来不会更好,因为物体面向光的一侧会太亮。
而且,环境光还有一个烦人的问题,当看着物体的背面时,我看不到任何形状,只有纯色。很难解释,下面是一些图片:
对象前:http
: //i.stack.imgur.com/YW53X.png对象前:http : //i.stack.imgur.com/Qufha.png
如您所见,正面看起来很漂亮,可以看到红色的形状。在背面,很简单,看不到相同的形状。
现在,我知道我正在看物体的背面,并且我朝光的方向看,它应该比正面暗。但是它不应该看起来像这样简单。这不是我们在阳光下看着某个物体时看到的,我们看到这些物体形成了某种形状。
如何在OpenGL上具有相同(或相似)的效果?
我的灯光当前定义如下:
float posLight0[4] = {-1.0f, 1.0f, 1.0f, 0.0f};
float ambLight0[4] = {0.5f, 0.5f, 0.5f, 0.5f};
glLightfv(GL_LIGHT0, GL_POSITION, posLight0);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambLight0);