Unity3d Shader
茶向
这个作者很懒,什么都没留下…
展开
-
ComputeScreenPos的bug
这个不是真的bug,是在使用的时候需要注意下。在进行基于Grab或者blit的全屏RenderTexture的时候需要使用ComputeGrabScreenPos 代替,里面做了平台处理 UNITY_UV_STARTS_AT_TOP,否则会出现采样的贴图是反着的情况。inline float4 ComputeGrabScreenPos (float4 pos) { #if UNITY_UV_STARTS_AT_TOP float scale = -1.0; #else .原创 2021-08-22 12:01:34 · 307 阅读 · 0 评论 -
转:图形化调试
http://blog.sina.com.cn/s/blog_471132920101gxzf.html 图形化调试 【前言】图形化调试可以加速开发。例如在战斗中,可能需要知道所有单位的仇恨值,如果这些信息全打log的话,很难有直观感受,而如果在Scene窗口里,单位头顶有一个球,越红表示仇恨越高,越暗表示仇恨越转载 2018-02-04 11:53:17 · 334 阅读 · 0 评论 -
根据位置渐变的shader,纪念杯谷
https://spennerino.wordpress.com/2017/06/20/gradient-shader/http://www.manew.com/thread-110080-1-1.html转载 2017-12-23 11:22:50 · 1103 阅读 · 0 评论 -
什么是Shader里的lerp
float lerp(float a, float b, float w) { return a + w*(b-a);}原创 2016-08-31 23:21:01 · 13003 阅读 · 1 评论 -
shader博客
http://blog.csdn.net/qq18052887/article/category/5637643转载 2017-04-20 10:04:59 · 219 阅读 · 0 评论 -
着色器语言的语义SV_POSITION和POSITION之辨析
http://www.xionggf.com/articles/graphic/misc/sv_position_and_position.html简单地说POSITION语意用于顶点着色器,用来指定这些个位置坐标值,是在变换前的顶点的object space坐标。SV_POSITION语意则用于像素着色器,用来标识经过顶点着色器变换之后的顶点坐标。SV是Systems Val转载 2017-04-10 23:00:21 · 10663 阅读 · 0 评论 -
各种shader
http://blog.csdn.net/aa20274270/article/category/5762697转载 2017-03-21 22:54:13 · 414 阅读 · 0 评论 -
【Unity Shader】unity海边波浪效果的实现
http://blog.csdn.net/mobilebbki399/article/details/50493117转载 2017-03-27 22:59:51 · 3081 阅读 · 0 评论 -
屏幕后处理水波纹
Unity Shader-后处理:屏幕水波效果 Unity Shader-后处理:屏幕水波效果转载 2018-02-25 19:44:46 · 997 阅读 · 0 评论 -
shader向外扩
fixed4 frag(v2f_img i) : SV_Target { //计算uv到中间点的向量(向外扩,反过来就是向里缩) float2 dv = float2(0.5, 0.5) - i.uv; //归一化 float2 dv1 = normalize(dv); //计算每个像素uv的偏移值...转载 2018-02-25 19:05:01 · 1212 阅读 · 1 评论 -
扰动
在unity中实现一个水面扰动的效果,这里用到了UV移动,和uv扰动这里我组合了这两个shader实现了一个水面扰动的效果,使用了一个波纹纹理,然后用一张2维噪声扰动uv。产生的效果还是比较乐观的关键代码v2f vert (appdata v) { v2f o; o.vertex = UnityObjectTo...转载 2018-02-25 17:43:48 · 525 阅读 · 0 评论 -
扭曲的原理
转自:http://blog.csdn.net/lly707649841/article/details/78848071原理所谓扭曲就是扰动一个物体的uv坐标,表现出来就是一个扰动效果,如火焰扭曲空气,和水波对水底的影响。 1. 在shader 中我们需要一张当前渲染的纹理 2. 给一个物体渲染并使用当前纹理,用屏幕坐标作为uv坐标加上一个扰动值unity1. unity提供了抓取的pass: ...转载 2018-02-25 17:21:46 · 1208 阅读 · 0 评论 -
Unity3D 实现镜头模糊效果
http://www.manew.com/thread-98523-1-1.html转载 2016-12-21 13:44:33 · 10058 阅读 · 0 评论 -
Unity3D 实现涡纹旋花效果
http://www.manew.com/thread-98522-1-1.html转载 2016-12-21 13:44:08 · 1487 阅读 · 0 评论 -
Shader 使用UsePass
可以包含来自其他着色器的通道,来减少重复的代码。UsePass "Specular/BASE" 而为了让UsePass能够认识到指定的是谁,必须给希望使用的通道命名,弄个身份证。通道中的Name命令就是这个功能: Name "MyPassName"原创 2016-09-04 23:01:05 · 2787 阅读 · 0 评论 -
[UnityShader]渲染队列、ZWrite和ZTest
转自:http://blog.csdn.net/lyh916/article/details/45317571参考链接:http://blog.csdn.net/zhuyingqingfen/article/details/18979547http://blog.csdn.net/lysc_forever/article/details/13614449http:/转载 2016-08-30 15:58:54 · 459 阅读 · 0 评论 -
求反射向量
在图形学中,计算光照模型时,经常需要求取反射向量,一般的shader函数库都提供计算反射向量的方法,下面介绍一下如何手动计算反射向量。给定入射光线向量I和平面法向量N,求反射向量R,如下图。为了方便计算,这里假定I和N都是单位向量(模为1,编程时可先将I和N单位化)方法一设入射光线向量I和反射平面的法向量N之间的夹角为theta。连接I的始端和R的末端,则有R = 2P -转载 2016-09-10 11:19:37 · 913 阅读 · 0 评论 -
菲涅尔公式
_FresnelScale + (1-_FresnelScale) * pow(1-dot(worldViewDir, worldNormal), 5);要注意三个地方1. 是1减去2. 有个个参数是5, 这个值可以控制菲涅尔影响范围的大小,这个值越大,效果上越边缘化3. _FresnelScale , 这个值是反射的强度, 值越大,返回的强度越大,导致边缘的颜色不那么明显原创 2016-09-10 11:17:04 · 8844 阅读 · 1 评论 -
ShaderForge学习1
转载地址: http://www.cnblogs.com/chimo523/p/5010106.html这是一个用来制作shader的插件,也是一个很好的学习shader的工具。这个插件上手很容易,但是要用它来制作理想的Shader,需要下点功夫。这儿先列举出基础知识,以及我的一些实践。以后我还会继续学习并记录更多的内容。一、基本操作: 1)、截断连线:按住a转载 2016-03-26 12:08:20 · 1594 阅读 · 0 评论 -
渲染管线
坐标变换 物理空间-世界坐标-摄像机坐标-裁剪坐标流水线图形 着色顶点 —— 图元装配 —— 光栅化—— 插值贴图着色光栅化操作转载 2016-03-31 17:55:31 · 434 阅读 · 0 评论 -
Shader博客
http://blog.csdn.net/stalendp/article/details/11492525转载 2015-04-07 11:23:04 · 555 阅读 · 0 评论 -
Shader博客
http://blog.csdn.net/candycat1992/article/list/1转载 2015-03-06 10:07:34 · 445 阅读 · 0 评论 -
Shader第五讲:LOGO闪光效果
http://ykxingquan.blog.163.com/blog/static/1342805201305140742/转载 2014-08-10 20:23:08 · 2185 阅读 · 0 评论 -
Shader例子博客
http://blog.csdn.net/lyh916/article/category/6208767转载 2016-08-30 16:15:13 · 402 阅读 · 0 评论 -
为什么要在混合的时候,关闭ZWrite
这里有一个很有趣的现象,那就是在开启混合的同时,我们必须要关闭深度检测。如果我们不这么做,混合效果将会出现在某些地方,但是在另一些地方却又不会出现。例如,当我们在绘制一个立方体时,假设我们正巧先绘制立方体的背面,这样,立方体的背面就会被写入帧缓冲之中;接着,当正面完成时,正面就会出现在背面之前,并带有混合效果,这也是我们需要的效果。但是,相反如果我们先绘制正面,然后绘制背面,这时背面将会在我们运行转载 2016-08-31 11:29:08 · 1523 阅读 · 1 评论 -
Shader 什么是Unity中的渲染路径
渲染路径(Rendering Path) 决定了光照是如何应用到Unity Shader中的。 很关键的就是光照, 光源可能很多,在shader中如何处理这些光源信息。原创 2016-09-03 18:49:00 · 510 阅读 · 0 评论 -
Shader floor,ceil,degrees,fmod,round,saturate
floor 返回小于等于x的最大整数ceil 返回大于或等于输入值的最小整数。degrees 弧度到角度的转换fmod 返回a / b的浮点余数。round 返回最接近于输入值的整数。原创 2016-09-01 10:04:54 · 3840 阅读 · 0 评论 -
Shader frac
取小数部分原创 2016-08-31 23:41:16 · 3861 阅读 · 0 评论 -
抓屏操作GrabPass
利用GrabPass 进行抓屏,并命名,在shader里使用Shader "Tut/Shader/GrabPass/Grab_1Ref_2" { Properties{ _Range("Reflection Range",range(0.1,1))=0.3 } SubShader { GrabPass {转载 2016-08-31 17:50:12 · 895 阅读 · 0 评论 -
控制Shader只写入深度值
// Extra pass that renders to depth buffer only Pass { ZWrite On ColorMask 0 }原创 2016-08-31 17:11:11 · 1318 阅读 · 0 评论 -
ColorMask
ColorMask可 让我们指定渲染结果的输出通道,而不是通常情况下的RGBA这4个通道皆会被写入。可选参数是RGBA的任意组合以及0,这将意味着不会写入到任何通道,可以用来单独做—次Z测试,而不将结果写入颜色通道转载 2016-08-31 16:58:34 · 1997 阅读 · 1 评论 -
RenderQueue 与 ZTest的区别
RenderQueue的确会改变物体被渲染的先后顺序,但是并不会改变物体的空间位置,因此渲染顺序还会按照Queue,只是ZTest还会正常执行,因此会出现ZTest干掉RenderQueue的情况。 并非错误,只是ZTest还是在正常顺序执行了原创 2016-08-31 14:53:13 · 1785 阅读 · 0 评论 -
Shader LOD
通过给subshader设定-个整犁Level of DetaiI,即 LOD数值,可以在运行时根据硬件设备 能力来决定是否使用此shadcrmyshader.maximumLOD Shader.globalMaximumLOD = (int)val * 100; 就会控制物体是否会显示Shader "Tut/Shader/Common/原创 2016-08-31 14:40:15 · 1426 阅读 · 0 评论 -
一个Shader遮罩的代码
Shader "Custom/AlphaMask" { Properties { _Color ("Main Color", Color) = (1,1,1,1) _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {} _MaskTex ("Mask (A)", 2D) = "white" {}转载 2014-06-29 11:17:03 · 6247 阅读 · 0 评论