Unity3D -- 常用函数和变量(Shader学习之一)
来源:互联网 发布:java borderlayout 编辑:程序博客网 时间:2024/05/24 06:16
最近在学习Unity Shader,写Shader的时候总是忘记Unity为我们提供的函数、变量怎么写的,这里整理一下,方便自己查阅,也提供给网友,学习Shader不易。
1、函数
float3 WorldSpaceViewDir(float4 v) //输入一个模型空间中的顶点位置,返回世界空间中从该点到摄像机的观察方向float3 ObjSpaceViewDir(float4 v) //输入一个模型空间中的顶点位置,返回模型空间中从该点到摄像机的观察方向float3 WorldSpaceLightDir(float4 v) //仅用于前向渲染中(ForwardBase),输入一个模型空间中的顶点位置,返回世界空间中从该点到光源的光照方向,没有被归一化float3 UnityWorldSpaceLightDir(float4 v) //仅可用于前向渲染中,输入一个世界空间的顶点位置,返回世界空间从该点到光源的光照方向,没有被归一化float3 ObjSpaceLightDir(float4 v) //仅用于前向渲染中(ForwardBase),输入一个模型空间中的顶点位置,返回模型空间中从该点到光源的光照方向,没有被归一化float3 UnityObjectToWorldNormal(float3 norm) //把法线从模型空间转换到世界空间中float3 UnityObjectToWorldDir(in float3 dir) //把方向矢量从模型空间转换到世界空间中float3 UnityWorldToObjectDir(float3 dir) //把方向矢量从世界空间转换到模型空间中float3 Shade4PointLights(...) //仅可用于前向渲染中,计算四个点光源的光照,它的参数是已经打包进矢量的光照数据。前向渲染通常会使用这个函数来计算逐顶点光照
2、语义
POSITION //模型空间中的顶点位置,通常是float4类型NORMAL //顶点法线,通常是float3类型TANGENT //顶点法线,通常是float4类型TEXCOORDn //该顶点的纹理坐标,TEXCOORD0表示第一组纹理坐标,…,通常是float2或float4类型COLOR //顶点颜色,通常是fixed4或float4类型SV_POSITION //裁剪空间中的顶点坐标,结构体中必须包含一个用该语义修饰的变量。等同于DirectX9中的POSITION,但是最好是使用SV_POSITIONCOLOR0 //输出第一组顶点颜色COLOR1 //输出第二组顶点颜色TEXCOORD0~TEXCOORD7 //输出纹理坐标SV_Target //输出值将会存储到渲染目标(render target)中
3、变量
UNITY_MATRIX_MVP //当前的模型*观察*投影矩阵,用于将顶点/方向矢量从模型空间转换到裁剪空间UNITY_MATRIX_MV //当前的模型*观察矩阵,用于将顶点/方向矢量从模型空间转换到观察空间UNITY_MATRIX_V //当前的观察矩阵,用于将顶点/方向矢量从世界空间转换到观察空间UNITY_MATRIX_P //当前的投影矩阵,用于将顶点/方向矢量从观察空间转换到裁剪空间UNITY_MATRIX_VP //当前的观察*投影矩阵,用于将顶点/方向矢量从世界空间转换到裁剪空间UNITY_MATRIX_T_MV //UNITY_MATRIX_MV的转置矩阵UNITY_MATRIX_IT_MV //UNITY_MATRIX_MV的逆转置矩阵,用于将发现从模型空间转换到观察空间,也可以用于得到UNITY_MATRIX_MV的逆矩阵unity_ObjectToWorld(_Object2World) //当前的模型矩阵,用于将顶点/方向矢量从模型空间变换到世界空间unity_WorldToObject(_World2Object) //用于将顶点/方向矢量从世界空间转换到模型空间
4、摄像机和屏幕参数
float3 _WorldSpaceCameraPos //该摄像机在世界空间中的位置float4 _ProjectionParams //x=1.0(或-1.0,如果正在使用一个翻转的投影矩阵进行渲染),y=Near,z=Far,w=1.0+1.0/Far,其中Near和Far分别是近裁剪平面和远裁剪平面到摄像机的距离float4 _ScreenParams //x=width,y=height,z=1.0+1.0/width,w=1.0+1.0/height,其中width和height分别是该摄像机的渲染目标(render target)的像素宽度和高度float4 _ZBufferParams //x=1-Far/Near,y=Far/Near,z=x/Far,w=y/Far,该变量用于线性化Z缓存中的深度值float4 unity_OrthoParams //x=width,y=height,z没有定义,w=1.0(该摄像机是正交摄像机)或w=0.0(该摄像机是透视摄像机),其中width和height是正交投影摄像机的宽度和高度float4x4 unity_CameraProjection //该摄像机的投影矩阵float4x4 unity_CameraInvProjection //该摄像机的投影矩阵的逆矩阵float4 unity_CameraWorldClipPlanes[6] //该摄像机的6个裁剪平面在世界空间下的等式,按左、右、下、上、近、远裁剪平面
1 0
- Unity3D -- 常用函数和变量(Shader学习之一)
- Unity3D -- 光照常用函数和变量(Shader学习之二)
- unity shader 常用内置函数变量和语义
- Unity3D -- 语法内置函数(Shader学习之三)
- shader内置变量和函数
- shader内置变量和函数
- shader内置变量和函数
- shader内置变量和函数
- shader内置变量和函数
- shader内置变量和函数
- shader内置变量和函数
- Unity Shader 学习笔记(4)Unity Shader内置变量、函数,Shader Model
- Unity3D Shader学习(一)
- unity3d shader学习(1)
- Unity3D shader体系分析和学习总结
- 【Unity3D自学记录】Unity Shader 常用函数列表
- coco2dx shader内置变量和函数
- shader内置变量和函数(转)
- 视图
- iOS之两圆之间标准圆的随机生成
- extern "C"的用法解析
- selenium +Python 测试时报 “Element is not visible”解决方法
- android的消息提示
- Unity3D -- 常用函数和变量(Shader学习之一)
- java容器
- hdu 1800
- maven 本地仓库存在jar包但是项目依旧提示 Failed to read artifact XXX missing artifact XXX的问题
- learnyounode学习笔记(一)
- android UiAutomator一个完整的个人信息修改测试用例
- Excel与Java时间问题:
- CodeForces 755CPolandBall and Forest
- Zbar算法流程介绍