构建了一个非常简单的OpenGL程序,该程序由一个居中的纹理立方体组成,其顶点/法线值分别为+/- 1.0,我有两个关于固定管道照明模型行为的问题。
1)当我将全局环境光设置为{1.0,1.0,1.0,1.0}时,为什么我的对象没有完全照亮。我希望这些设置能够渲染模型,就像光线被禁用一样(即所有曲面都以全强度渲染)。
2)当我在{0.0,0.0,2.0}处将漫反射光直接放置在模型前面时,一切看起来都能正确渲染,但如果我将光线向后移动到{0.0,0.0,200.0},模型渲染好像光线已被禁用(即所有表面都以全强度渲染)。
答案 0 :(得分:3)
由于您没有发布实际的设置代码,我所能做的就是猜测。
1:环境光强度用环境表面颜色调制。如果尚未正确设置材质,则此值不与漫反射曲面颜色相同。当然,由于你没有发布代码,我不能说你是否正确地做了。
2:我需要看到正在发生的事情的渲染,但这可能是由于没有任何强度衰减造成的。实际上,随着光线越来越远,它显得更亮,因为the normals are more likely to be closer to facing it than if it is close to the surface。点光源在移开时变成定向光。所以你需要使用衰减。