红警2里的多层地形的遮挡是如何处理的?

vnix 2003-10-20 11:22:35
红警2中可以有多层地形,单位可以移动到被悬崖遮挡的地方,我觉得按照画家算法这很难处理,不知哪位大侠能讲解一下?
另外,对于飞行单位和地面单位遮挡的处理我也有些疑问:飞行单位在远处,地面单位在近处,当飞行单位在地面上时,被地面单位遮挡;当飞行单位在空中时,遮挡地面单位。这似乎也难以用画家算法实现呀,请各位指教指教!兄弟先谢谢了!
...全文
269 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sugar2008 2003-10-24
  • 打赏
  • 举报
回复
楼上的说的有理
vnix 2003-10-23
  • 打赏
  • 举报
回复
这种情况并非不会出现啊!
比如,在同一屏幕水平坐标上的两个单位,一个单位(比如坦克)所在的地块被峭壁遮挡,而另一个紧邻的单位(比如基地车)所在的地块没有被挡住。但基地车的车体较长,可能会从斜上方遮住峭壁。也就是说,虽然两个单位的坐标不同,但基地车的一部分图象和坦克的图象在屏幕上处于同一位置,而如果先绘制地形,再绘制单位,最后重绘遮挡地形,那么重绘时必然连同基地车一同遮挡了。可红警2中却没有都被遮挡,不信可以打开红警2试试啊。
MarsZhangLing 2003-10-23
  • 打赏
  • 举报
回复
是的。感觉akun(疑无路) ( ) 说的不错。。。。

sakurar 2003-10-23
  • 打赏
  • 举报
回复
这个问题不是很难解决呀,局部会挡住物体的地形作成小的patch,设定它的深度参考点,与其它物体一起排序绘制。
只要先规划好,一般不会出现错误。
具体例子可以看云风早年的2d游戏教程。
akun 2003-10-23
  • 打赏
  • 举报
回复
你说的有可能出现的互相遮挡的情况~这种情况在2d游戏里面可以说是非常不好的设计(赶紧要游戏策划或美工改掉这个设计,程序不是万能的,也没有必要在这上面花功夫。),红警2里面也应该不会有地形挡住车,而车的一部分还伸出来挡住地形。

但是如果是3d游戏就无所谓了,有zbuffer,呵呵~
vnix 2003-10-22
  • 打赏
  • 举报
回复
红警2里的多层地形的绘制好象比较少见,帝国2里的峭壁实际上只是一个图片,象征性的,并没有地形高低的变化,也没有遮挡的问题,甚至出现峭壁的上面和下面同处一个地块的现象:当在峭壁下点击鼠标时,单位反而会跑到峭壁上面。
vnix 2003-10-22
  • 打赏
  • 举报
回复
还是不行啊!
重绘的地形有可能挡住一个本不应被遮挡的单位,比如红警2里的基地车。如果它处于一个悬崖的起点并正从悬崖旁的斜坡向上行驶,其中心坐标比悬崖远,应该先绘,但车身较长,车头则处于悬崖之前,不应被悬崖遮挡。如果按照你说的顺序,车头部分就会被遮挡,如果再重绘单位,就会陷入没完没了的重绘中了。
有没有可能,对被遮挡的单位进行剪切,将被遮挡的部分剪掉然后绘制?
akun 2003-10-22
  • 打赏
  • 举报
回复
1.画全部地形
2.地面单位排序,从远到近。
3.分别绘制每一个地面单位,每绘制完一个,检查是否有遮挡,有的画重绘遮挡地形。
(弊端就是有可能一个遮挡地形可能重绘多次)。

4.排序空中单位。
5.绘制空中单位
vnix 2003-10-21
  • 打赏
  • 举报
回复
这样做虽然可以解决地形对单位的遮挡,可是问题又来了,假设用以下顺序画:
1、画全部地形
2、画全部单位
3、重画有遮挡的地形
那么,重画的地形又会遮挡住不应被遮挡的单位,比如一个比较长的单位在同一行上,本来应在遮挡地形上面,而重画会将其遮盖住。如果再重画这个单位,又有可能遮挡住它前面的单位。
akun 2003-10-21
  • 打赏
  • 举报
回复
还有,飞行单位和地面单位分开绘制,永远现绘制地面单位,再绘制空中单位,准保不会有地面单位遮挡空中单位的错误吧~~
akun 2003-10-21
  • 打赏
  • 举报
回复
不一定用的画家算法~
譬如它的地图编辑器中在高地形遮挡的地方作了标志,当在这些地方画地面单位的时候,就要测试是否有遮挡标志,如果有遮挡,就把这个遮挡物体在画完地面单位后重画一遍~

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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