Unity Shader内置的文件和变量

在我们编程的过程中,会使用到很多内置文件,内置文件里会包含很多函数、变量、宏等等
Unity Shader中也有这些东西
在这里插入图片描述

比如在CGIncludes文件夹中,就包含了许多Unity内置文件,里面就包含了一些常用的东西

UnityCG.cginc

里面包含了最常使用的帮助函数、宏、结构体

UnityCG.cginc中一些常用的结构体

下面为 名称——描述——包含的变量

  • appdata_base——可用于顶点着色器的输入——顶点位置、顶点法线、第一组纹理坐标
  • appdata_tan——可用于顶点着色器输入——顶点位置、顶点切线、顶点法线、第一组纹理坐标
  • appdata_full——可用于顶点着色器输入——顶点位置、顶点切线、顶点法线、四组(或以上)纹理坐标
  • appdata_img——可用于顶点着色器输入——顶点位置、第一组纹理坐标
  • v2f_img——可用于顶点着色器输出——裁剪空间中的位置、纹理坐标

UnityCG.cginc中一些常用的帮助函数

下面为 名称——描述——包含的变量

  • float3 WorldSpaceViewDir(float4 v)——输入一个模型空间中顶点的位置,返回世界坐标系中从该点到摄像机的观察方向
  • float3 ObjSpaceViewDir(float4 v)——输入一个模型空间中的顶点的位置,返回模型坐标系中从该点到摄像机的观察方向
  • float3 WorldSpaceLightDir(float4 v)——仅可用于前向渲染中,输入一个模型空间中的顶点位置,返回世界空间中从该点到光源的光照方向,没有被归一化
  • float3 ObjSpaceLightDir(float4 v)——仅可用于前向渲染中,输入一个模型空间中的顶点位置,放回模型空间中从该点到光源的光照方向,没有被归一化
  • float3 UnityObjectToWorldNomal(float3 norm)——把法线方向从模型空间转换到世界空间中
  • float3 UnityObjectToWorldDir(float3 dir)——把方向矢量从模型空间变换到世界空间中
  • float3 UnityWorldToObjectDir(float3 dir)——把方向矢量从世界空间变换到模型空间中

内置的变量

这些内置变量大多位于UnityShader Variables.cginc中,与光照有关的内置变量还位于Lighting.cginc、AutoLight.cginc等文件中

猜你喜欢

转载自blog.csdn.net/weixin_50617270/article/details/123743662