1. 程式人生 > >unity三種光源解決方案

unity三種光源解決方案

一。unity三種解決方案1.Subtractive模式 動態物體 主光實時,環境光diffuse項LightProbe提供,高光項由reflectionProbe提供。陰影通過shadowMap提供。(靜態物體產生在動態物體的陰影由lightprobe提供) 。靜態物體沒有高光,環境光diffuse項由lightmap提供。高光項由reflectionProbe提供。主要問題 均對於同一個材質的2個物體,只不過一個為靜態物體,另一個為動態物體:1.當實時光源發生改變時,靜態物體無法更改。2.由於烘焙採用的是輻照度演算法,與實時不一樣,表現上不一樣,diffuse顏色有區別,同時靜態物體缺少高光。3.對於動態物體產生的陰影,一個靜態物體已經在lightmap記錄了沒有動態物體時接受的輻照度,無法減少。只能通過預估一下產生的輻照度以及通過shadowColor進行調節。2.ShadowMask模式烘焙時不怎麼考慮主光的貢獻。同時增加一個shadowmask貼圖,用來記錄靜態物體之間產生的陰影。主要是為了減少shadowPass產生的drawcall帶來的效能消耗。動態物體不變。靜態物體受主光實時影響。環境光diffuse項通過lightmap獲取,高光項由reflectionProbe提供。陰影項由shadowmask提供。同時會對動態物體產生的陰影項與記錄的陰影項進行融合。二。lightmap不同結果1.lightmap 不支援法線2.Directional Lightmap 把環境光當成一個方向光,實時與法線進行計算。引用文獻: