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

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

好像復(fù)雜點(diǎn)的LuaSTG教程3.5:shader的使用教程

2020-08-30 15:46 作者:SSWTLZZ  | 我要投稿

(這里我就默認(rèn)你學(xué)會(huì)了render的一些基本操作了(?))
我并不懂什么專業(yè)名詞,有時(shí)候還會(huì)胡言亂語,如果真的有dalao看了覺得很sb還請盡興的罵我(

shader似乎對于我們是可望而不可求的東西,但這個(gè)玩意并沒有我們想象中的那么難
shader的歷史和原理我就不講了,畢竟我也不懂(,我也只是說個(gè)使用方法,如果想編寫....

好的,假如說你拿到了一個(gè)shader文件(luaSTG里的data里有幾個(gè)shader,需要的可以自己取用),在編輯器里用LoadFX節(jié)點(diǎn)(在resources里)導(dǎo)入

導(dǎo)入了之后,怎么用呢?
這里要用到四個(gè)函數(shù):CreateRenderTarget,PushRenderTarget/PopRenderTarget,PostEffect

CreateRenderTarget("xxx") ,這個(gè)是創(chuàng)建渲染對象,寫哪個(gè)位置都可以,這個(gè)xxx是字符串,即渲染對象的名字.
然后是Pop/PushRenderTarget("xxx"),要用這個(gè)函數(shù)把你要處理的渲染的地方給包起來(先Push后Pop),然后這個(gè)xxx就是上面渲染對象的名字.
然后就是PostEffect了,這個(gè)要寫在PopRenderTarget的下面.
PostEffect(渲染對象的名字(即上面的"xxx"),fx文件,混合模式,附加參數(shù))
是不是很難以理解?(

那么舉個(gè)例子:你定義了一個(gè)obj,它的回調(diào)函數(shù)有一個(gè)叫on?render,然后里面有個(gè)do?default?action,這個(gè)是這個(gè)obj的默認(rèn)的渲染動(dòng)作(?).
然后,你把這個(gè)東西夾在Push,Pop里面,然后再在下面寫個(gè)PostEffect,那么這個(gè)shader就只會(huì)對這一個(gè)obj的渲染產(chǎn)生影響

(額,這個(gè)方法貌似有些問題,最好不要這么搞)

然后,如果你想直接讓整個(gè)圖層的東西受到影響也可以的.
因?yàn)閛bj的渲染有圖層,它的原理大概就是,圖層在下的先渲染,圖層在上的后渲染
所以定義兩個(gè)obj,一個(gè)是開始的圖層,一個(gè)是結(jié)束的圖層.

我這里的FX文件是黑白化,obj2的圖層是LAYER_TOP,obj1的圖層是LAYER_BG-100,所以介于這兩個(gè)之間的東西都變黑白了(右邊的UI的圖層是LAYER_TOP+1)

上面提到有附加參數(shù),這個(gè)參數(shù)就是你在lstg里的數(shù)據(jù)傳進(jìn)那個(gè)shader用,那么怎么看這個(gè)shader是否有附加參數(shù)呢?
打開fx文件(用記事本即可,我用的是notepad++),找到這樣的幾行:

這些個(gè)string?binding =?xxxx,這里的xxxx就代表著要傳入的參數(shù)
比如說這個(gè)吧,假如我們的RenderTarget叫"A",以及這個(gè)fx文件叫world_rotate,那么,PostEffect就應(yīng)該這么寫:
PostEffect("A","world_rotate","",{centerX=0,centerY=0,vscale=1,hscale=1,angle=0})
這些參數(shù)是可以用變量代入的.

反正就和創(chuàng)建子彈傳參一樣啦(
好的,最后是給學(xué)生(包括我)們的一張圖:


好像復(fù)雜點(diǎn)的LuaSTG教程3.5:shader的使用教程的評論 (共 條)

分享到微博請遵守國家法律
和平区| 襄汾县| 柘荣县| 德钦县| 资中县| 临海市| 武乡县| 新平| 赫章县| 临武县| 余姚市| 霸州市| 乐至县| 肇东市| 共和县| 汝州市| 股票| 确山县| 陵水| 古田县| 新野县| 克拉玛依市| 涞源县| 桂东县| 隆安县| 阿勒泰市| 承德县| 娄烦县| 渝北区| 科技| 永康市| 惠来县| 鄯善县| 九台市| 新乡县| 大英县| 观塘区| 抚远县| 永安市| 扶沟县| 农安县|