Articles of physx

运动学家对非dynamic可破坏物体(使用NVidia APEX)

我在Apex场景中有一个可破坏的非dynamic对象,并用一个运动学演员击中了这个对象。 我不想让这些影响破裂。 可能吗? PS:当可破坏性是dynamic的时候,冲击破坏是closures的。 我已经尝试了下面的设置: physx::apex::NxDestructibleParameters destructibleParameters = destructibleActor->getDestructibleParameters(); destructibleParameters.forceToDamage = 0; destructibleParameters.damageCap = 0; destructibleParameters.impactVelocityThreshold = PX_MAX_F32; destructibleParameters.impactDamageDefaultDepth = -10; destructibleActor->setDestructibleParameters(destructibleParameters);

如何将特定的扭矩应用于Unity中的可configuration关节

我有一个扭矩向量,需要应用于连接两个刚体的可configuration关节。 这个关节configuration成这样,它只允许围绕所有3个轴的角运动。 有没有办法将扭矩vector应用到可configuration的接头上? PS:我使用embeddedUnity的PhysX引擎,所以我不能直接访问D6关节,而只能通过“可configuration关节”包装。 它由于某种原因将Y和Z驱动器组合成一个“YZ驱动器”,而我无法独立指定Y和Z轴的扭矩。

处理字符控制器的斜坡

我最近从Bullet转到了PhysX,看看它是否会成为我的游戏引擎的更好的解决scheme,到目前为止是这样。 唯一的问题,我有,这是我切换的原因是字符控制器的一部分。 在一个建设是相当不错的,但我走了一个问题,当我走下斜坡(虽然起来很好)。 因为玩家的行走速度比重力把他拉下来(当他在地上的时候我把它设置为0),所以他离开了斜坡,这显然是不可取的。 我已经考虑并testing了几种方法来解决这个问题。 我的一个想法是检查一下,当他在xz方向上移动时,是否在地面下方有地面,距离小于或等于该向量的大小,因为我决定45度斜坡是角色可以不走了。 这有很多问题,并导致了很多传送。 然后,我试图做到这一点,当玩家在地面上,将施加一个真正的高重力,以保持他的斜坡。 这也不起作用,因为如果角色在地上,然后移过悬崖,那么他在走过悬崖之前就会在地面上被传送下来。 我真的不知道如何在这里进步,因为逻辑上这个问题困扰了我。 我看了一下虚幻角色的一些行为,似乎没有遇到任何这些问题,它使用PhysX,显然他们find了一个解决scheme。 如果有人有任何想法,我将不胜感激。 谢谢

如何添加摩擦到Unity HingeJoint?

我将一个刚体连接到Unity的铰接点上。 它不在联合的锚点的中心。 为了阻止它下降,我设置Use Motor = true , Target Velocity = 0并施加一些力量的电机。 但是,这并没有帮助,请参阅video: http://g.recordit.co/JJ0cmfT1Mb.gif 以下是示例项目: https : //drive.google.com/open?id = 0B8QGeF3SuAgTNnozX05wTVJGZHc 从示例项目屏幕重现问题(没有代码): 我怎样才能将一个摩擦力施加到一个关节上来阻止刚体的移动? 设置阻尼弹簧或施加极限不是我的select,因为当我向电机施加足够的扭矩(力)时,我需要正确旋转刚体。 如果将风门/限位开关切换,则刚体在下降方向上旋转时会移动得更快,而在相反方向上旋转时刚性体会更慢。

NxWheelShape倾斜与视觉(Havok)引擎和PhysX 2.8.x

我正在使用的车辆的前轮可以左右倾斜(倾斜)以及左右转弯。 转弯非常容易,但是如何设置WheelShapes倾斜,似乎没有任何东西,我想知道这里有没有人有这方面的经验,并可以指向正确的方向? 我看到有一个SetRotationMatrix(),但它也说,它绕过物理模块,将导致不可预知的结果,所以我正在寻找一个视觉引擎function,允许我设置一个旋转三角洲传递一个偏航,俯仰和滚动,但这不会影响WheelShape本身,只有3D Wheel Model,我不认为这就是我想要的。 我只提到视觉引擎的情况下,任何人都熟悉这两个,但PhysX的东西大部分是由引擎未触及的。 有什么建议么?

如何在PhysX 3.1中设置形状密度?

我正在使用PhysX 3.1。 我需要给形状不同的密度(我的单一的刚性演员有几种形状)。 我知道形状的密度可以通过PhysX 2.8中的NxShapeDesc::density来设置,但是在PhysX 3.1中我找不到这样的接口。 我知道质量属性可以在PhysX 3.1中设置,就像SDK中的雪人示例一样。 是否有一个直接的界面来设置每个形状的密度?

PhysX Capsule角色控制器漂浮在地面上

我在我正在使用的仿真软件包中使用PhysX版本3.0.2,并且遇到了胶囊字符控制器的一些奇怪的行为。 当我将控制器的高度和半径设置为适当的值(r = 0.25,h = 1.86)时,它的行为是正确的(沿着地面移动,与其他物体碰撞等等),只是胶囊本身漂浮在地面之上。 当试图穿过门时演员会碰头,因为胶囊是正确的高度,但也浮在地面上。 这张图片应该说明我正在做什么: 人们可以清楚地看到,场景的其余部分正确包裹了碰撞物体,只是胶囊出了问题! 我已经实现的距离是创建一个更小的胶囊,并给它一个偏移量,但是我需要为控制器执行射线拾取,因此胶囊必须正确包围角色模型。 这是我的角色创建代码(高度= 1.86f,半径= 0.25f): NxController* D3DPhysXManager::CreateCharacterController( std::string l_stdsControllerName, float l_fHeight, float l_fRadius, D3DXVECTOR3 l_v3Position ) { NxCapsuleControllerDesc l_CapsuleControllerDescription; l_CapsuleControllerDescription.height = l_fHeight; l_CapsuleControllerDescription.radius = l_fRadius; l_CapsuleControllerDescription.position.set( l_v3Position.x, l_v3Position.y, l_v3Position.z ); l_CapsuleControllerDescription.callback = &this->m_ControllerHitReport; NxController* l_pController = this->m_pControllerManager->createController( this->m_pScene, l_CapsuleControllerDescription ); this->m_pControllerMap.insert( l_ControllerValuePair( l_stdsControllerName, l_pController ) ); return […]

在PhysX(2.8.x)中用轮胎橡胶模拟'Shock absorbtion'

这是一个棘手的问题,我担心没有足够简单的解决scheme,但是我想我会放弃SE,然后尽我所能。 我正在使用的一台机器在真机上没有任何悬挂,冲击或弹簧,所以你会认为当它驶过颠簸时,它会像疯了一样震动,但是因为它的轮胎(其中6个)非常大,似乎从颠簸中吸收了很多震撼。 其中一部分是因为这台机器的重量大约是30k磅,它只是砸碎/压缩地面上的任何颠簸(这是另一个问题,我仍在努力研究),另一部分是轮胎似乎对他们有很大的弹性还有很多空气。 所以我目前的任务是模拟物理冲击吸收,而不会明显地将轮胎与主轴/轴分开。 我一直在搞各种各样的NxMaterial,NxSpring,Joints等,并没有运气得到这个工作。 主要问题在于,附着在轮胎上的主轴直接位于中心,车轴基本牢固地固定在底盘上,所以如果我给它弹簧或悬架的行程,轮胎上的主轴会向上或向下移动,非常奇怪,因为现在它不再在轮胎的中心。 我试图给它更高的赔偿,但这只是使它有弹性,没有任何减震。 我搞乱的另一个途径是积极地平滑轮胎前面的地形,以便在它遇到一个颠簸的补丁之前,这个补丁是平滑的,它不会反弹。 唯一的问题是,在这个模拟中,使用6个轮胎,地形的高度镶嵌以及其他复杂的事情同时进行是相当昂贵的。 我仍然在努力,但我希望能够混合和匹配几个不同的方面,以获得最好的结果。 这是一个复杂的问题,所以我不期望任何人有一个明确的答案,只是希望有人可能会想到我没有的东西= – ) – 注意:是的,我知道PhysX 2.8.x已经过时了,但是我们必须坚持这个实现。 我们正在转向另一个物理引擎,但是将这个引擎应用到这个项目中是不合适的。

什么是在PhysX中使用的积分器?

什么types的积分器用于PhysX引擎? 欧拉? 龙格 – 库塔? 我试图查看SDK头文件和源文件中的注释。 但是,找不到任何有关这方面的信息。

数据在专用GPU上与PhysX一起stream动

如果在PC中有两个GPU,一个只处理graphics,另一个专用于PhysX,物理相关数据的stream程是什么? 假设我们正在模拟爆炸,PhysX在graphicsGPU渲染时计算爆炸元素(位置,大小,数量,whatnot)。 CPU是否将input发送到PhysX GPU,获取结果并将它们(某些)发送到graphicsGPU? 或者是这样的:CPU将input数据发送到PhysX GPU,在执行计算之后,来自PhysX GPU的数据直接转到graphicsGPU(完全省略CPU),因为它们只是用来渲染东西,CPU不需要跟他们做什么事? 编辑:其实,作为一个奖金的问题,我想知道只有一个GPU(同时用于PhysX和graphics)相同的情况。 数据是否stream向GPU,被计算,返回到CPU,然后返回到GPU进行渲染还是可以“停留”在GPU上?