战争迷雾sharder

该博客介绍了如何在Unity3D中实现战争迷雾效果。通过创建两个摄像机,调整渲染层和使用特定材质球,结合脚本和shader,可以实现迷雾遮挡视线的效果。具体步骤包括设置摄像机的Culling Mask,创建特殊层,以及在角色下方放置控制可见性的面板。
摘要由CSDN通过智能技术生成

首先创建两个摄像机,两个摄像机的所有值都一样,把一个拖成子物体。接着 ,在地形的下方创建一个跟地形差不多长、宽的plane,给他一个材质球,材质球设为黑色。

接着,创建一个WarFog层,将子摄像机的渲染层Culling Mask设置成只渲染WarFog层。将Plane设置成WarFog层。

在角色底下创建一个白色面板,设置为WarFog层。创建一个Render Texture ,将它拖到子摄像机的Target Texture属性上。

将主摄像机的Culling Mask去除WarFog层,加上如下脚本。

<pre name="code" class="csharp">using UnityEngine;
using System.Collections;

public class Warfog : MonoBehaviour {

	[SerializeField]
	//拖到子摄像机上的Render Texture
	private RenderTexture mask;

	[SerializeField]
	//创建的材质球   需要用到WarFog sharder  在下面给出
	private Material mat;
	//在图像渲染之后执行
	public void OnRenderImage(RenderTexture source,RenderTexture des)
	{
		//将遮罩的mask传入材质球
		mat.SetTexture("_MaskTex",mask);
		//经过材质球的sharder变换后  拷贝源纹理到目的渲染纹理。
		Graphics.Blit(source,des,mat);
	}
}

 

创建材质球MaskMat将sharder换成如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值