unity三種光源解決方案

2021-08-18 14:18:17 字數 786 閱讀 9107

一。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 把環境光當成乙個方向光,實時與法線進行計算。

引用文獻:

stricky footer的三種解決方案詳解

stricky footer設計是最古老和最常見的效果之一,我們都曾經歷過類似的情景 如果頁面內容不夠長的時候,頁尾塊貼上在底部 如果內容足夠長時,頁尾塊會被內容向下推送。這些天做vue express實戰的練習,跟著黃軼老師倒是認識了stricky footer,就認真的了解學習了一下,但是前兩天...

Mybatis傳多個引數(三種解決方案)

據我目前接觸到的傳多個引數的方案有三種。dao層的函式方法 public user selectuser string name,string area select from user user t where user name and user area 其中,代表接收的是dao層中的第乙個引...

Mybatis傳多個引數(三種解決方案)

據我目前接觸到的傳多個引數的方案有三種。dao層的函式方法 public user selectuser string name,string area select from user user t where user name and user area 其中,代表接收的是dao層中的第乙個引...