Cocos Creator Shader與材質(zhì)

Cocos creator 2.1以后引入了3D渲染的底層,所以引入了Shader和材質(zhì)系統(tǒng),比如精靈,下面有一個(gè)材質(zhì),?材質(zhì)又選了一個(gè)Shader;

1:?什么是Shader和材質(zhì)?
???Shader是一種給顯卡GPU執(zhí)行的程序,?是一種繪制算法,顯卡的渲染流水線加載Shader代碼后,就能夠在繪制的時(shí)候執(zhí)行Shader的代碼。Cocos 有自己的一個(gè)Shader的結(jié)構(gòu),Shader的開(kāi)發(fā)語(yǔ)言cocos使用的是GLSL編程語(yǔ)言。
???材質(zhì)是一種配置文件,選好一個(gè)Shader,并指定好這個(gè)Shader所需要的參數(shù);
2: cocos 物體是如何繪制的?
??以Sprite組件為例,它有一個(gè)材質(zhì),這個(gè)時(shí)候繪制圖片的時(shí)候,就使用這個(gè)材質(zhì),通過(guò)材質(zhì)渲染管道準(zhǔn)備好算法,和參數(shù),這樣,渲染管道就繪制出來(lái)。
?
2: 完整的Shader渲染流程(pass)
??

3: cocos Shader的結(jié)構(gòu)
???1: 描述部分
??????頂點(diǎn)shader在哪里,著色shader在哪里?材質(zhì)上的參數(shù)定義哪些,這個(gè)是描述部分。
?

2: 頂點(diǎn)Shader部分:

3: 著色Shader部分:

?
4: GLSL常用的概念:
GLSL變量精度級(jí)別:?highp, mediump, lowp (高, 中, 低)
attribute: 渲染管道傳過(guò)來(lái)的數(shù)據(jù), 只能在頂點(diǎn)Shader中使用;
varying: vectex Shader, frag Shader 的傳遞變量
uniform: ?外部程序可以來(lái)設(shè)置的變量;
?
如果需要完整高斯模糊Shader的同學(xué),可以聯(lián)系我:3039440832