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

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

【轉(zhuǎn)】四種體積光的寫法:RayMarching、徑向模糊、Noise造假術(shù)、擠出造假術(shù)(包含URP

2023-09-07 04:50 作者:ACFUN-AK  | 我要投稿

四種體積光的寫法:RayMarching、徑向模糊、Noise造假術(shù)、擠出造假術(shù)(包含URP、Build-In、ASE不同實(shí)現(xiàn),并附帶源碼)

四種體積光的寫法:RayMarching、徑向模糊、Noise造假術(shù)、擠出造假術(shù)(包含URP、Build-In、ASE不同實(shí)現(xiàn),并附帶源碼)

智慧之水Aqua

加入阿庫(kù)西斯教吧!厄里斯的胸是墊出來的!

81 人贊同了該文章

一.效果預(yù)覽 與 對(duì)比

Volumetic Light性能與表現(xiàn)的取舍之道,總有一款適合那你的項(xiàng)目(文末源碼附上)

1.方案一:RayMarching

特點(diǎn):效果一流且穩(wěn)定,但多次采樣ShadowMap比較消耗性能

2.方案二:光強(qiáng)Threshold + 徑向模糊

特點(diǎn):效果不夠穩(wěn)定,性能消耗適中(有點(diǎn)類似于Bloom的思想)

3.方案三:Noise造假術(shù)

特點(diǎn):需要額外的模型,但特別省性能,表現(xiàn)效果也還不錯(cuò)(如果是面片,則搭配Billboard效果更佳)

4.方案四:擠出造假術(shù)

特點(diǎn):性能高,效果還行。但對(duì)模型頂點(diǎn)數(shù)不能太少,否則模型擠出時(shí)會(huì)被整體偏移(拿一個(gè)Cube試試就知道是啥意思了)

二、具體分析

以下是不同方法的實(shí)現(xiàn)思路,請(qǐng)結(jié)合下載的源碼食用更佳哦

方案一:RayMarching

大體步驟:①深度重建世界坐標(biāo)系 ②步進(jìn)式采樣shadowMap,累計(jì)光強(qiáng) ③模糊算法提高光強(qiáng)質(zhì)感 ④混合體積光與原場(chǎng)景

首先:按照之前文章中提到的RenderFeature小框架,配置好RenderFeature,將RayMarching的RenderPass注入到管線中(到時(shí)候工程源碼里會(huì)放這個(gè)小框架,不必?fù)?dān)心額外下載,想要了解更多的話,這是小框架的講解文章:智慧之水Aqua:URP RenderFeature通用框架(附源碼與使用教程))

后面我們將按照VolumetricLight_RenderPass中,重寫的Render( )函數(shù)展開分析(類似于Build-In中的OnRenderImage函數(shù))

1.1深度重建世界坐標(biāo)系

可參照文章:?智慧之水Aqua:深度重建世界坐標(biāo)系的N種方法(附帶源碼)

1.2步進(jìn)式采樣shadowMap,累計(jì)光強(qiáng)

強(qiáng)烈推薦教我的賽博師傅:?李恒:【UnityShader】Volumetric Light 體積光(8)

接下來就是利用重建好的世界坐標(biāo)系,進(jìn)行shadowMap的采樣了,比如采樣下圖的0, 1, 2, 3點(diǎn)。

比如下圖:如果步進(jìn)4次,那么就會(huì)對(duì)0, 1, 2, 3進(jìn)行ShadowMap采樣,這樣0, 1點(diǎn)就累計(jì)到了光強(qiáng),而2, 3點(diǎn)則沒有。

于是就會(huì)出現(xiàn)這種情況

但明顯能看到分層的情況,這是因?yàn)楫?dāng)步進(jìn)次數(shù)不夠大的時(shí)候,等距采樣會(huì)出現(xiàn)剛好漏過洞口的情況,造成某一段地方的光強(qiáng)累計(jì)不夠,從而出現(xiàn)分層。由此我們可以試試隨機(jī)采樣的效果

但這樣卻多了很多噪點(diǎn),為了優(yōu)化表現(xiàn),我們可以用模糊算法來優(yōu)化

1.3模糊算法提高光強(qiáng)質(zhì)感

模糊算法依舊還是推薦毛大神的?毛星云:高品質(zhì)后處理:十種圖像模糊算法的總結(jié)與實(shí)現(xiàn)

1.4混合體積光與原場(chǎng)景

直接相加就好:sceneColor + lightColor

也可以柔性混合:sceneColor + sceneColor * lightColor

方案二:光強(qiáng)Threshold + 徑向模糊

2.1提取高亮部分:屏幕空間中的燈光距離作為遮罩 + threshold過濾亮度值 = 生成亮度圖

2.2使用徑向模糊:營(yíng)造發(fā)散的效果(這里不展開講徑向模糊,可以參考毛大神的)

2.3混合體積光與原場(chǎng)景

直接相加就好:sceneColor + lightColor

也可以柔性混合:sceneColor + sceneColor * lightColor

方案三:Noise造假術(shù)

3.1造假體積:Noise圖拉長(zhǎng)

3.2邊緣消隱:上圖明顯邊緣太硬了,我們可以用Fresnel + UV擺放形成遮罩,來控制一下邊緣消隱

3.3VertexOffset做開合控制:效果是有了,但不太可控,所以利用遮罩做開合控制

方案四:擠出造假術(shù)

4.1頂點(diǎn)階段的模型擠出:模型沿著背光方向,頂點(diǎn)擠出一定程度

4.2片元階段控制衰減值:讓擠出的部分呈現(xiàn)丁達(dá)爾效應(yīng)

三、工程提供

百度網(wǎng)盤鏈接:pan.baidu.com/s/1rSl6rg?提取碼:2233

Git鏈接:GitHub - RewriteHJ/Aqua-treasure-of-knowledge: 知識(shí)與你分享~

方案一:RayMarching

文件名:0002Volumetic Light / 0002RayMarchingVolumeticLight.unitypackage

下載后,新建一個(gè)URP工程,拖入Assets覆蓋即可(測(cè)試版本為unity2021.3.26)

方案二:光強(qiáng)Threshold + 徑向模糊

文件名:0002Volumetic Light / 0002RadialBlur_VolumetricLight.unitypackage

下載后,新建一個(gè)build-In工程,拖入Assets覆蓋即可(測(cè)試版本為unity2021.3.26)

方案三:Noise造假術(shù)

文件名:0002Volumetic Light / 0002NoiseTrick_VolumetricLight.unitypackage

下載后,新建一個(gè)build-In工程,拖入Assets覆蓋即可(測(cè)試版本為unity2021.3.26)

方案四:擠出造假術(shù)

文件名:0002Volumetic Light / 0002VertexExtrude_VolumetricLight.unitypackage

下載后,新建一個(gè)build-In工程,拖入Assets覆蓋即可(測(cè)試版本為unity2021.3.26)

四、結(jié)語(yǔ)

總結(jié)的四種Volumetric Light的方法就到這里啦。沉下心來看,其實(shí)體積光特別容易實(shí)現(xiàn)。后續(xù)我還會(huì)更新一些 渲染案例、實(shí)用小工具、Houdini程序化之類的文章,如果能點(diǎn)個(gè)小小的關(guān)注就更好了,嘿嘿,全當(dāng)時(shí)為了阿庫(kù)婭sama。今天的分享就到這啦,下次再見!

B站主頁(yè):智慧之水Aqua的個(gè)人空間-智慧之水Aqua個(gè)人主頁(yè)-嗶哩嗶哩視頻

厄里斯的胸是墊出來的?(? ???ω??? ?)?

發(fā)布于 2023-09-05 00:03


【轉(zhuǎn)】四種體積光的寫法:RayMarching、徑向模糊、Noise造假術(shù)、擠出造假術(shù)(包含URP的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
翁牛特旗| 彭泽县| 阿巴嘎旗| 新密市| 公安县| 盘锦市| 岫岩| 本溪市| 越西县| 辽宁省| 右玉县| 武山县| 浦东新区| 崇明县| 洞头县| 新源县| 石城县| 天等县| 醴陵市| 临城县| 南昌市| 孟州市| 监利县| 方山县| 习水县| 武宁县| 连南| 菏泽市| 大庆市| 巩义市| 南投县| 甘孜县| 芜湖县| 天峨县| 营口市| 闽清县| 石景山区| 湘潭市| 珠海市| 宣化县| 丽江市|