光照計算orm
光照計算主要目的是 爲了獲得 高頻 中頻 低頻 信息htm
高頻信息是細節,中低頻是總體控制遊戲
例如低模 自己是中低頻, normal map diffuse map 增長了高頻信息ip
高光也是高頻信息it
AO 遮蔽,高頻io
例如在計算霧效果時,簡單的線性距離深度變化是 低頻, 再加上基於高度變化,基於太陽光朝向顏色,基於距離的 mipmap, 增長了高頻細節渲染
光照系統分爲:map
預先計算反射
實時計算技術
光照系統的預先計算總體流程
光照烘焙涉及到4個方面
光源,物體,材質,UV或者probe
光照烘焙貼圖,基於對場景中靜態物件進行UV展開,將光照信息寫入
寫入信息,能夠包括直接光, 間接光,陰影,的顏色和強度
光照貼圖還能夠包括主要光方向, directional lightmap 模式中,包括了主要光方向信息,用於實時計算的時候,結合normalmap 計算diffuse color , 而不是將light map 做爲環境光處理
有了主要光方向信息,結合normal map就能夠進行更多的計算
總體技術涉及到:
材質系統,光源,烘焙技術
光照最終效果,涉及到陰影,直接光,間接光 三個效果
在Unity中材質的光照模型主要能夠分爲,lambert phong 和 最新的 pbr 物理基於着色系統
材質模型:
half lambert 0.5*(N * L) + 0.5
材質也能夠toon shading normal * L normal * V 在texture 上採樣光帶
pbr 微表面, fresnel
光模型
Unity中的光,分爲三種,bake烘焙光,實時光,和mixed模式光
Unity中的烘焙系統,有Enlighten 基於輻射度的烘焙計算,和 progressive 基於光線追蹤的烘焙計算
其中enlighten 有兩種烘焙,純靜態光照貼圖烘焙和 實時GI烘焙
其中烘焙GI光照,能夠使用光照貼圖,也能夠使用light probe來收集,其中光照貼圖,分爲純Diffuse貼圖和 支持 normal map 的 directional lightmap。
light probe 和 光照貼圖區別就是,light probe 收集的是空間光照信息,而light map 收集的是 物體表面的光照信息
reflection probe 反射光照 probe
光照效果:
軟影子 寬高光, AO
Unity中的光照方案:
全烘焙,只使用enlighten 烘焙光照貼圖,使用純烘焙光,光照貼圖上包含 直接光,間接光,陰影信息
全實時光,使用 cascade shadow map 技術產生4級實時陰影, 使用pbr 材質模型,實時光進行光照計算
mixed light, 分爲三種模式
只烘焙 間接光 ,
烘焙陰影,
烘焙距離陰影,近處使用實時陰影
subtractive 模式,直接光 間接光 陰影都烘焙,實時陰影和烘焙陰影採用 subtractive模式混合
純 light probe + 實時光照, light probe 提供間接光照信息