用DirectX3D战争迷雾怎么实现

zyfu0000 2008-10-13 09:45:14
魔兽争霸和星际争霸中都有战争迷雾功能,我晓得制造迷雾怎么弄,而且我认为在物体在迷雾中移动是有个聚光灯,但物体走过的地方迷雾就消失了,那怎么实现?高手进。
...全文
268 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyfu0000 2008-10-14
  • 打赏
  • 举报
回复
意思就是说先全部用0.2亮度的光照,然后人走过的地方就用高光来照射。但那样要用什么光来实现吗?
zyfu0000 2008-10-14
  • 打赏
  • 举报
回复
我明白了,谢谢了,Silenker 大哥。
wgm001 2008-10-14
  • 打赏
  • 举报
回复
mark
引力场变动源 2008-10-14
  • 打赏
  • 举报
回复
这种功能的实现思路还是蛮多的,我觉得比较好的是下面这两个:
1,光照控制法:那个迷雾,其实并不是我们平时所说的雾化,而是直接干预光照,就是说,只有自己角色周围一定范围内(如半径10米的圆内)进行正常的光照,其它所有地方都把亮度设置为0.2或者0.3之类的,在3D系统中,这种做法是效率最高的。
2,遮罩法:同样的,那个迷雾并不是雾化,而是用一个半透明的图片遮住整个场景,自己角色可以看到的范围内,设置成完全透明,否则的话,就是默认的灰色半透明。这个方法的优点是2D和3D通用,但是在3D系统中,效率没有上面那一个高,因为上面那一个可以节省大部分的光照计算^^

反正,最基本的思路就是,战争迷雾并不是雾。虽然也可以用雾化来达到类似的效果(范围雾/体积雾之类的),但是并不合算。
引力场变动源 2008-10-14
  • 打赏
  • 举报
回复
不是高光……

有角色在的地方,正常的进行光照,计算漫反射镜面反射之类的。
角色走过但是现在不在的地方,直接将光照设置为0.2~0.4左右,不用再计算什么漫反射镜面反射了。
角色没有去过的地方,直接将光照设置为0之类的,也不用计算光照了。

不过上面这些,都要求使用着色器,DirectX的版本要在8.0以上,不用着色器的话,很难做到。

像魔兽争霸那样的,用的是DirectX 8.1,处理的时候把地图分成一小格一小格的,每个小格有一个状态,表示有角色在、角色到过但是现在不在、角色没有到过之类的状态,然后根据不同的状态在着色器中做不同的处理。

星际争霸是2D的,所以用的应该是遮罩或者类似的方法吧,不过也是把地图分成一小格一小格的处理的。
lizhigang34 2008-10-13
  • 打赏
  • 举报
回复
帮顶..
我也正在学DirectX,等我会了再告诉你,呵呵...
感觉3D程序做起来好难啊,和一般的程序还是有很大的不同..
楼主可以分享下你是怎么学的吗,或者手头上用的是什么好书???
内容概要:本文针对网型T型三电平逆变器的低电压穿越(LVRT)能力及其综合控制策略开展深入研究,重点分析电网电压跌落条件下逆变器的动态响应特性与稳定性控制方法。研究基于Simulink平台构建详细的系统仿真模型,融合改进的电流环控制策略与中点电位平衡控制算法,有效提升逆变器在故障工况下的电流跟踪精度、过流抑制能力和直流侧中点电压稳定性。通过多场景仿真验证,所提出的综合控制策略能够显著增强逆变器在低电压穿越过程中的鲁棒性与电能质量,确保新能源系统在电网扰动下的持续可靠并网运行。; 适合人群:电力电子、新能源发电、电力系统自动化等相关专业的研究生、科研人员及从事并网逆变器设计与控制的工程技术人员。; 使用场景及目标:①深入理解三电平逆变器在电网故障下的运行机理与控制挑战;②掌握低电压穿越技术中电流限幅、故障响应及中点电位平衡的核心控制方法;③应用于光伏、风电等新能源并网系统的控制策略开发与仿真验证; 阅读建议:建议结合提供的Simulink仿真模型进行动手实践,重点关注控制器参数设计、中点电位观测与调节模块的实现逻辑,并通过对比不同电压跌落深度和控制策略的仿真结果,深化对系统动态行为与控制性能的理解。

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧