Unity3d Shader FX/Flare
2015-09-16 09:32
531 查看
shader FX/Flare:
使用这个shader绘制出来的纹理将会一直显示在前端,好比关闭了摄像机的深度缓冲区后再绘制。
效果:即使在障碍物后面,也能看到它。
具体代码如下:
Shader "MyShder/FX/Flare" {
Properties {
// 主要材质图片 //
_MainTex ("Particle Texture", 2D) = "black" {}
}
SubShader {
Tags {
// 队列 = 透明 //
"Queue"="Transparent"
// 忽略投影 //
"IgnoreProjector"="True"
// 渲染类型 = 透明 //
"RenderType"="Transparent"
}
// 剔除 关闭 //
Cull off
// 顶点光照 关闭 //
Lighting Off
// 关闭 深度写模式 //
ZWrite off
// 设置深度测试模式,如果是always,前面的物体无法遮住这个物体 //
ZTest Always
// 设置alpha混合模式, 让该材质半透明,并能显示其他材质,到达融合效果。 //
Blend One One
// 设置雾参数 //
Fog { Mode Off }
// 设置当顶点光照关闭时所使用的颜色 //
Color (1,1,1,1)
// 通道 //
Pass {
SetTexture [_MainTex] { combine texture * primary, texture }
}
}
}
暂时能考虑到的适用效果:
1.太阳的光晕
2.让“被障碍物挡住的角色”显示等。
关键属性:
ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)
1.Less,LEqual :无效果
2.Greater,GEqual :被障碍物挡住的部分,才显示。比如:科幻片中带上特殊眼镜,能看到奇怪的生物。
3.Always,NotEqual :原例效果
使用这个shader绘制出来的纹理将会一直显示在前端,好比关闭了摄像机的深度缓冲区后再绘制。
效果:即使在障碍物后面,也能看到它。
具体代码如下:
Shader "MyShder/FX/Flare" {
Properties {
// 主要材质图片 //
_MainTex ("Particle Texture", 2D) = "black" {}
}
SubShader {
Tags {
// 队列 = 透明 //
"Queue"="Transparent"
// 忽略投影 //
"IgnoreProjector"="True"
// 渲染类型 = 透明 //
"RenderType"="Transparent"
}
// 剔除 关闭 //
Cull off
// 顶点光照 关闭 //
Lighting Off
// 关闭 深度写模式 //
ZWrite off
// 设置深度测试模式,如果是always,前面的物体无法遮住这个物体 //
ZTest Always
// 设置alpha混合模式, 让该材质半透明,并能显示其他材质,到达融合效果。 //
Blend One One
// 设置雾参数 //
Fog { Mode Off }
// 设置当顶点光照关闭时所使用的颜色 //
Color (1,1,1,1)
// 通道 //
Pass {
SetTexture [_MainTex] { combine texture * primary, texture }
}
}
}
暂时能考虑到的适用效果:
1.太阳的光晕
2.让“被障碍物挡住的角色”显示等。
关键属性:
ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)
1.Less,LEqual :无效果
2.Greater,GEqual :被障碍物挡住的部分,才显示。比如:科幻片中带上特殊眼镜,能看到奇怪的生物。
3.Always,NotEqual :原例效果
相关文章推荐
- unity5+Vuforia SDK5实现高通AR在unity下的环境构建
- Unity物理引擎:关节简介(角色关节)
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
- Unity3D在Mac OS X中如何打开两个窗口
- Unity物理引擎:关节简介(弹簧关节)
- Unity物理引擎:关节简介(固定关节)
- Unity3D中如何调用序列帧图片为动画
- 【Unity教程】Unity中的C#内存管理
- Unity物理引擎:关节简介(铰链关节)
- Unity3D第三人称无锁定视角实现
- [Unity3D]Unity3D游戏开发之在Android视图中嵌入Unity视图
- [Unity3D]Unity3D游戏开发之从Unity3D到Eclipse
- Unity3D研究院之与Android相互传递消息(十九)
- Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)
- Unity3D技巧
- Unity3D技巧
- 【转载】利用Unity自带的合图切割功能将合图切割成子图
- Unity Build cmd
- Unity打包成APK的一些触屏操作
- unity3d动画插件iTween