目錄
一、unity的shader
二、創(chuàng)建一個shader(在創(chuàng)建時,選前三種都可以)
三、內(nèi)容解讀
1.shader一直都在
2.我們寫shader在寫什么
四、沒有被干預的shader(最簡單的shader)
相關閱讀
編寫著色器概述 - Unity 手冊
一、unity的shader
unity寫的shader并不是真正意義上的shader。
官方解釋:
為 Unity 編寫著色器時,使用以下語言:
- 一種稱為 HLSL 的編程語言。使用它可編寫著色器程序本身。
- 一種稱為 ShaderLab 的 Unity 特定語言。使用它可定義?Shader 對象,它充當著色器程序的容器。
簡單解釋:真正的shader語言寫起來還是麻煩的,unity希望大家寫起來簡單一點,于是在原來的基礎上,給大家優(yōu)化了兩個語言,一個叫HLSL,另一個叫ShaderLab,所以我后面講的Shader其實是ShaderLab。
二、創(chuàng)建一個shader
在創(chuàng)建時,選前三種任意一個都可以(如圖1所示),前三個都是用ShaderLab寫的,他們的區(qū)別只是里面預制的內(nèi)容是不一樣的,就像你寫的不同的腳本,都是C#編寫,只是里面的內(nèi)容不一樣。

三、內(nèi)容解讀
1 shader一直都在
shader在unity里,它是一直存在的,且自己正常運作的,運作流程就是之前寫的文章。
Unity | Shader基礎知識(什么是shader)_unity shader-CSDN博客
2 我們寫shader在寫什么
我們其實是在選擇性的干預其中一個步驟,導致它最后輸出出來的結(jié)果不同。
例子(如圖2所示):我們的手電筒一直都在工作,我如果拿手去擋了一部分光,就會出現(xiàn)手影,在這個過程中,我們沒有去改手電筒,而是去干預了光線(擋住了光)

結(jié)論:我們寫shader也只是把其中一部分拿出來,進行干預,其他部分保持不變,最后結(jié)果就會出現(xiàn)變化。
四、沒有被干預的shader(最簡單的shader)
上文創(chuàng)建了一個shader,我們把里面所有內(nèi)容都刪除。僅留下圖中內(nèi)容(如圖3所示)。

留下的“Custom/001”是這個shader在unity里保存的位置(如圖4所示),當你在材質(zhì)中尋找它時,也是通過這個位置去尋找的。我們將這個Shader放入材質(zhì)后,發(fā)現(xiàn)是玫紅色(如圖5所示),這里不太明白,也可以去看之前寫的內(nèi)容:Unity | Shader(著色器)和material(材質(zhì))的關系-CSDN博客


?
PS:如果以前經(jīng)常用材質(zhì)的小伙伴發(fā)現(xiàn),之前如果材質(zhì)丟失,就顯示的紅色。
所以,材質(zhì)丟失 = shader空了,顯示了最本來的面目。
五、下節(jié)預告
因為了解了空白Shader,我們就希望去學習如何寫Shader,文章來源:http://www.zghlxwxcb.cn/news/detail-757816.html
下一節(jié),我們講解基礎的Shader語法。文章來源地址http://www.zghlxwxcb.cn/news/detail-757816.html
到了這里,關于Unity | Shader基礎知識(第一集:unity中最簡單的shader)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!