opengl中灯光的区别

时间:2011-12-15 17:19:11

标签: c++ opengl graphics glut

我有一个关于创造不同类型光的问题。全向光和具有小截止角的光之间有什么区别,我应该在OpenGL中使用什么来实现这些。

1 个答案:

答案 0 :(得分:2)

全向和定向光模型之间的区别在于用于选择哪些片段受光影响的算法。

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

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

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

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

问题非常广泛。