2011-12-15 65 views
0

我对创建不同类型的灯光有疑问。全向光和截止角小的光之间有什么区别,我应该在OpenGL中使用什么来实现这些。opengl中灯光之间的区别

+0

欲了解更多信息:http://stackoverflow.com/search?q=%5Bopengl%5D+light&submit=search – Luca 2011-12-15 18:14:46

回答

2

全方位和定向光模型之间的差异是用于选择哪些碎片受光线影响的算法。

全指向灯影响所有的碎片是所有方向,而定向光有一个方向和一个截止角(光锥)。光线通常具有衰减因子,用于限制应用范围。

通常灯会通过添加颜色成分来增加碎片颜色。颜色分量是环境颜色,漫反射颜色,镜面颜色......每个分量都用一些参数进行缩放,例如添加与视点的距离或反射光线相对于视点的角度(使用眼睛表面矢量和法线)。

使用固定管道(或兼容性配置文件),定义了一个state集以启用照明。您可以启用或禁用有限数量的灯光,设置灯光模型和模型参数。光影响顶点颜色,而不是顶点栅格化所得到的片段。

使用可编程管道,灯光由着色器制服定义。由于着色器是可编程的,所以您必须使用着色器源定义您自己的照明模型。

这个问题很广泛。