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代码块中。

 

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