光源

unity shader之——面积光:下篇(面积光源)

面积光其实就是一个长方形光线,是所有几何形体中最易计算的一类面积,这个例子中,面积光和线光源最大的不同是,面积光把空间分成了更多的区域。如果不考虑光源法线,一个长方形的面积光会把空间分成9个区域,共4种类型的照明条件。因此,对于面积光的计算,主要就是确定点落在了这9个区域内的哪一个区域,并使用相应的照明条件计算点的光照。

unity shader之——面积光:上篇(线光源)

面积光是具有形体的一类光源,不像点光源和平行光这类完全抽象化,没有形体的光源。面积光适用于表达柔和的自然光,如通过灯发出的光具有明显的几何形体光源。unity实现了面积光,但仅用于灯光烘焙,而在实时渲染中仍然无法使用面积光。

unity的光源类型和光照衰减

Unity一共支持4种光源类型:平行光、点光源、聚光灯和面光源(area Light)。Shader中最常使用的光源属性有光源的位置、方向(准确的说是到达某点的方向)、颜色、强度以及衰减(具体的说就是,到某点的衰减与该点到光源的距离有关)这5个属性。这些属性和它们的几何定义息息相关。

OpenGL-光源位置的控制

视图变换:将相机移动到准备拍摄的位置,将它对准某个方向。 模型变换:将准备拍摄的对象移动到场景中的指定位置。光源保持静止:在使用完视图和模型变换之前设置光源的位置,init()后面,display()之前。光源出现在视图变换之前,后面进行的变换与光源没有关系,相对于视点固定。