固定角色的間接光照

一個美術(shù)需求

今天美術(shù)大哥要我把角色的間接光照固定痛单,不受場景影響丽柿,即把下圖的 環(huán)境光環(huán)境反射Lighting Settings 面板搬到 角色材質(zhì)球 上:

image

這種環(huán)境光的反差,也是突出角色的方法之一毁渗。

固定環(huán)境光

美術(shù)的要求是,無論場景如何布置,程序只認下圖這個預(yù)設(shè)的環(huán)境光:

image

這里的做法很簡單驳遵,打開美術(shù)預(yù)烘培好的場景,用 FrameDebugger 截取 球諧光照 的參數(shù)值山涡,然后在任何情況下都用這些值計算環(huán)境光即可:

image

把上圖中的 unity_SHXXX 帶入下面的函數(shù)就大功告成了:

// normal should be normalized, w=1.0
half3 SHEvalLinearL0L1 (half4 normal)
{
    half3 x;

    // Linear (L1) + constant (L0) polynomial terms
    x.r = dot(unity_SHAr,normal);
    x.g = dot(unity_SHAg,normal);
    x.b = dot(unity_SHAb,normal);

    return x;
}

// normal should be normalized, w=1.0
half3 SHEvalLinearL2 (half4 normal)
{
    half3 x1, x2;
    // 4 of the quadratic (L2) polynomials
    half4 vB = normal.xyzz * normal.yzzx;
    x1.r = dot(unity_SHBr,vB);
    x1.g = dot(unity_SHBg,vB);
    x1.b = dot(unity_SHBb,vB);

    // Final (5th) quadratic (L2) polynomial
    half vC = normal.x*normal.x - normal.y*normal.y;
    x2 = unity_SHC.rgb * vC;

    return x1 + x2;
}

// normal should be normalized, w=1.0
// output in active color space
half3 ShadeSH9 (half4 normal)
{
    // Linear + constant polynomial terms
    half3 res = SHEvalLinearL0L1 (normal);

    // Quadratic polynomials
    res += SHEvalLinearL2 (normal);

#   ifdef UNITY_COLORSPACE_GAMMA
        res = LinearToGammaSpace (res);
#   endif

    return res;
}

當然堤结,這樣做之后,場景的 光照探頭 對角色就失效了鸭丛,不過美術(shù)要的就是這個效果......

固定環(huán)境反射

固定環(huán)境光竞穷,只需要在shader里寫死參數(shù),美術(shù)不需要做任何材質(zhì)設(shè)置鳞溉。

下面開始固定環(huán)境反射瘾带。

首先,把用于環(huán)境反射的 CubemapLighting Settings 面板搬到 角色材質(zhì)球 上熟菲,如下圖:

image

然后看政,間接高光的計算直接認角色材質(zhì)指定的環(huán)境,即上圖中的 Env Cubemap抄罕,主要代碼如下:

half envRoughness = perceptualRoughness * (1.7 - 0.7 * perceptualRoughness);
half envMip = envRoughness * UNITY_SPECCUBE_LOD_STEPS;
half4 envColor = texCUBElod(_EnvCubemap, half4(R, envMip)) * _EnvReflectStrength;
envColor.rgb = DecodeHDR(envColor, _EnvCubemap_HDR).rgb;

用上面代碼的計算結(jié)果 envColor 替代Unity全局光照的 gi.indirect.specular 就大功告成了允蚣。

最后,需要注意的是呆贿,環(huán)境圖是需要勾選 Generate Mip Maps 的嚷兔,否則 粗糙度 的表現(xiàn)就錯誤了。

個人主頁

本文的個人主頁鏈接:https://baddogzz.github.io/2020/03/25/Fix-Indirect-Lighting/做入。

好了冒晰,拜拜!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竟块,一起剝皮案震驚了整個濱河市壶运,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浪秘,老刑警劉巖蒋情,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秫逝,居然都是意外死亡恕出,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門违帆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浙巫,“玉大人,你說我怎么就攤上這事〉某耄” “怎么了渊抄?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長丧裁。 經(jīng)常有香客問我护桦,道長,這世上最難降的妖魔是什么煎娇? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任二庵,我火速辦了婚禮,結(jié)果婚禮上缓呛,老公的妹妹穿的比我還像新娘催享。我一直安慰自己,他們只是感情好哟绊,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布因妙。 她就那樣靜靜地躺著,像睡著了一般票髓。 火紅的嫁衣襯著肌膚如雪攀涵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天洽沟,我揣著相機與錄音以故,去河邊找鬼。 笑死玲躯,一個胖子當著我的面吹牛据德,可吹牛的內(nèi)容都是我干的鳄乏。 我是一名探鬼主播跷车,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼橱野!你這毒婦竟也來了朽缴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤水援,失蹤者是張志新(化名)和其女友劉穎密强,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜗元,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡或渤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奕扣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薪鹦。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出池磁,到底是詐尸還是另有隱情奔害,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布地熄,位于F島的核電站华临,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏端考。R本人自食惡果不足惜雅潭,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望却特。 院中可真熱鬧寻馏,春花似錦、人聲如沸核偿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漾岳。三九已至轰绵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間尼荆,已是汗流浹背左腔。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捅儒,地道東北人液样。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像巧还,于是被迫代替她去往敵國和親鞭莽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容