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/高度

转载于:https://www.cnblogs.com/lancidie/p/6964590.html

关于Unity中Shader的内置值相关推荐

  1. 【Unity3D Shader编程】之五 圣诞夜篇 Unity中Shader的三种形态对比 混合操作合辑

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  2. Python中常用的内置方法

    Python中常用的内置方法: 比较大小.求和 如下所示: 代码块: #枚举:返回索引值和对应的value值for i,v in enumerate('westos'):print(i,v)#zips ...

  3. word中套用表格样式在哪里_在Word2010中,关于“套用内置表格样式”的用法,下列说法正确的是_学小易找答案...

    [简答题]1.5%的琼脂溶胶在32~39°C之间可以形成坚实而有弹性的____,并在85°C以下不融化为____,可用以区别于其他海藻胶. [单选题]云南省的简称为? [单选题]在Word2010编辑 ...

  4. python中字典类型中的item是什么-python中 字典类型内置方法

    python中 字典类型内置方法 一.字典(dict) ​ 1·. 存多个值,但是每一个值都有一个key与之对应.列如存在值有姓名:jiayi.年龄:18.身高:173 ​ 2.定义方式 ​ 在{}内 ...

  5. turtle python tkinter_【案例】 什么?idle 中竟然有内置 turtle 样例?(paint)

    案例介绍 我打算开启一个新的方向-- turtle 库案例. 在我们下载安装完毕 Python3 后,在搜索(查找)框中输入 idle.exe,就能够打开系统内置的 Python 开发环境了.不知道有 ...

  6. 谷歌浏览器配置微信浏览器_在 Chrome (谷歌浏览器) 中模拟微信内置浏览器

    微信和 QQ 内置浏览器 UA iOSQQ 内置浏览器 UA: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) > AppleWe ...

  7. 如何在excel UiPath中查找范围内的值

    如何在excel UiPath中查找范围内的值 我们经常在自动化业务流程的同时使用 excel 文件. 如果要在该 excel 文件中查找某个范围内的值以获取搜索值的地址. 我们如何才能完成这项任务? ...

  8. 在 Chrome (谷歌浏览器) 中模拟微信内置浏览器

    微信和 QQ 内置浏览器 UA iOSQQ 内置浏览器 UA: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) > AppleWe ...

  9. MySql中常用的内置函数

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

最新文章

  1. 有意思的。带情感的语音转换,可以下载!
  2. SpringBoot-服务端参数验证-JSR-303验证框架
  3. C++Odd Even Sort奇偶排序的实现算法(附完整源码)
  4. Struts2学习---基本配置,action,动态方法调用,action接收参数
  5. Gunicorn 0.17 发布,Python HTTP 服务器
  6. mac 查看端口并终结
  7. oracle怎么查询模式名,oracle怎么查询数据库实例的三种方式
  8. Python内置库修炼——turtle绘图库指令大全
  9. 随想录(ionic开发app)
  10. Android面向HTTP协议发送post请求
  11. 秋招下半场依然没offer,怎么办?
  12. 「代码随想录」精讲了18道力扣上贪心算法经典题目,总结了这些!
  13. 21世纪大学生之你是属于哪种看网课。
  14. 互联网广告请求链路_微博广告推荐策略工程架构体系演进
  15. Django新手入门(五)——Models详解
  16. C#通过账号密码访问共享文件夹/目录
  17. 300万数据导入导出优化方案,从80s优化到8s(实测)
  18. 如何在计算机桌面上添加小工具,怎么在电脑的桌面小工具里添加便签
  19. 数据库 连接(自然连接,内连接,外连接)
  20. 7.STM32C8T6+DHT11在OLED上显示 温度,湿度

热门文章

  1. DCMTK:简单存储服务类用户
  2. VTK:可视化算法之CutWithCutFunction
  3. ListModel QML类型
  4. C语言Catalan number卡特兰数(使用n个键可以搜索多少个二叉搜索树)的算法(附完整源码)
  5. OpenGL packetbuffer分组缓冲器的实例
  6. C语言实现UDP网络通信(附服务端和客服端完整源码)
  7. QT的QNetworkProxy类的使用
  8. C++STL的vector容器
  9. 经典C语言程序100例之七零
  10. c++ 预处理命令 #if, #ifdef, #ifndef, #else, #elif, #endif用法