shader常用】的更多相关文章

书看到第八章,跟随写了一些例子,但有些数值类型的使用还是需要特别注意,经常需要查阅,在这里做一下总结. 1 ShaderLab属性类型和Cg变量类型的匹配关系 Color.Vector:float4,half4,fixed4 Range.Float:float, half, fixed 2D:sampler2D 3D:sampler3D Cube:samplerCube Int:int(32位整型数据) 注意:这些属性类型是在定义属性时使用,例如: Shader "Unlit/Test Shad…
此篇博客转自csdn的一位大牛. 中间排版出了一些问题 Intrinsic Functions (DirectX HLSL) The following table lists the intrinsic functions available in HLSL. Each function has a brief description, and a link to a reference page that has more detail about the input argument an…
最近在学习Unity Shader,写Shader的时候总是忘记Unity为我们提供的函数.变量怎么写的,这里整理一下,方便自己查阅,也提供给网友,学习Shader不易. 1.函数 float3 WorldSpaceViewDir(float4 v) //输入一个模型空间中的顶点位置,返回世界空间中从该点到摄像机的观察方向 float3 ObjSpaceViewDir(float4 v) //输入一个模型空间中的顶点位置,返回模型空间中从该点到摄像机的观察方向 float3 WorldSpace…
为了方便自己记忆,将常用的CG函数写于此 转载于 http://www.cppblog.com/lai3d/archive/2008/10/23/64889.html Name Syntax Description abs abs(x) Absolute value (per component). acos acos(x) Returns the arccosine of each component of x. all all(x) Test if all components of x a…
极端常用: UnityObjectToClipPos(v.vertex); 最基本的顶点变换,模型空间 ==>裁剪空间 mul(unity_ObjectToWorld, v.vertex); 顶点:模型空间 ==>世界空间,多用于顶点着色器 UnityObjectToWorldNormal(v.normal); 法线:模型空间 ==>世界空间,多用于顶点着色器,float3(归一化后fixed3) UnityWorldSpaceLightDir(i.worldPos.xyz); 仅前向渲…
1 模型空间转裁剪空间 UnityObjectToClipPos(v.vertex) 2 模型空间转世界空间 mul( unity_ObjectToWorld, v.vertex ) 3 雾三件套 UNITY_FOG_COORDS(3) UNITY_TRANSFER_FOG(o,o.pos); UNITY_APPLY_FOG(i.fogCoord, c); 4 环境光 UNITY_LIGHTMODE_AMBIENT   5 灯光世界方向 _WorldSpaceLightPos0.xyz 6 摄像…
上一篇记录了shader常用函数和变量,这篇记录一些光照计算时常用函数和变量 1.内置的光照变量 _LightColor0 float4 //该Pass处理的逐像素光源的颜色 _WorldSpaceLightPos0 float4 //_WorldSpaceLightPos0.xyz是该Pass处理的逐像素光源的位置.如果该光源是平行光,那么_WorldSpaceLightPos0.w是0,其他光源类型是1 _LightMatrix0 float4x4 //从世界空间到光源空间的变换矩阵,可以用…
自适应阈值效果图 demo 这几天抽空看了下GpuImage的filter,移植了高斯模糊与自适应阈值的vulkan compute shader实现,一个是基本的图像处理,一个是组合基础图像处理聚合,算是比较有代表性的二种. 高斯模糊实现与优化 大部分模糊效果主要是卷积核的实现,相应值根据公式得到. int ksize = paramet.blurRadius * 2 + 1; if (paramet.sigma <= 0) { paramet.sigma = ((ksize - 1) * 0…
[Unity Shader]---常用帮助函数.结构体和全局变量 一.内置包含文件 Unity中有类似于C++的包含文件.cginc,在编写Shader时我们可以使用#include指令把这些文件包含进来这样我们就可以使用Unity为我们提供的一些非常好用的函数.宏和变量. 例如:#include"UnityCG.cginc" 包含文件的位置:根目录\Editor\Data\CGIncludes 知识点1:以下是Unity中常用包含文件: 文件名 描述 1.UnityCG.cginc…
// 摄像机方向(视角方向) float3 WorldSpaceViewDir(float4 v) // 根据模型空间中的顶点坐标 得到 (世界空间)从这个点到摄像机的观察方向 float3 UnityWorldSpaceViewDir(float4 v) // 世界空间中的顶点坐标==>世界空间从这个点到摄像机的观察方向 float3 ObjSpaceViewDir(float4 v) // 模型空间中的顶点坐标==>模型空间从这个点到摄像机的观察方向 // 光源方向 float3 Worl…