五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

URP | Normal法線貼圖

2021-11-29 20:26 作者:那個人真狗  | 我要投稿

法線概念

法線是有 正反區(qū)別(-1,1)

  • DirectX12 里Y軸是N方向

不同平臺使用的貼圖正反是不一樣的。

  • 不同平臺使用的法線格式

HLSL調(diào)用法線貼圖注意哪些

結(jié)構(gòu)體

  • 在頂點結(jié)構(gòu)體中,我們需要獲取模型的頂點法線,頂點切線。

  • 輸出到片元著色器結(jié)構(gòu)體中

  • 這里說一下UV信息,為什么是float4類型,

    這里的uv.xy儲存的是漫反射貼圖的uv,uv.zw儲存的法線的uv信息。

    這樣的好處是合并到一起。

  • 法線,切線,副切正常類型是,

定義變量

  • 屬性里定義一張法線貼圖。以及控制法線的變量

  • 把一些變量放到C-buffer里。貼圖采樣也是。

頂點階段

  • 頂點階段,需要把頂點法線,頂點切線轉(zhuǎn)換成世界空間下。


  • 第一部分 儲存的顏色貼圖,法線貼圖的UV采樣信息

  • 第二部分,把頂點法線,頂點切線轉(zhuǎn)換成世界空間,輸出。

    計算出副切線的數(shù)值。并在乘切線的w值判斷正負,在乘負奇數(shù)縮放影響因子。

  • 這里注意,

    • v.tangentOS.w

      值為-1或者1,由DCC軟件中的切線自動生成,和頂點的環(huán)繞順序有關。

    • unity_WorldTransformParams.w

      定義于unityShaderVariables.cginc中.

      模型的Scale值是三維向量,即xyz,當這三個值中有奇數(shù)個值為負時(1個或者3個值全為負時),unity_WorldTransformParams.w = -1,否則為1.

  • 第三部分 ?計算出世界空間下的頂點坐標。儲存到法線,切線,副切線的W通道中。

  • 注意:這里為什么需要把頂點位置穿片元著色器,我們是需要計算 視角向量(ViewDir)

    還有第二套寫法,

擴展 在頂點著色器階段,計算視角向量。

  • 片元結(jié)構(gòu)體

    切線和法線,都是float3的類型了,

  • 在頂點階段計算出viewDirWS 世界空間下的視角方向。

片元著色器

  • 在片元著色器階段計算出TBN矩陣,這里需要把法線的信息和模型的法線信息混合起來,

    因為我們上面是使用模型頂點信息計算的高光,或者漫反射。 那單獨看一下模型法線信息。


  • 這個結(jié)果就缺少細節(jié),,看一下漫反射。


  • 現(xiàn)在法線信息 是有倆部分組成 ? ,法線貼圖是增加細節(jié)的。

    新法線信息 = ?模型頂點法線 + 法線貼圖

  • 第一部分讀取法線貼圖

????????讀取貼圖,????

  • 計算TBN ? 在讀取貼圖,增加一個控制貼圖的強度的數(shù)值。

  • 貼圖信息和TBN結(jié)合

  • 獲取視角方向,光照方向 計算出半角向量

  • 使用新法線計算出漫反射

  • 增加上前面學習到的漫反射,高光發(fā)射


  • 效果

代碼實現(xiàn)


URP | Normal法線貼圖的評論 (共 條)

分享到微博請遵守國家法律
武冈市| 邯郸市| 清徐县| 江达县| 沙坪坝区| 冷水江市| 岑溪市| 株洲市| 阳城县| 西藏| 武山县| 临洮县| 渑池县| 东台市| 龙江县| 兰坪| 资阳市| 周口市| 杭州市| 玉田县| 青浦区| 留坝县| 胶州市| 霸州市| 德阳市| 金湖县| 沾化县| 原平市| 江油市| 本溪市| 平武县| 修文县| 桐乡市| 昆明市| 榆树市| 怀化市| 苗栗县| 福建省| 黄平县| 通道| 金华市|