ETH官方钱包

創(chuàng)作內(nèi)容

9 GP

UE4.27 - 光追衍射光現(xiàn)象

作者:巧克力喬斯達(dá)│2022-09-20 18:42:14│巴幣:712│人氣:156
詳細(xì)原文

警告! 實(shí)驗(yàn)性很高的文章, 如果你正在研讀或主修物理請(qǐng)別拿來當(dāng)研究的參考
這篇文章只是關(guān)於一個(gè)無知的人類企圖模仿上帝的傑作罷了, 靈感源自於家裡樓下前門:

一個(gè)平常不會(huì)去注意但出現(xiàn)時(shí)又會(huì)想看幾眼的效果 - Light Diffraction (衍射)
一種光線穿越狹縫後產(chǎn)生偏移的現(xiàn)象, 若波長(zhǎng)對(duì)了就能看到對(duì)應(yīng)的彩色
這次的計(jì)算結(jié)果如下:

還沒完全理解造物主的意志, 公式上也還有一些寫死的地方, 所以結(jié)果跟現(xiàn)實(shí)世界還是有差, 但還是一次有趣的嘗試~和上次的Hello Ray Tracing的不同處在於, 這次由於要在光追過程中取得材質(zhì)資料, 所以自製了Hit Group Shader, 有了它我才能夠獲得材質(zhì)資料

其他的內(nèi)容還有, 加入了材質(zhì)usage flag, 所以我能決定擊中哪些物件要做衍射計(jì)算:

使用Temporal Sampling, 取樣前一張F(tuán)rame的結(jié)果來消除噪點(diǎn) (上為處理前下為處理後):

由於每個(gè)pixel產(chǎn)生了不只一條的射線, 降噪方法是必須的
整體效能約~0.8ms左右, 我的光追是跑在半解析度上的
看起來還行但還有很大的最佳化空間

剩下的細(xì)節(jié)就不在這邊贅述了
主要是在FRayTracingMeshProcessor::Process()裡指定了我自己的Hit Group Shader
這個(gè)函式是UE新增光追mesh command的地方

Future works不外乎, 用更好的方式與UE流程互動(dòng)、更好的公式運(yùn)用、效能最佳化、更好的結(jié)果輸出 (現(xiàn)在只是單純把顏色+到scene上)等等~

================================================================

加碼補(bǔ)充 - Ray Tracing vs Ray Marching
假設(shè)一條射線是A->B, 很多人誤以為光追是A走到B的過程, 這個(gè)其實(shí)叫做Ray Marching
Ray Marching在A往B的路徑上, 每一步前進(jìn)一個(gè)固定量, 一邊前進(jìn)一邊取樣, 最後輸出結(jié)果, RM廣泛的被應(yīng)用在很多算法上了, 像是SSR、God Ray、體積雲(yún)等等

而Ray Tracing注重的是"擊中物", 射線一開始早已經(jīng)決定好了起點(diǎn)與終點(diǎn)
RayCurrent = RayOrigin + T * RayDirection, T的範(fàn)圍是TMin~TMax
一般而言我們會(huì)設(shè)定一個(gè)足夠大的TMax, 當(dāng)光追流程擊中物件, 距離又小於這個(gè)TMax時(shí), 那系統(tǒng)就會(huì)刷新這個(gè)TMax, 讓它越來越小(越來越近). 最後得到的, 基本上是距離最近的物件, 除非過程中擊中了半透明物件並且中斷搜尋, 那又是另一個(gè)故事了..
TMin通常是0, 但起點(diǎn)我們通常會(huì)往Normal方向向外偏出一點(diǎn), 避免擊中自己
由遠(yuǎn)到近這個(gè)特色, 也算是"模擬"了光柵化裡的深度測(cè)試, 不是距離最近的結(jié)果我們就捨棄
對(duì)於半透明物件, 也是有辦法把遠(yuǎn)處的結(jié)果混色到較近的結(jié)果上

然後我們?cè)俑鶕?jù)系統(tǒng)回傳的重心座標(biāo), 來換算出擊中的網(wǎng)格UV、Normal、位置..等等
再根據(jù)這些資訊計(jì)算材質(zhì)以及效果

大概這樣~
英國(guó)女王喪禮多了一天國(guó)定假日, 在家閒閒沒事就寫了xd
引用網(wǎng)址:http://www.jamesdambrosio.com/TrackBack.php?sn=5562356
All rights reserved. 版權(quán)所有,保留一切權(quán)利

相關(guān)創(chuàng)作

留言共 0 篇留言

我要留言提醒:您尚未登入,請(qǐng)先登入再留言

9喜歡★ltes50414 可決定是否刪除您的留言,請(qǐng)勿發(fā)表違反站規(guī)文字。

前一篇:想不到英國(guó)連手機(jī)月租方案... 後一篇:Unheard Engi...


face基於日前微軟官方表示 Internet Explorer 不再支援新的網(wǎng)路標(biāo)準(zhǔn),可能無法使用新的應(yīng)用程式來呈現(xiàn)網(wǎng)站內(nèi)容,在瀏覽器支援度及網(wǎng)站安全性的雙重考量下,為了讓巴友們有更好的使用體驗(yàn),巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現(xiàn)和功能。
屆時(shí)建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業(yè)系統(tǒng)版本才可使用)

face我們了解您不想看到廣告的心情? 若您願(yuàn)意支持巴哈姆特永續(xù)經(jīng)營(yíng),請(qǐng)將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學(xué)】