关于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/高度
转载于:https://www.cnblogs.com/lancidie/p/6964590.html
关于Unity中Shader的内置值相关推荐
- 【Unity3D Shader编程】之五 圣诞夜篇 Unity中Shader的三种形态对比 混合操作合辑
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...
- Python中常用的内置方法
Python中常用的内置方法: 比较大小.求和 如下所示: 代码块: #枚举:返回索引值和对应的value值for i,v in enumerate('westos'):print(i,v)#zips ...
- word中套用表格样式在哪里_在Word2010中,关于“套用内置表格样式”的用法,下列说法正确的是_学小易找答案...
[简答题]1.5%的琼脂溶胶在32~39°C之间可以形成坚实而有弹性的____,并在85°C以下不融化为____,可用以区别于其他海藻胶. [单选题]云南省的简称为? [单选题]在Word2010编辑 ...
- python中字典类型中的item是什么-python中 字典类型内置方法
python中 字典类型内置方法 一.字典(dict) 1·. 存多个值,但是每一个值都有一个key与之对应.列如存在值有姓名:jiayi.年龄:18.身高:173 2.定义方式 在{}内 ...
- turtle python tkinter_【案例】 什么?idle 中竟然有内置 turtle 样例?(paint)
案例介绍 我打算开启一个新的方向-- turtle 库案例. 在我们下载安装完毕 Python3 后,在搜索(查找)框中输入 idle.exe,就能够打开系统内置的 Python 开发环境了.不知道有 ...
- 谷歌浏览器配置微信浏览器_在 Chrome (谷歌浏览器) 中模拟微信内置浏览器
微信和 QQ 内置浏览器 UA iOSQQ 内置浏览器 UA: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) > AppleWe ...
- 如何在excel UiPath中查找范围内的值
如何在excel UiPath中查找范围内的值 我们经常在自动化业务流程的同时使用 excel 文件. 如果要在该 excel 文件中查找某个范围内的值以获取搜索值的地址. 我们如何才能完成这项任务? ...
- 在 Chrome (谷歌浏览器) 中模拟微信内置浏览器
微信和 QQ 内置浏览器 UA iOSQQ 内置浏览器 UA: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) > AppleWe ...
- MySql中常用的内置函数
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
最新文章
- 有意思的。带情感的语音转换,可以下载!
- SpringBoot-服务端参数验证-JSR-303验证框架
- C++Odd Even Sort奇偶排序的实现算法(附完整源码)
- Struts2学习---基本配置,action,动态方法调用,action接收参数
- Gunicorn 0.17 发布,Python HTTP 服务器
- mac 查看端口并终结
- oracle怎么查询模式名,oracle怎么查询数据库实例的三种方式
- Python内置库修炼——turtle绘图库指令大全
- 随想录(ionic开发app)
- Android面向HTTP协议发送post请求
- 秋招下半场依然没offer,怎么办?
- 「代码随想录」精讲了18道力扣上贪心算法经典题目,总结了这些!
- 21世纪大学生之你是属于哪种看网课。
- 互联网广告请求链路_微博广告推荐策略工程架构体系演进
- Django新手入门(五)——Models详解
- C#通过账号密码访问共享文件夹/目录
- 300万数据导入导出优化方案,从80s优化到8s(实测)
- 如何在计算机桌面上添加小工具,怎么在电脑的桌面小工具里添加便签
- 数据库 连接(自然连接,内连接,外连接)
- 7.STM32C8T6+DHT11在OLED上显示 温度,湿度
热门文章
- DCMTK:简单存储服务类用户
- VTK:可视化算法之CutWithCutFunction
- ListModel QML类型
- C语言Catalan number卡特兰数(使用n个键可以搜索多少个二叉搜索树)的算法(附完整源码)
- OpenGL packetbuffer分组缓冲器的实例
- C语言实现UDP网络通信(附服务端和客服端完整源码)
- QT的QNetworkProxy类的使用
- C++STL的vector容器
- 经典C语言程序100例之七零
- c++ 预处理命令 #if, #ifdef, #ifndef, #else, #elif, #endif用法