文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PhysX3 User Guide 05 - Scene Queries

PhysX3 User Guide 05 - Scene Queries

时间:2011-06-04  来源:CR苏杭

有两种方式查询场景中的碰撞collision:批处理batched和非批处理non-batched。非批处理查询又称single shot queries,使用PxScene类的接口,是PxScene的一项常规功能。批处理查询是使用PxBatchQuery对象,PS3上只有批处理查询一种方式。

 

    Raycast queries      

 


查询中用户定义的射线ray会与整个场景相交intersected with the whole scene。PhysX有三种射线:

  • raycastAny
  • raycastSingle
  • raycastMultiple

 

查询碰撞collision时,返回的最主要的信息是一个布尔是非值,表示碰没碰上,若需获取更多信息,比如射线是不是穿过了什么之类的,就可以用raycastAny。至于交点的确切信息、相交的是个啥形状,这些都不是raycastAny关心的内容,它只关心一件事,是不是有击中发生(there was a hit)。人工智能中的视线查询(line-of-sight queries)就是一个典型应用。

 

raycastSingle比raycastAny先进一些,通过它可以知道第一个被击中的是个嘛。譬如说子弹击中的情形。

 

raycastMultiple是最高级的。ray会hit到的所有物体都可以得到。好比说穿甲子弹。

 

注意:* solid物体(sphere, capsule, box, convex)是封闭的closed(即它们包括它们的边界boundaries)

        * plane是封闭的半空间 closed halfspace

        * heightfield也是封闭的,并且是solid物体。 

 

射线投射在solid物体上,射线是有终点的。射线ray和solid物体的相交intersection会引发一个击中报告hit report。

 

下表显示了不同物体对射线是否会产生hit report报告的反应是不同的。比如只要起点位于plane内部,即平面以下,无论射线终点在哪儿,也不会有plane被hit的report返回。

  

     Sweep Queries     

 

 

Queries中Shape会以一指定的方向扫sweep过去,并报告是否与场景Scene有碰撞collision。也有三种sweep方式:

  • sweepAny
  • sweepSingle
  • sweepMultiple

 

它们的区别也和3种ray之间的区别一样。 

目前支持sweep的形状Shape有box, sphere和capsule。

 

    Overlap Queries     

 

 

这种query是用 

 

排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载