zoukankan      html  css  js  c++  java
  • 内置着色器包含文件

    Unity包含了好几个文件,这些文件可以在你自己的shader 程序中使用,提供预定义的变量和功能函数。这个操作通过标准的指令 :#include来引入。

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

    着色器包含文件在unity中以.cginc扩展名结尾,内置的为:

    • HLSLSupport.cginc - (自动包含)用于跨平台着色程序编译的帮助宏和定义。
    • UnityShaderVariables.cginc - (自动包含)常用的全局变量。
    • UnityCG.cginc - 常用的功能函数。
    • AutoLight.cginc - 光照& 阴影功能,比如,表面着色器内部就使用这个文件。
    • Lighting.cginc - 标准的表面着色器 光照模型;当你使用表面着色器时,自动包含。
    • TerrainEngine.cginc -  地形& 植物 的功能函数。

    这些文件在Unity应用中都可以找到,路径:{unity安装路径}/Data/CGIncludes/UnityCG.cginc on Windows, /Applications/Unity/Unity.app/Contents/CGIncludes/UnityCG.cginc on Mac

    HLSLSupport.cginc

    这个文件在你编写 CGPROGRAM shader的时候自动包含(但是在HLSLPROGRAM时不自动包含)。它声明了各种预处理器宏来帮助多平台着色器开发。

    UnityShaderVariables.cginc

    这个文件在你编写 CGPROGRAM shader的时候自动包含(但是在HLSLPROGRAM时不自动包含)。它声明多种多样的内置全局变量。

    UnityCG.cginc

    这个文件经常被包含到UnityShader中。它声明了许多内建的功能函数和数据结构:

    Data structures in UnityCG.cginc

    • 结构 appdata_base: 顶点着色器 输入 位置、法线、一个贴图坐标
    • 结构 appdata_tan: 顶点着色器 输入 位置、法线、切线、一个贴图坐标
    • 结构 appdata_full: 顶点着色器 输入 位置 法线、他切线、顶点颜色和两个贴图坐标
    • 结构 apdata_img: 顶点着色器 输入 位置和一个贴图坐标
  • 相关阅读:
    location 匹配规则
    nginx+keepalived 高可用方案
    Nginx 静态文件服务
    web服务器-nginx优化
    Oracle 修改字符集(AL32UTF8 转换成UTF8字符集)
    xshell复制粘贴
    关于mysql中的DDL,DML,DQL和DCL
    LVS实现Kubernetes集群高可用
    k8s实践(一):Centos7.6部署k8s(v1.14.2)集群
    Centos7.6部署k8s v1.16.4高可用集群(主备模式)
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/8456861.html
Copyright © 2011-2022 走看看