3D游戏中通用碰撞系统的构建

       关于3D游戏碰撞系统的构建,不同的游戏类型差别很大。如极品飞车,HL2这些运动类、FPS的游戏,需要非常精确的碰撞计算,刚体运动等等,好的解决方案就是采用一个成熟的物理引擎。对于WOW这类角色扮演的游戏,精确的碰撞不是它最想要表现的方面。因为采用物理引擎会占用过多的CPU资源,考虑到效率,这类的游戏一般采用简化的碰撞系统。

       该碰撞系统的构建最核心的内容就是物理世界的构建。物理世界不关心渲染,只考虑模型在世界空间中的位置,形状等信息。我简要的描述下碰撞检测的过程

      1 在模型(包括地形)在场景中加载的时候把对应的低摸顶点数据取出,用特定的数据结构来管理(可以是八叉树,BSP等)。当模型从场景中卸载时,同样卸载对应的低模数据,这个过程最好放在后台线程来处理

      2 对于需要进行碰状检测的实体,先让它与碰撞低模的包围盒检测,通过了包围盒再进行精确的三角形检测(这个过程有许多的方法)

     3 根据碰撞检测的结果,改变实体运动的方法,速度等。

     4 服务器怪物寻路需要做简单的遮挡,碰撞检测。需要碰撞系统根据低模数据导出一张灰度图。室内的寻径可以采用可视点的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值