文章

shader入门基础知识四

shader入门基础知识四
  • content

Cg 入门

Cg 关键字 in,out,inout

  • in:修辞一个形参只是用于输入,进入函数体时被初始化,且该形参值的改变不会影响实参值,这是典型的值传递方式。
  • out:修辞一个形参只是用于输出的,进入函数体时并没有被初始化,这种类型的形参一般是一个函数的运行结果;
  • inout:修辞一个形参既用于输入也用于输出,这是典型的引用传递。
  • out是可以被 return 代替的

创建 shader

DrawCall工作原理

创建如图所示 shader,并且创建一个材质,游戏中创建一个 cube,将材质赋给 cube,将得到如下所示的颜色

shader

颜色解释

NDC 是一个长宽高取值范围为[-1,1]的立方体,因此 obj_pos 的分量取值范围也是[-1,1] 颜色取值范围是[0,1],小于 0 的取 0,因此获得下图所示的颜色

DrawCall工作原理

shader debug 时用到的假彩色图像技术也是类似如此,通过将数据映射到[0,1]范围作为颜色输出到屏幕上,然后通过屏幕颜色来判断数据是否正确。

本文由作者按照 CC BY 4.0 进行授权