• 关于Unity中Shader的内置值


    Unity provides a handful of builtin values for your shaders: things like current object's transformation matrices, time etc.

    Unity为你在编写shader是提供了少量的内置变量:类似 当前物体的变换矩阵,时间等。

    You just use them in ShaderLab like you'd use any other property, the only difference is that you don't have to declare it somewhere - they are "built in".

    你只能在ShaderLab中使用它们,就像你使用其他属性一样,唯一不同的是你不能声明内置的变量。

    Using them in programmable shaders requires including UnityCG.cginc file.

    要用到这些内置变量你必须在你的shader程序中包含UnityCG.cginc file文件。

    Transformations 变换

    float4x4 UNITY_MATRIX_MVP
    Current model*view*projection matrix 
    当前物体*视*投影矩阵。(注:物体矩阵为 本地->世界)
    float4x4 UNITY_MATRIX_MV
    Current model*view matrix 
    当前物体*视矩阵
    float4x4 UNITY_MATRIX_P
    Current projection matrix 
    当前物体*投影矩阵
    float4x4 UNITY_MATRIX_T_MV
    Transpose of model*view matrix 
    转置物体*视矩阵
    float4x4 UNITY_MATRIX_IT_MV 
    Inverse transpose of model*view matrix 
    逆转置物体*视矩阵
    float4x4 UNITY_MATRIX_TEXTURE0 to UNITY_MATRIX_TEXTURE3
    Texture transformation matrices 
    贴图变换矩阵
    float4x4 _Object2World
    Current model matrix 
    当前物体矩阵
    float4x4 _World2Object
    Inverse of current world matrix 
    物体矩阵的逆矩阵
    float3 _WorldSpaceCameraPos
    World space position of the camera 
    世界坐标空间中的摄像机位置
    float4 unity_Scale
    xyz components unused; .w contains scale for uniformly scaled objects. 
    不适用xyz分量,而是通过w分量包含的缩放值等比缩放物体。

    Lighting 光照

    In plain ShaderLab, you access the following properties by appending zero at the end: e.g. the light's model*light color is _ModelLightColor0. In Cg shaders, they are exposed as arrays with a single element, so the same in Cg is _ModelLightColor[0].

    在纯粹的ShaderLab中,你可以利用下面这些属性,只要在末尾增加一个零数:例如 灯光的物体*灯光颜色是_ModelLightColor0.在Cgshader中这些变量更像是一个包含单一元素的数组。所以在Cg中他们是这样的_ModelLightColor[0];

    Name Type Value
    _ModelLightColor float4 Material's Main * Light color 材质的主颜色*灯光颜色
    _SpecularLightColor float4 Material's Specular * Light color 材质的镜面反射(高光)*灯光颜色。
    _ObjectSpaceLightPos float4 Light's position in object space. w component is 0 for directional lights, 1 for other lights 
    物体空间中的灯光为,平行光w分量为零其灯光为1;
    _Light2World float4x4 Light to World space matrix 灯光转世界空间矩阵
    _World2Light float4x4 World to Light space matrix 世界转灯光空间矩阵
    _Object2Light float4x4 Object to Light space matrix 物体转灯光空间矩阵

    Various 变量

    • float4 _Time : Time (t/20, t, t*2, t*3), use to animate things inside the shaders 
      时间: 用于Shasder中可动画的地方。
    • float4 _SinTime : Sine of time: (t/8, t/4, t/2, t) 
      时间的正弦值。
    • float4 _CosTime : Cosine of time: (t/8, t/4, t/2, t) 
      时间的余弦值
    • float4 _ProjectionParams : 投影参数
      x is 1.0 or -1.0, negative if currently rendering with a flipped projection matrix 
      x为1.0 或者-1.0如果当前渲染使用的是一个反转的投影矩阵那么为负。 
      y is camera's near plane y是摄像机的近剪裁平面
      z is camera's far plane z是摄像机远剪裁平面
      w is 1/FarPlane. w是1/远剪裁平面
    • float4 _ScreenParams : 屏幕参数
      x is current render target width in pixels x是当前渲染目标在像素值中宽度
      y is current render target height in pixels y是当前渲染目标在像素值中的高度
      z is 1.0 + 1.0/width z是1.0+1.0/宽度
      w is 1.0 + 1.0/height w是1.0+1.0/高度
  • 相关阅读:
    小程序对于华为Oppo的canvas二维码渲染数据量大
    SonarQube代码质量管理工具的升级(sonarqube6.2 + sonar-scanner-2.8 + MySQL5.6+)
    SonarQube代码质量管理工具安装与使用(sonarqube5.1.2 + sonar-runner-dist-2.4 + MySQL5.x)
    在try-catch机制优化IO流关闭时,OutputStreamWriter 数据流被截断
    Java中日期格式化SimpleDateFormat类包含时区的处理方法
    彻底删除mysql服务(清理注册表)
    PHP7新特性的介绍
    RESTful架构详解
    php-config 介绍
    用 phpize 编译共享 PECL 扩展库
  • 原文地址:https://www.cnblogs.com/lancidie/p/6964590.html
Copyright © 2020-2023  润新知