- 博客(15)
- 收藏
- 关注
原创 什么是_MainTex_TexelSize
如果最终屏幕输出是1k x 2k 那么_MainTex_TexelSize.x = 1/1024_MainTex_TexelSize.y = 1/2048懂了吧,如果最终输出事一张图铺满屏幕,这个值可以快速取得屏幕上某个像素的值
2017-07-04 16:23:26
7887
1
原创 Unity Shader之Tessellation
这是一个很牛逼的东东,得益于显卡技术的发展,可以将一些粗糙的低精模型,搞出高精的效果,首先,来说说本质是啥如图所示,Tessellation就是可以在原来的三角形上细分出很多更小的三角形,增加很多顶点。但是在具体运用中,我们应该怎么使用,达到我们想要的效果呢,这里就不得不先说一个东西置换贴图,也叫高度图,大家都知道法线贴图,可以使一个平面产生视觉上凹凸的感觉,但是这个平面越垂直于我们的
2017-06-29 17:29:08
5373
原创 UntiyShader之深度纹理
unity是可以取得物体的深度值,相当于可以取得z-buffer的值,这个需要在相机上获得,另外需要硬件支持首先在相机上开启获取深度渲染GetComponent().depthTextureMode =DepthTextureMode.Depth;然后就可以在shader中使用了,需要先申明sampler2D _CameraDepthTexture;这个由unity自己
2017-06-28 14:15:58
458
原创 UnityShader之毛绒绒效果
今天要做一个毛球的效果核心的算法通过多个pass,从里到外一层一层的糊上一层透明diffuse,越靠外面的地方层次越少看起来越稀疏,越模糊FurHelper.cgincstruct v2f { float4 pos : SV_POSITION; half2 uv : TEXCOORD0; half2 uv1 : TEXCOORD1; fixed4 diff : COLOR;}
2017-06-28 09:39:16
8275
3
原创 Unity Shader之雾效
Unity可以多种实现雾效的方法,比如在编辑器设置,官方Shader开启,这里介绍一种自己用纹理贴图方式实现的雾效说明一下,这个雾其实是一个plane上的贴图效果,不适合大距离的拉远拉近,可以用在一些固定视角的游戏中雾的贴图遮罩图:shader如下Shader "Custom/Fog"{ Properties { _MainTex("Fog
2017-06-23 10:43:51
2198
原创 Unity Shader之Post Effect抖动重影效果
大家想一下对整张照片做处理,不管照片中物体的材质处理的方法叫Post Effect有些效果,比如雾啊,Bloom拉,模糊拉,Hdr,都需要用到PostEffect,我们需要单独写一个脚本,绑定在Camera上在OnRenderImage这个回调函数中,用Graphics.Blit这个方法来处理,传入我们制作的shader即可,下面是我自己写的一个抖动效果纪念碑谷中就有类似的
2017-06-22 16:30:24
4557
原创 Unity Shader之Blending
今天讲下Unity Shader里面的Blend模式主要原理就是取得当前片元颜色,和存在颜色缓冲里面的颜色混合,说的就是怎么混合的公式首先,shader是默认混合关闭的,如果不设置,那么在深度测试之后会将靠近摄像头的片元颜色写入颜色缓冲,之前的会被覆盖掉。首先注意,RenderType可以设置成任何类型,没有限制,有的同学以为一定要设置成Transparent才有效,这是不对的设置
2017-06-20 17:13:08
1749
原创 Unity Shader之燃烧消散效果
这种效果已经很多例子了,但是各种算法区别还是挺大的,不同的噪点图也有不同的效果,可以自己调整算法试试效果Shader "Custom/Dissolve3D"{ Properties { _MainTex("Main Texture", 2D) = "white" {} _NoiseTex("Noise",2D) = "white"{} _edgeColor1("_ed
2017-06-20 13:36:14
3758
原创 UnityShader之OutLine
算法很简单,主要需要不同观察角度看上去线的宽度一样,需要转换到观察空间进行操作,空间变换请看我上一篇博客。需要两个pass,一个画线,一个填充Shader "Custom/Outline"{ Properties { _OutlineVal("Outline value", Range(0., 2.)) = 1. //描线的宽度 _Ou
2017-06-19 16:17:41
1324
原创 UnityShader之空间变换解析
都知道要渲染出一个物体,需要经历空间变换,模型坐标(通常由美术决定)----->世界坐标----->观察空间(相机位置决定)------------>裁剪空间(相机类型和参数决定)------->投影unity提供了一系列的矩阵来帮助用户进行坐标空间变换,这里列个表记录下:1:模型空间 2:世界空间 3:观察空间 4:裁剪空间UNITY_MATRIX_MVP:将坐标或者
2017-06-19 15:16:46
3768
原创 Unity Shader 之Geometry Shader
其实unity shader除了vertex shader和frag shader之外,还有一个geom shader,处理流程在vextex shader和frag shader之间,主要是能获取到一个顶点临近的一些顶点,处理三角形之类的,下面看一个例子Shader "Custom/GeomShader"{ Properties { _MainTex("Texture", 2D)
2017-06-19 10:59:09
2548
原创 Unity Shader之波浪效果
很简单,注意每次传入的顶点值是没有偏移过的Shader "Custom/Waves"{ Properties { _MainTex("Texture", 2D) = "white" {} _WaveSpeed("Speed", float) = 0.0 _WaveStrength("Strength", Range(0.0, 1.0)) = 0.0 } SubShader
2017-06-16 13:29:14
3299
原创 Unity Shader之uv旋转
uv旋转,注意按照z轴变换的时候旋转公式,还有中心点的设置Shader "Custom/UV rotation"{ Properties { _MainTex("Texture", 2D) = "white" {} _Angle("Angle", Range(-5.0, 5.0)) = 0.0 } SubShader { Tags{ "RenderType"
2017-06-15 14:43:51
4053
原创 Unity Shader之Stencil Buffer
玩过纪念碑谷的人都知道里面有个很酷炫的效果,可以转动一个盒子看到盒子里面不同的建筑物,很好玩,自己做了个类似的效果。核心是需要用到Unity Shader的Stencil Buffer功能,这里是官方文档https://docs.unity3d.com/Manual/SL-Stencil.html这个功能主要是提供一个遮罩功能,可以由一个数值来决定丢弃或保存在缓冲里面颜色值。注
2017-06-12 14:57:03
1912
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人