Unity中的ShaderLab(一)


如果不會Shader就不能稱為客戶端程序,所以有空還是要看一下Shader的相關東西。

 

可供學習的資料:

For Unity users I'd recommend reading:

And then experimenting with:

 

 

先看一個基礎的視頻,我從國外網站上載下來放Youku上的。

 

http://v.youku.com/v_show/id_XNDQ3NzA0MTE2.html

講的是如何使用最基本的Unity的ShaderLab

 

1.新建一個場景,在工程目錄中新建一個Shader和一個Material

2.雙擊Shader打開編輯器

用以下代碼替換:

Shader "MyShader/SolidShader" {
     Properties {
         _Color("Main Color", Color) = (0, 0, 0, 1)
     }
     SubShader {
         Pass{
             Color[_Color]
             }
     } 
 
 }
 

 

Shader關鍵字后面是Shader的名字,可以通過“/”起到分類做用。

 

Property里的東西是用於屬性的可視化配置的,這樣可以方便美術面調出好看的效果。

 _Color("Main Color", Color) = (0, 0, 0, 1)

就表示我現在提供了一個_Color這個變量,他在Inspector上顯示的名字是Main Color,變量的類型是Color,最后給了一個默認值,

這個值可以在外面修改。

把寫好的Shader拖到剛才創建的材質上:

 

接下來是SubShader

一個Shader可以包含多個SubShader,SubShader的作用是可以在一個Shader中為不同性能的顯卡編寫不同的Shader,

在運行時會取出第一個可以在當前顯卡跑的SubShader。

每個SubShader里會有多個Pass。

Pass就是具體對渲染進行操作的單元了。在這里可以設置顏色,材質,貼圖等。

 

具體的可參考Unity的文檔:

Shader Reference

 

3.在場景中創建一個Cube,將寫好的材質拖上去。

未着色前:

 

拖上材質后:

 

換一個紋理的Shader:

Shader "MyShader/TexShader" {
     Properties {
         _MainTex ("Base (RGB)", 2D) = "gray" {}
     }
     SubShader {
         Pass
         {
             SetTexture[_MainTex]{}
         }
     } 
 }
 

 

 

 

一個簡單的Shader就完成了。剩下的就是學習其它的一些變量和關鍵字的使用了,多看下文檔就好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM