Unity Shader中CGINCLUDE和CGPROGRAM

Unity ShaderLab支持使用GLSL、HLSL和CG三種語言編寫shader。

  • CG (C for Graphics )是 NVIDIA 公司開發的語言。從名字上來看的出它是 C 語言的親戚,現實是它保留了 C 語言的大部分語義。NVIDIA官方已經宣佈自CG3.1版本後,不再維護和發展Cg語言。
  • HLSL(High Level Shader Language) 的簡稱,由微軟和NVIDIA共同開發的語言。語法跟 CG 非常的相似。
  • GLSL (OpenGL Shading Language) 的簡稱,OPENGL 組件開發的,語法也是基於 C 語言的。

但是,Unity爲了最大化的跨平臺支持,選擇重點支持HLSL,在實際使用中很多時候HLSL和CG是一樣的。

所以,HLSL和CG的代碼塊都是聲明在CGPROGRAM...END結構中,用來說明需要編譯的內容,

CGINCLUDE代碼塊會被插入到每一個Pass中,因此我們可以把Pass中的公共的字段,結構和方法等聲明在CGINCLUDE代碼塊中。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章