【Shader】常用函数(UnityShader内置函数、CG 和 GLSL 内置函数等)和内置变量¶
一、CG 和 GLSL 常用函数¶
CG 语言中的变量修饰符¶
| 修饰符 | 解析 |
|---|---|
| const | 变量定义为常量后,程序中不能再对其赋值 |
| extern | 表明声明仅仅是声明,而非定义 |
| in | 作为函数或程序的输入值 |
| inline | 告诉编译器对该函数采取内联调用 |
| inout | 作为函数或程序的输入输出值 |
| static | 只在声明全局变量时使用 |
| out | 作为函数或程序的输出值 |
| uniform | 定义 constant buffers(常量缓存) |
1、数学函数¶
原文整理了大量 CG / GLSL 数学函数对照,包括:
ceil/floorfrac/fractexp/log/powsqrt/rsqrtsin/cos/tandot/crossclamp/lerp/smoothstep
smoothstep 示例¶
2、几何函数¶
常见函数包括:
distancefaceforwardlengthnormalizereflectrefract
3、纹理映射函数¶
原文整理了常见:
tex1Dtex2Dtex3DtexCUBE- 各类
proj、深度比较、导数版本
4、偏导函数¶
ddx(a):近似a关于屏幕空间 x 轴的偏导数ddy(a):近似a关于屏幕空间 y 轴的偏导数
二、Unity 常用内置函数、变量¶
1、Unity 常用结构体¶
顶点着色器输入¶
appdata_baseappdata_tanappdata_fullappdata_img
顶点着色器输出¶
v2f_img
2、空间变换函数及内置变量¶
常见函数包括:
UnityWorldToClipPosUnityViewToClipPosUnityObjectToViewPosUnityWorldToViewPosUnityObjectToWorldDirUnityWorldToObjectDirUnityObjectToWorldNormalUnityWorldSpaceLightDirUnityWorldSpaceViewDir