Cocos Creator Shader Effect 系列 - 1 - 材質(zhì),Effect,Inspector,紋理之間的關(guān)系

系列對應(yīng)演示 Demo 倉庫地址:

https://github.com/zhitaocai/CocosCreatorShaderEffectDemo
https://gitee.com/zhitaocai/CocosCreatorShaderEffectDemo

一、題外話

站在巨人的肩膀上,你一開始就能看很遠。

實際上,已經(jīng)有很多大佬在博客,公眾號,論壇等等的地方分享過很多各種特效的實現(xiàn)代碼了。

但是,目前好像缺少一些基礎(chǔ)一點說明,Cocos 的官方文檔可能有些隱晦。

因此,我會盡量在補全一下這塊的,當(dāng)然,我也是在學(xué)習(xí)過程中,可能有些地方不一定正確,這些地方,我會盡可能標(biāo)注。

Ok,Let's go.

二、渲染組件和材質(zhì)的關(guān)系

材質(zhì),Effect,Inspector,紋理之間是什么關(guān)系呢?能不能用 Cocos Creator 舉個例子?我覺得以下的圖片應(yīng)該就能說明這之間的關(guān)系了:

RenderComponent with Material

事實上,從 2.0 版本升級到 2.[1+] 版本的 Cocos Creator 的時候,大家就會發(fā)現(xiàn),大部分(因為我沒仔細看完所有渲染組件,只看了大部分,所以只能說大部分這個詞語,而不是全部)的渲染組件都新增了 Materials 材質(zhì)數(shù)組,比如我們經(jīng)常用的Sprite,Label等都多出了圖中箭頭3所指向的材質(zhì)數(shù)組。這些渲染組件都是繼承了 RenderComponent 組件

Sprite
Label

而在 Cocos Creator 2.[1.+] 版本中,RenderComponent 都加了材質(zhì)的數(shù)組

RenderComponent

而這就是我們的「屬性管理器/Inspector」面板中多了材質(zhì) Materials 數(shù)組的結(jié)果。

有點小偏題了,不過這里我們算是初步說明了,渲染組件和紋理之間的關(guān)系。

三、材質(zhì)和Effect的關(guān)系

在上面的第一個圖的第4點中,我們說到 材質(zhì)指導(dǎo)如何渲染圖像到屏幕上 ,其實這個說法并不嚴(yán)謹,只是想表達這個意思,大家意思get到就可以,大家不要較真。

那么在這個意思上,材質(zhì)又是怎么指導(dǎo)渲染圖像到屏幕上呢?

Material with Effect

接著順序

  1. 當(dāng)我們選中材質(zhì)后,「屬性管理器/Inspector」面板就會切換為材質(zhì)的面板
  2. 此時我們可以通過 Effect 屬性的下拉列表,選中我們需要綁定Effect
  3. 當(dāng)綁定成功之后,Cocos Creator 的編輯器就會幫我們預(yù)編譯并解析我們的綁定的 Effect 文件中的 可改變屬性(這是我自己的稱呼,不嚴(yán)謹,Get到意思就可以),然后顯示在屬性編輯器上,對應(yīng)我們圖中綠色部分

至此,相信大家已經(jīng)有一個比較直觀的,關(guān)于渲染組件,材質(zhì),Effect,屬性編輯器/Inspector在Cocos Creator 編輯器上的關(guān)系。

但是我相信你可能還是會有一些疑問,比如:

Q1:比如本章標(biāo)題中的說到的紋理關(guān)系呢?怎么突然沒有了說明?
A1:Effect 代碼中會說明紋理如何渲染,但也不太準(zhǔn)確,暫時可以這么理解著先

Q2:是不是我隨便在任意一個地方創(chuàng)建的Effect,都會出現(xiàn)在第5步的Effect下拉列表呢?
A2:在官方的 Effect Syntax 文檔 中有描述到

Effect Name

好了,就這么多先。我們下篇文章見~

下一篇:

上一篇:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容