研究了3天,終於將 Shader 移植到 Cocos Creator 2.2.0 上了!

預覽

file
掃光特效—Fluxay2微信

file
馬賽克像素特效—Mosaic學習

file
過渡效果—Transfer測試

Shawn 花了3天時間,研究了Cocos Creator 2.2.0 的 Effect 語法,終於在1024節前夕,大概知道如何將 2.1.3 的 Shader 特效給移植過去,成功移植了上面幾個 Effect 文件,下面我講一下關鍵要點,相信你能夠自行完成。code

uniform block

在片元代碼中定義 uniform 變量,除了sampler2D 類型之外,必須將 uniform 變量放到 uniform block 裏面,代碼以下:orm

uniform PROPERTIES{
  vec4  color;
  float  factor;
  float width;
  float time;
}

在 WebGL 2 中新增了 Uniform Block 的寫法,着色器與應用程序之間,或者着色器各階段之間共享的變量可組織爲變量塊(Uniform Block)的形式,而且有時候必須採起這種形式。Shawn 對具體細節也不清楚,還須要進一步學習。blog

vec3 不可用

有幾個 Shader 有包含有 vec3 類型的 uniform 變量,始終報錯,以下提示:
file
沒有辦法,搞了好次幾都不行,只有求助引擎組大佬:
fileform

經過 panda 的指點,我將 vec3 類型的變量改成 vec4 就沒事了!後臺

有很多夥伴在微信或公衆號後臺向 Shawn 詢問 ShaderHelper2 不能在 Cocos Creator 2.2.0 上工做的問題。變量

在此向你們致歉 ShaderHelper2 中的 Effect 還未徹底移植完畢,移植的幾個 Effect 也還未通過測試,須要再過幾天才能放出,經過上面的方法你也能夠快速移植。
file

相關文章
相關標籤/搜索