• 内置的材质包含文件 .cginc


    Unity中包含几个文件,可以用于你的Shader程序,里面包含了预定义的变量和辅助函数。使用它需要用 #include指令

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

     Shader包含的文件在Unity中后缀为.cginc,内置的文件为:

    • HLSLSupport.cginc - (自动包含) 为跨平台的着色器编译宏和定义提供帮助。
    • UnityShaderVariables.cginc - (自动包含)常用的全局变量。
    • UnityCG.cginc - 常用的辅助函数
    • AutoLight.cginc - 照明&阴影功能,如表面着色器在内部使用这个文件
    • Light.cginc - 标准表面着色器照明模式,当你写surface shaders时自动包含。
    • TerrainEngine.cginc - 对地形和植被着色器的辅助函数

    这些文件在Unity文件夹({unity install path}/Data/CGIncludes/UnityCG.cginc on Windows,           /Applications/Unity/Unity.app/Contents/CGIncludes/UnityCG.cginc on Mac),如果你想看看究竟是什么样的辅助代码。

    HLSLSupport.cginc

    在编译Shader时自动包含。它声明了各种预处理器宏在多平台材质发展辅助。

    UnityShaderVariables.cginc

    在编译Shader时自动包含。它宣称各种内置的着色器中常用的全局变量。

    UnityCG.cginc

    这个文件经常在Unity Shader中包含,带来许多辅助方法。

      Data结构在UnityCG.cginc 

    • appdata_base:顶点着色器输入与位置,法线,纹理坐标
    • appdata_tan:顶点着色器输入与位置,法线,切线,一个纹理坐标
    • appdata_full:顶点着色器输入与位置,法线,切线,顶点颜色和两个纹理坐标
    • appdata_img:顶点着色器输入与坐标和一个纹理坐标

      泛型的方法在UnityCG.cginc

    • float3 WorldSpaceViewDir(float4 v) - 返回世界空间向量(没有进行归一化的)从给定对象空间顶点位置对着镜头
    • float3 ObjSpaceViewDir(float4 v) - 返回对象空间向量(没有进行归一化的)从给定对象空间顶点位置对着镜头
    • float2 Parallaxoffset(half h, half height, half3 viewDir) - 为正常视差映射计算UV偏移
    • fixed Luminance(fixed3 c) - 将颜色转换为亮度(灰度)
    • fixed3 DecodeLightmap(fixed4 color) - 从Unity的光照映射中解析颜色(RGBM或dLDR取决于平台)
    • float4 EncodeFloatRGBA(float4 v) - 编码[0 . . 1)浮动范围为RGBA颜色,用于存储在低精度渲染目标
    • float DecodeFloatRGBA(float4 enc) - 解码RGBA颜色到一个浮点数
    • float2 EncodeFloatRG(float v) 和 float DecodeFloatRG(float2 enc)使用两个颜色通道
    • float2 EncodeViewNormalStereo(float3 n) - 将视图空间发现编码为0~1范围内
    • float3 DecodeViewNormalStereo(float4 enc4) - 从enc.xy中解码为视图空间法线

      正向渲染方法在UnityCG.cginc

      这些方法只有在使用正向渲染(forward rendering)时才有用(ForwardBase或ForwardAdd通过类型)。

    • float3 WorldSpaceLightDir (float4 v) - 计算世界空间向量(没有归一化的)的光,给定对象空间顶点位置。
    • float3 ObjSpaceLightDir(float4 v) - 计算物体空间向量(没有归一化的)的光,给定对象空间顶点位置。
    • float3 Shade4PointLights(....) - 计算照明从四个点光源,光数据紧密到向量,正向渲染使用这个去计算per-vertex(每个顶点)的灯光

      顶点照亮方法在UnityCG.cginc

      这些方法只有在使用pre-vertex lit

    • float3 ShadeVertexLights(float4 vertex, float3 normal) - 计算照明从四个per-vertex 光照和环境从给予的物体空间坐标和法线
  • 相关阅读:
    卷积神经网络-目标探测-笔记
    卷积神经网络-目标分类简述
    深度学习-卷积神经网络的发展-笔记
    深度学习-卷积神经网络笔记
    深度学习-传统神经网络
    深度学习-初识深度学习-笔记
    数据结构-链式队列-C++
    查看线程的id名字正在运行的线程数量[getName()--ident--enumerate--activeCount]--线程池--协程(gevent)--优先级队列(LifoQueue)
    线程-线程的(锁、死锁现象、守护线程)
    ftp(网络传输)--BaseRequesHandler(tcp协议下的多个客户端连接)--urandom(随机生成字节字符串)--hmac(类似于hashlib)
  • 原文地址:https://www.cnblogs.com/OrangeZhang/p/5019392.html
Copyright © 2020-2023  润新知