Unity學(xué)習(xí)筆記 Vol.106 Unity 實(shí)時(shí)光追(十)- Recursive Rendering遞歸式渲染
記筆記


本節(jié)我將會(huì)介紹Recursive Rendering遞歸式渲染,這是HDRP光追功能組合中提供的一項(xiàng)功能,非常適合渲染包含多個(gè)層次的,反射和折射效果的透明物體,要使用遞歸式渲染。

我們需要為場(chǎng)景添加Recursive Rendering這個(gè)Volume重載,同時(shí)把需要做遞歸式渲染的物體材質(zhì)上的Recursive Rendering模式打開,為而讓反射效果更豐富。

我們也可以打開Receive?SSR Transparent這個(gè)選項(xiàng),它的意思是在透明材質(zhì)上接受屏幕空間反射效果。

我們也可以在Shader Graph中打開Recursive Rendering選項(xiàng),你可以在Graph Settings界面中找到Surface Options,在里面可以找到Recursive Rendering選項(xiàng)。

我們?cè)趫?chǎng)景中放了一條龍的模型,材質(zhì)設(shè)置為HDRP/Lit,Surface Type設(shè)置為透明,折射率設(shè)置為1.55,這是水晶的折射率。


當(dāng)打開Receive?SSR Transparent作為選項(xiàng),我們可以看到龍的表面,增加了一層來自周圍的反射信息,在啟用Recursive Rendering模式,可以看到整個(gè)物體的反射和折射表現(xiàn)更為真實(shí)了。

接下去,我們來看一下Recursive Rendering的具體參數(shù),配置首先是Layermask,這可以用來控制哪些物體會(huì)參與地規(guī)式渲染計(jì)算。

Max Steps最大深度,可用于控制光追射線,在計(jì)算反射和折射時(shí),反彈和折射的最大次數(shù),達(dá)到這個(gè)次數(shù)以后,HDRP會(huì)返回最終在屏幕上呈現(xiàn)的顏色。

Ray Length射線長(zhǎng)度,可用于控制從當(dāng)前相機(jī)射出的光追射線長(zhǎng)度,這一長(zhǎng)度以米為單位,因此如果當(dāng)前相機(jī)和參與遞歸式渲染物體的距離超過了這里的數(shù)值,光追射線將無法找到會(huì)與之發(fā)生碰撞的表面

這時(shí)就會(huì)直接返回天空的顏色,也就無法實(shí)現(xiàn)遞歸式渲染了。

最小光滑度要參與遞歸式渲染的計(jì)算物體表面的光滑度必須大于這里設(shè)定的數(shù)值,還會(huì)產(chǎn)生光追的反射效果。
總結(jié)起來,雖然Recursive Rendering能為我們帶來更為真實(shí)的反射和折射效果,使用方法也非常簡(jiǎn)單,但是這項(xiàng)效果比較耗費(fèi)性能,所以大家在使用的時(shí)候要酌情慎用。