- 博客(8)
- 资源 (5)
- 收藏
- 关注
转载 10.热空气扭曲效果
Shader "Study/10_Distortion" { Properties{ _NoiseTex("絮乱图", 2D) = "white" {} // 絮乱图 _AreaTex("区域图(Alpha):白色为显示区域,透明为不显示区域", 2D) = "white" {} // 区域图 _MoveSpeed("絮乱图移动速度", range(0,1.5)) =
2016-07-28 13:53:36 3049
原创 9.球体阴影
上一篇讲的阴影shader是通过两个pass来渲染出的,第一个pass渲染要投影的物体本体,第二个pass渲染物体的阴影,也就是说阴影的渲染是在物体的shader中而不是地面的shader。下面要讲的球体阴影的shader是放在要接受阴影的地面上。 原理如下图:1.根据点的入射光矢量和点到球体的矢量计算【点积】求出【角度】。2.通过【角度】的sin值,求出【对边】并与【
2016-07-14 17:02:12 1382
原创 8.平面阴影
public class CastShadow : MonoBehaviour { public Transform rec;//接受阴影的物体 // Use this for initialization void Start () { GetComponent().sharedMaterial.SetMatri
2016-07-13 16:14:09 666
原创 7.Phong 和 BlinnPhong
Lambert漫反射光照模型,这是一个用来模拟粗糙表面对光线的漫反射现象的经验模型,对于纸张、粗糙墙壁等等来说,这个模型或许够用,但对于金属这样的光滑表面来说,我们就需要使用Phong模型来模拟光滑表面对光线的镜面反射现象。同Lambert一样,这个模型也是经验模型,而且在程序中,我们经常同时使用Lambert和Phong两个模型,因为在现实世界中,任何表面都会同时发生漫反射和镜面反射两种现象,因
2016-07-07 18:39:51 2869 1
原创 6.Half Lambert光照Diffuse Shader
简单来说,Lambert定律认为,在平面某点漫反射光的光强与该反射点的法向量和入射光角度的余弦值成正比(即我们之前使用dot函数得到的结果)。Half Lambert最初是由Valve(游戏半条命2使用的引擎即是其开发的)提出来,用于提高物体在一些光线无法照射到的区域的亮度的。简单说来,它提高了漫反射光照的亮度,使得漫反射光线可以看起来照射到一个物体的各个表面。而Half Lambert最初也
2016-07-06 10:52:45 416
原创 5.Lambert光照Diffuse Shader
http://blog.csdn.net/candycat1992/article/details/17355629 这篇文章写的很好,这里就直接上代码了Shader "Study/5_LambertDiffuse" { Properties{ _Color("Main Color", Color) = (1,1,1,1) _MainTex("Base (RGB)", 2D) = "
2016-07-05 19:05:47 385
原创 4.边缘光照的描边shader
【思路】:面向摄像机的物体,它的表面法线【normal】和视角向量【viewDir】的【夹角】越靠近边缘就越大。那么就可以根据这个夹角进行处理,夹角越大,那么发射光越强,就可以实现我们想要的效果。Shader "Study/4_OutLine"{ Properties { _MainTex("Base (RGB)", 2D) = "white" {} _BumpMap("
2016-07-04 15:17:16 596
原创 3.顶点外扩方法实现的描边shader
描边shader的实现有很多种,顶点外扩是其中之一。顶点外扩的原理是用2个Pass 渲染物体2次第一遍:描边,顶点沿法线方向外拓后用黑色渲染。外扩这一步的实现是在投影空间,也就是2D的,根绝法线的x和y值进行外扩,因为是沿着法线方向外扩,所以法线越和摄像机方向相同,也就是越接近面向摄像机的顶点,顶点的位置变化的越小,当法线和摄像机方向相同时,不会有任何变化。第一遍渲染后,实际的图像如下:
2016-07-01 22:40:49 4954
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人