PhysX 3.2中的场景查询(1)-基础

本文介绍了PhysX 3.2中的场景查询功能,包括Raycast、Sweep和Overlap检测的基本概念和用法。Raycast检测是线段与碰撞体的交点,Sweep检测是形体与碰撞体的交点,Overlap则是检测给定形体与碰撞体的交集。查询类型包括Any、Multiple和Single,执行方式有即时执行和批处理。此外,文章还提及了查询过滤和Cache功能,以及PxSceneQueryFlags用于处理查询结果。

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

PhysX SDK一直都为游戏开发提供高效可靠的场景查询(Scene Query)功能,到了3.2中,也是如此。这一个系列中,就给大家介绍PhysX 3.2中场景查询功能的使用。

这一篇中,我们重点介绍这一功能的一些基本概念和基础用法。

 

首先,PhysX 3.2中,场景查询的种类支持三种,分别是Raycast,Sweep和Overlap检测。其中:

Raycast检测是从一点,投射一根一定长度的线段,检测物理世界中跟这个线段相交的碰撞体(PxShape);

Sweep检测跟Raycast检测类似,但是投射出去的是一个或者一组形体(PxGeometry),检测物理世界中跟这个/组形体相交的碰撞体(PxShape);

Overlap检测跟上面两个不一样,它是给定某位置的一个形体(PxGeometry),检测物理世界中跟这个形体相交的碰撞体(PxShape)。

 

其次,PhysX 3.2中,对于每一种场景查询,都支持快速获取是否有检测结果的*Any的查询,以及返回所有检测结果的*Multiple的查询;同时,对于Raycast和Sweep,还支持查询最近的检测结果*Single的方法。Overlap类型的查询不支持这种*Single的方法,是因为原理上,Overlap的相交检测是没有方向的,所以无法判断那一个结果是最近的,只能返回所有结果。了解了这一点,SDK提供的场景查询方法就很好记了,就是这些:

 raycastAny(...);
 raycastSingle(...);
 raycastMultiple(...);

 sweepAny(...);
 sweepSingle(...);
 sweepMultiple(...);

 overlapAny(...);
 overlapMultiple(...);


然后,在场景查询执行的方式上, PhysX SDK为我们提供了两种执行方式,一种是立即执行的单次提交,马上返回结果的方式;另一种是批处理查询(Batch Query),我们可以把一帧中可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值