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的開發(fā)語言cocos使用的是GLSL編程語言。
? 材質(zhì)是一種配置文件陨帆,選好一個(gè)Shader,并指定好這個(gè)Shader所需要的參數(shù)曲秉;
2: cocos 物體是如何繪制的?
? 以Sprite組件為例,它有一個(gè)材質(zhì)疲牵,這個(gè)時(shí)候繪制圖片的時(shí)候承二,就使用這個(gè)材質(zhì),通過材質(zhì)渲染管道準(zhǔn)備好算法纲爸,和參數(shù)亥鸠,這樣,渲染管道就繪制出來识啦。
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: 渲染管道傳過來的數(shù)據(jù), 只能在頂點(diǎn)Shader中使用;
varying: vectex Shader, frag Shader 的傳遞變量
uniform:? 外部程序可以來設(shè)置的變量;
如果需要完整creator Shader的同學(xué),可以私聊我