您的位置:首页 > 移动开发 > Unity3D

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 :原例效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: