【Unity】FOV战争迷雾

本文介绍了在Unity中实现3D战争迷雾的详细步骤,包括计算Field of Vision (FOV)、生成地图障碍物二维数组、计算视野区域、生成迷雾mask贴图以及模糊处理和屏幕空间投影。这种方法能确保迷雾效果更符合角色视角,并提供了一个优化的计算方案以降低主线程负担。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

战争迷雾作为一种常用的游戏效果,被广泛的运用在RTS游戏和最近火热的moba类游戏中,在游戏中需要不断的进行探索和侦察来打开更多的视野区域,或者用来显示友方的位置,或者是躲避敌方等。

常见的战争迷雾主要有两种:
第一种是比较纯粹的将周围指定半径内的区域全部认为可见,即以整个圆形范围来表示可见的区域。由于玩过的RTS比较少,记不清哪些游戏使用的是这种方式了,这里随便找了张图片,大致是这样的效果:



这种方式的实现相对比较容易,网上也有相当多的unity实现这类战争迷雾的方案。但这种实现方式存在一个缺点,就是它的渲染是基于玩家视角(上帝视角)而不是角色视角的,即如果角色此时周围存在森林或一座小山或是高墙,对于正常情况,角色应该是看不到被障碍物遮挡的后方的物体的,但使用这种方式会将整个原形范围内的视野都渲染出来。

第二种方式应该是moba和大部分3DRTS游戏中比较常见的实现了,这种方式需要计算出角色实际可见的视野区域(Field of Vision),这样可以剔除掉角色本来应该看不见的区域,如下:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值