【发布时间】:2014-04-08 03:37:20
【问题描述】:
如果你看这张照片:
您可以看到左右墙壁比其他墙壁更亮,还有椅子的脸。 我想知道,这是正常人的问题吗?还是可能只是照亮这些表面的光的位置?
在我的主要方法中,我只是这样做:
//enable lighting
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
//setup lighting
float lightColor [] = {1.0f, 0.8f, 0.8f,1.0f};
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, lightColor);
GLfloat lightpos[] = {2,2,4,4};
glLightfv(GL_LIGHT0,GL_POSITION, lightpos);
如果您需要查看法线,我可以上传它,但我不确定它们是否有问题。
【问题讨论】:
-
为什么
lightpos的最后一个组件是4?对于定向光,它应该为 0,对于点光源,它应该为 1。此外,使用仅计算顶点照明的固定管道,通常不会获得具有大表面(相对于与灯光的距离)的非常好的照明。您可以尝试将几何体拆分为较小的三角形。
标签: c opengl textures lighting normals