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

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

Particle Bloom粒子輝光解析-適合新人學(xué)習(xí)的實(shí)用著色器

2022-02-19 21:03 作者:軒宇1725  | 我要投稿

(本教程使用了完全沒有著色器經(jīng)驗(yàn)的視角編寫,提供了一種拆包的方法)

之前我在逛mcbbs時(shí)發(fā)現(xiàn)了一款很神奇的資源包,這里附上效果圖和原貼:https://www.mcbbs.net/thread-1210511-1-1.html


Particle Bloom著色器對(duì)游戲做了哪些影響?

最簡(jiǎn)單的辦法當(dāng)然是找原作者

?


Hmmmm…

看來要知道這個(gè)著色器的原理,只能拆包了

?

乍一看文件很多,很復(fù)雜,但仔細(xì)閱讀就能發(fā)現(xiàn):

這個(gè)著色器只修改了2個(gè)核心著色器,一個(gè)后處理著色器,添加了一堆著色器程序

那么下一步就是要理清著色器工作的順序:

在我的著色器基礎(chǔ)教程中講過,游戲使用核心著色器渲染之后交給后處理著色器,后處理著色器對(duì)已經(jīng)渲染完畢的緩沖進(jìn)行更改再移交到用戶屏幕上。

Step1:

檢查核心著色器修改了什么東西

?

如果對(duì)原版代碼不熟悉建議雙開,上面是Particle Bloom的內(nèi)容,下面是從版本jar文件中提取的著色器。

?

(上面才是要解析的著色器,別看反了)

檢查后發(fā)現(xiàn),著色器中只對(duì)particle.vsh的這行做了修改。

?

我們可以先把其他的著色器占時(shí)放到不被游戲識(shí)別的任意文件夾內(nèi)。(因?yàn)橹魑募g的關(guān)聯(lián)很大,沒有修改的文件一般是為了防止出現(xiàn)兼容問題,這里只是解析著色器所以可以忽略)

?

這個(gè)如果你不知道vertexColor是什么,我們可以在其他大多數(shù)的片段著色器中找到它(這個(gè)變量由頂點(diǎn)著色器傳遞給片段著色器運(yùn)算)

?

把它去掉之后:

?

?

可以說:這個(gè)變量控制了畫面的光影變化和colormap的著色效果。當(dāng)然也控制著粒子的著色效果。那么去掉的texelFetch(Sampler2, UV2 / 16, 0)到底有什么效果呢?

我們不妨把它加回去試試

?


好像變暗了一些?旁邊的末影龍火球粒子也幾乎看不清了。

很可能這個(gè)參數(shù)就是控制著粒子隨著環(huán)境的明暗變化,事實(shí)上也的確如此,作為同時(shí)控制粒子著色效果和明暗變化的變量,如果只剩從材質(zhì)中采樣出來的顏色,自然就只保留了著色效果,去除了明暗變化,讓粒子以原始亮度渲染。這對(duì)于粒子的輝光效果處理顯然是必須的,否則會(huì)讓這個(gè)效果看起來很怪(粒子明明很暗但是還是會(huì)發(fā)光)。

處理1:在vertexColor中刪除了texelFetch采樣讓粒子以原始亮度渲染

下一步,將渲染完成后的畫面交給后處理著色器(也就是下圖的畫面)

?

查看后處理著色器,發(fā)現(xiàn)修改了用戶在極佳畫面質(zhì)量下使用的后處理著色器


檢查了一遍文件,發(fā)現(xiàn)了一大堆沒有啟用的程序

?

排除這些干擾后,再次檢查內(nèi)容:

?

在targets中添加了”removegreen”,”swap”,”green”,”green_h”,”green_v”,”target_particle”幾個(gè)緩沖。

?

調(diào)用了4次makebloom程序,每次都傳入兩份同樣的緩沖,一份由intarget傳入,系統(tǒng)標(biāo)記為DiffuseSampler,另一份由auxtargets傳入,標(biāo)記為GreenSampler,提供的參數(shù)Power的值分別為1.0,2.0,4.0,8.0。

處理2:將覆蓋前將particles緩沖模糊化,做到輝光效果

makebloom的內(nèi)容不再具體分析,簡(jiǎn)單來說就是通過數(shù)學(xué)運(yùn)算將只有粒子效果的一個(gè)渲染層變成光暈(或者可以理解為變糊了?),“變糊”的方式有很多種,可以自行更改。

再將“變糊的”green緩沖和游戲內(nèi)容final緩沖在fade程序中疊加在一起。

最后在back中將重新被游戲渲染的粒子和之前的緩沖再次疊加,輸出到minecraft:main中

處理3:將模糊的輝光疊加到游戲內(nèi)容上

(該資源包的使用的后處理頂點(diǎn)著色器程序都是對(duì)內(nèi)容沒有任何影響的系統(tǒng)著色器)

?

對(duì)原理進(jìn)行了分析后,我們可以對(duì)以下現(xiàn)象做出解釋:

作者未對(duì)粒子做出篩選,但黑色的粒子并沒有輝光效果:

黑色的粒子變糊之后會(huì)和沒有粒子的背景部分處理成一個(gè)顏色,在fade中組合的時(shí)候會(huì)被當(dāng)成沒有粒子的情況,所以不會(huì)有輝光效果。

?

以及一些優(yōu)化的方式:

檢查UV2對(duì)一些不應(yīng)該發(fā)光的粒子不做模糊處理

使用采樣器對(duì)一些較暗的粒子進(jìn)行模糊程度的修改


Particle Bloom粒子輝光解析-適合新人學(xué)習(xí)的實(shí)用著色器的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
安泽县| 灵武市| 江永县| 广汉市| 南投市| 泽库县| 山西省| 秦皇岛市| 博爱县| 舟曲县| 通山县| 铜鼓县| 砚山县| 黔西| 平泉县| 淮滨县| 榕江县| 玉田县| 长寿区| 康平县| 金溪县| 舟山市| 镇赉县| 陆丰市| 北宁市| 平邑县| 离岛区| 永顺县| 溧水县| 邵阳县| 凉山| 治多县| 济宁市| 梧州市| 神木县| 遵义市| 监利县| 湘乡市| 聂荣县| 达日县| 宣威市|