最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

12.三個輸入數(shù)據(jù)節(jié)點(diǎn)

2022-08-18 13:00 作者:那個人真狗  | 我要投稿


目的

  • 認(rèn)識三個輸入節(jié)點(diǎn)

  • PixelNormalWS 和VertexNormalWS區(qū)別

  • 自己寫一個基礎(chǔ)的Half-Lanbert和Phong光照模型

三個輸入節(jié)點(diǎn)

  • 輸入節(jié)點(diǎn)

Camera Vector | 攝像機(jī)向量

攝像機(jī)向量我們也稱之為觀察方向 (V)

  • 使用攝像機(jī)位置減去像素位置就可以計算出攝像機(jī)角度,他們是一樣的。

    UE5給我們封裝好的攝像機(jī)向量。

PixelNormalWS | 法線向量

  • 輸入像素法線,稱之為法線向量(N)

  • 為什么不使用**VertexNormalWS,**后面有介紹二者區(qū)別

LightVector | 光照向量

  • 這個節(jié)點(diǎn)是獲取光照方向向量,簡稱 V

  • 因?yàn)閁E5使用的是Defferred Shading(延遲渲染),UE5官方文檔建議我們不要使用,我們計算漫反射需要調(diào)用到怎么辦?

參考資料 前向渲染與延遲渲染 - 知乎 (zhihu.com)



問題1 PixelNormalWS 和VertexNormalWS區(qū)別

7. Position位置節(jié)點(diǎn) - 嗶哩嗶哩 (bilibili.com)

  • 上面介紹了各個位置信息,其中就有這兩個節(jié)點(diǎn)

前者計算法線貼圖對法線方向的改變,后者只計算模型上點(diǎn)的法線方向。會忽略法線貼圖。

這兩個節(jié)點(diǎn)都是和法線有關(guān),我們稱之為法線向量(N)

  • 測試

    使用我們上面創(chuàng)建的Fresnel效果

  • PixelNormalWS

  • 同樣都有法線貼圖,VertexNormalWS只會使用模型頂點(diǎn)法線

擴(kuò)展 UE5給我提高了獲取場景光照方向的節(jié)點(diǎn),這里是自定義獲取方法。 后面會單獨(dú)介紹這個節(jié)點(diǎn)

計算光照模型

上面說到我們在材質(zhì)編輯器無法獲取光照方向,UE5提供給我們另一套解決方案。

創(chuàng)建一個藍(lán)圖里面增加一個平行光,在獲取平行光的位置傳入材質(zhì)里。

思路

  • 創(chuàng)建一個藍(lán)圖Actor

  • 增加光源組件,我這里增加的是平行光。

拖到場景中,關(guān)閉默認(rèn)的場景光

下一步就是創(chuàng)建材質(zhì),我們前簡單了解一下Phong 和Half-Lanbert 光照模型。

Half-Lanbert 光照模型

  • 半蘭伯特和蘭伯特相比,只是將法線向量與光照方向向量的點(diǎn)乘結(jié)果用一種更好的方式區(qū)間轉(zhuǎn)化到了(0,1)區(qū)間:

  • 法線方向(N)我們的節(jié)點(diǎn),光照方向我們拿不到前使用一個向量代替。

    公式

UE5實(shí)現(xiàn)Half-Lanbert 光照模型

  • 創(chuàng)建一個材質(zhì),設(shè)置無光照

  • 創(chuàng)建一個向量代替光照,我們等等使用藍(lán)圖獲取光照方向。

  • 帶入公式就可以了,

帶入公式,輸出,就可以看到效果。

繼續(xù)下一部分。

Phong光照模型

  • 簡單介紹一下,蘭伯特光照模型,已經(jīng)獲取到了法線向量(N),光照向量(L),

    Phong 光照模型 是計算觀察方向(V)和反射方向(R) 這倆個向量。計算出高光的強(qiáng)弱。


  • Phong光照模型中主要的部分就是對高光的計算

  • 公式 ? I(spcular) = pow(max(0,dot(R,V)), gloss)

V 就是觀察方向,R是反射方向, 現(xiàn)在沒有反射方向(R)

URP | Phong 和 Blinn-Phong光照光照模型 - 嗶哩嗶哩 (bilibili.com)

UE5 實(shí)現(xiàn)Phong光照模型

  • 在上面那個材質(zhì)的基礎(chǔ)上,求出R反射方向,R為燈光對P點(diǎn)的鏡面反射方向向量(R指代Reflection)

  • 我們的目標(biāo)就是通過已知的N向量和L向量 求解R向量,獲得反射的方向。

我們先將L向量 乘以 -1,那么,根據(jù)反射定律可知, -L向量在水平方向的分量和R向量必然相等。

只要在-L向量上加兩次,L向量在N向量上的投影向量,就可以獲得R向量。

公式

  • 套用高光公式

  • 高光效果就實(shí)現(xiàn)了,

  • 現(xiàn)在我們都計算完成,使用Add 把倆個疊加起來。

擴(kuò)展 我們現(xiàn)在的光照向量是創(chuàng)建的一個向量節(jié)點(diǎn)固定的,下面獲取場景光照數(shù)據(jù)。

我們創(chuàng)建一個材質(zhì)參數(shù)集,創(chuàng)建這個是方便藍(lán)圖里計算出光照信息傳到材質(zhì)里。

材質(zhì)里實(shí)時調(diào)用。

技術(shù)準(zhǔn)備

  • 材質(zhì)參數(shù)集

  • 有倆個一個是表量,一個是向量,我們這里創(chuàng)建向量。

  • 命名 lightPos(光照位置)

    打開一開始創(chuàng)建的藍(lán)圖,把平行光拖到Construction Script 里

    藍(lán)圖里創(chuàng)建一個Set Vector Parameter Value 節(jié)點(diǎn) ?把光照填進(jìn)去保存。

材質(zhì)關(guān)聯(lián)燈光

  • 把材質(zhì)向量集拖到材質(zhì)里,

  • 在左邊設(shè)置創(chuàng)建的變量。

  • 使用攝像機(jī)位置減去模型本身的位置,就計算出光照向量(L)

  • 替換所有的L

創(chuàng)建材質(zhì)實(shí)例,指定到場景球體上。

效果完成。

總結(jié)

  • 這個過程使用到了CameraVector ?(相機(jī)向量 V)和法線方向(N),也隨便實(shí)現(xiàn)了光照向量(L)的輸入計算。

  • 對高光計算加深理解,怎么求出反射向量。

  • 材質(zhì)參數(shù)集的使用,這次是使用藍(lán)圖計算出結(jié)果傳入到材質(zhì)。

  • 渲染方式,UE5是使用延遲渲染。那我們有沒有簡單的方法獲取到場景燈光。


12.三個輸入數(shù)據(jù)節(jié)點(diǎn)的評論 (共 條)

分享到微博請遵守國家法律
疏勒县| 宜宾县| 辉南县| 祁连县| 灵丘县| 平安县| 蓝田县| 余干县| 澎湖县| 龙岩市| 富顺县| 清丰县| 齐河县| 新津县| 宜君县| 盐亭县| 鹿泉市| 道孚县| 诏安县| 家居| 峡江县| 贵定县| 六枝特区| 龙岩市| 涡阳县| 满洲里市| 广德县| 遵义市| 林周县| 尖扎县| 内乡县| 汉寿县| 万荣县| 双柏县| 邹平县| 两当县| 邳州市| 吉木乃县| 栾城县| 太原市| 阜南县|