Unity Shader - Built-in shader include files 内置shader头文件

目录:Unity Shader - 知识点目录(先占位,后续持续更新)
原文:Built-in shader include files
版本:2019.1

Built-in shader include files

内置shader头文件

Unity包含一些文件可用于给你的 shader programs 预定义变量和辅助函数。使用标准的 ##include 指令,如:

CGPROGRAM
// ...
#include "UnityCG.cginc"
// ...
ENDCG

shader头文件在Unity中使用 .cginc 扩展名,已有的一些内置头文件:

  • HLSLSupport.cginc (自动include)为跨平台shader编译的一些辅助宏和定义。
  • UnityShaderVariables.cginc (自定include)用于定义全局变量。
  • UnityCG.cginc 定义 helper functions(辅助函数)。
  • AutoLight.cginc 光源和阴影功能,如: surface shader 也使用这个文件。
  • Lighting.cginc - 标准 surface shader 光照模型;当你编写surface shader时将自动include。
  • TerrainEngine.cginc - 为Terrain和植被着色器的辅助函数。

这些文件可以在Unity应用程序里找到(Windows:{unity install path}/Data/CGIncludes/UnityCG.cginc,Mac:/Applications/Unity/Unity.app/Contents/CGIncludes/UnityCG.cginc),如果可以在这些文件查看一些辅助功能的代码是如何完成的。

HLSLSupport.cginc

当你编译 CGPROGRAM(HLSLPROGRAM的话不会include) shader时,这个文件将自动include。定义了各种不同的 preprocessor macros(预处理宏)来帮助实现多平台的shader开发。

UnityShaderVariables.cginc

当你编译 CGPROGRAM(HLSLPROGRAM的话不会include) shader时,这个文件将自动include。定义了shader中通常的各种不同的 built-in global variables(内置全局变量)。

UnityCG.cginc

这个文件通常都会被include到你的 Unity shader中。它定义了许多 built-in helper functions 和数据结构。

Data structures in UnityCG.cginc

在UnityCG.cginc中的数据结构

  • appdata_base 结构体:顶点着色器输入数据,带有坐标,法线和一个纹理坐标。
  • appdata_tan 结构体:顶点着色器输入数据,带有坐标,法线,切线和一个纹理坐标。
  • appdata_full 结构体:顶点着色器输入数据,带有坐标,法线切线,顶点颜色和两个纹理坐标。
  • appdata_img 结构体:顶点着色器输入数据,带有坐标和一个纹理坐标。

你可能感兴趣的:(Unity,Shader,译文)