shader
文章平均质量分 86
刘峰1011
....
展开
-
Unity中实现类似纪念碑谷中地面的雾化效果
看一下纪念碑谷中的这个效果:想要实现一个这种地面的雾化效果,在网上找了很久,也没找到满意的解决方案,最后只能自己做一个了。首先想到的就是shader,思路就是从y坐标=0开始往下的位置都使用雾的颜色,中间过度部分用原颜色和雾的颜色做一个插值即可。但是因为是整个游戏的效果,肯定不能只作用在某一个模型上,所以只能使用后期特效,后期特效的话就会有一个问题,如何获取像素点的世界坐标,于是我原创 2018-02-02 14:43:56 · 5378 阅读 · 1 评论 -
unity 中使用HSV 颜色模型进行颜色的随机变化
经常能看到一些游戏中背景或是场景颜色的变换,每次进入游戏都能看到不一样的效果,像我之前介绍的游戏Polyforge一样:实现一个这样的效果,可以直接使用rgb颜色来随机,因为平时我们接触到的大部分都是rgb颜色,但是这样的话带来的效果就是有时候亮有时候暗,甚至有纯白纯黑。而我们想要的是鲜艳一些的,有没有办法只获取色系中的彩色部分呢?这时候HSV颜色模型就派上用场了!关于颜色模型有很多种,这里我就不...原创 2018-02-27 18:25:40 · 4823 阅读 · 0 评论 -
unity 消融效果shader 以及世界空间uv
在腾讯GAD上看到一篇文章http://gad.qq.com/program/translateview/7187984。由于文章中并没有给出源码,所以自己尝试实现了一下,文章最后有完整shader代码。消融效果很简单,只要在fragment中丢弃无效的像素点即可 fixed4 color = tex2D(_MainTex,uv); i...原创 2018-02-27 13:50:56 · 2812 阅读 · 0 评论 -
unity 场景向屏幕中心塌陷的shader
完整代码在我的github中:https://github.com/LiuFeng1011/Test/tree/master/Assets/CollapseTest先来看下效果:shader代码:Shader "Custom/CollapseShader" { Properties { _MainTex ("Maintex", 2D) = "white" {} _Progre...原创 2018-02-13 00:10:42 · 2060 阅读 · 0 评论 -
unity中实现一个类似x光扫描效果
先来看下效果:原理很简单,首先获取顶点到摄像机的观察方向,然后与顶点的法线方向进行点积算出投影的长度最后再乘以我们设置的颜色值即为最终要输出的颜色。这里要注意观察方向与法线方向要进行归一化。shader代码:Shader "Custom/XLight" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo...原创 2018-02-26 14:47:59 · 4848 阅读 · 0 评论 -
unity中背景渐变shader对贝塞尔曲线的应用
这里我更新了一篇使用Texture2D实现的文章:http://blog.csdn.net/zgjllf1011/article/details/79261491以下为原文:最近玩了一个游戏叫Polyforge,游戏里是这样的:游戏中的背景会随机的变化,并且周围有一圈渐变的黑边,看上去很舒服,所以决定照着样子实现一个。首先做一个渐变,很简单,2个颜色做插值:retu原创 2018-02-03 22:33:29 · 4130 阅读 · 0 评论 -
unity后期特效shader之photoshop混合模式公式的应用
在网上看到了一些颜色混合模式的公式,链接:https://jingyan.baidu.com/article/36d6ed1f7c04801bcf4883c2.html觉着挺实用的,写个shader来尝试一下看看效果。因为这里都是混合模式,所以需要两张图片,但是我们对摄像机的内容进行后处理,只有1个图层,所以我就把A和B都使用相同内容来处理。很明显A和B图层内容相同的话前两个公原创 2018-02-03 01:45:41 · 5804 阅读 · 0 评论 -
unity中一个类似纪念碑谷里的三角图形组成的海面效果
想要实现一个纪念碑谷中的海面效果,最初的设想是在vertex中,修改顶点坐标来实现,而且也实现出来了,代码:v2f vert(a2v v) { v2f o; float4 offset; offset.xyzw = float4(0,0,0,0); float原创 2018-02-02 17:09:49 · 1680 阅读 · 1 评论 -
unity中实现一个光照越强透明度越高的shader
可能描述的不清楚,先看下效果:就是这样,被灯光照亮的部分,会变透明,而且越亮透明度越高。这里主要就是通过计算当先位置的法线在灯光方向上的投影大小,投影越大则亮度越高,因为透明度为0-1,所这里我们把(1-亮度)作为透明度即可。完整的shader代码:Shader "Custom/NewSurfaceShader" { Properties{ _原创 2018-02-02 15:23:53 · 852 阅读 · 0 评论 -
unity shader中点光源(point light)的光照衰减处理
unity 的shader提供了2种光照模式:ForwardBase和ForwardAdd。如果我们的shader想要处理多种光照,那么这两种光照模式就都要被实现到不同的pass中。其中ForwardBase中处理的必然是平行光,所以想要处理点光源等其它光源需要在ForwardAdd中进行处理。网上很多讲解点光源的文章,很多都特别复杂或者根本运行不了,其实处理起来非常简单,unity已经给我们提供...原创 2018-03-22 15:03:56 · 9749 阅读 · 3 评论