问题标签 [physx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 PhysX 中编辑一个演员的重力
所以,现在,我正在尝试为游戏开发直升机系统。我遇到的问题是,我想编辑直升机的重力,只有当我在/使用它时,但现在它导致所有使用 PhysX 的物体失去它的重力。
这是我正在使用的功能。这g_pPhysicsWorld->PhysXScene->setGravity(HeliGravity);
可能是导致问题的原因。
c# - PhysX:碰撞 onContact 不起作用
我正在使用 PhysX.NET(PhysX 的 C# 包装器),我正在尝试使用 SimulationEventCallBack 中的 onContact 获取两个球体之间的碰撞通知。
我为 SimulationEventCallback 创建了一个新的子类,并重写了 OnContact 方法,以便在发生碰撞时给我一条消息。然后我将场景的 SimulationEventCallback 设置为我的子类的一个实例。即使两个球体(刚性动态)明显碰撞,这也不起作用。下面是我的代码:
// 创建子类
// 创建场景
还有其他需要考虑的吗?有什么要设置的标志吗?如果这是一个非常幼稚的问题,我很抱歉,但我已经为此工作了一整天,因为这似乎很简单,我无法理解它。
提前致谢。
unity3d - Unity奇异冲动属性的坐标系?在世界空间中获得力量?
好的,这是官方网站上最难的 Unity3D 问题:
如果你在 Unity 中有两个对象,也许用手指拖动 A,当你与 B 碰撞时,
如今,Unity 明智地为您提供了 PhysX 决定在碰撞中应用于该项目的力。只需使用OnCollisionStay
...
查看文档http://docs.unity3d.com/ScriptReference/Collision.html
值得的是.impulse
冲量 施加到此接触对以解决碰撞的总冲量。
伟大的。但。不幸的是,脉冲是在哪个坐标系中给出的,这完全是个谜。
试试看。真是疯了。它是相对于两个碰撞对象之间的方向(即在transform
and之间col.transform
)还是在某个局部空间中(哪个?)它可能是相对于.relativeVelocity
向量吗?
这到底是什么?这是愚蠢的。试试看。
看在上帝的份上,我希望在世界空间中简单地施加力量。
该文档没有任何信息,也没有人在讨论它。
c++ - 物理学 [UE4]:实现车辆悬架的“最大压缩”
对于给定的车辆,我在四个轮子上实现了一个悬挂系统。该系统基于胡克定律。
问题:车辆不能接触地面。在球形容器(内部)中行驶时,悬架会被压缩至 100%,使车辆底盘接触地下,从而导致车辆发生意外碰撞。
尽管这可能是一种现实的行为,但我们的游戏旨在营造一种街机感觉,所以我正在寻找一个实现最大压缩的公式,这样车辆底盘就不会比悬架尺寸的 X% 更接近地下在任何给定时刻,无需实际模拟两个刚体之间的物理接触。因此,我需要对悬架施加假力。
我目前的方法: 如果车辆底盘实际上会接触悬架底座(对不起,我不知道合适的词来描述这个。我的意思是,当悬架处于最大压缩状态时),一个大小相等但相反的力相对于推动悬架的力的方向将施加到车辆底盘,迫使其停止向下移动。
因此,我收到了我的车辆世界速度 V。为了获得向下速度,我获得了速度的 DotProduct 和 BodyUpVector。
好的,当车辆在跳跃后降落在飞机上时,这个伪代码即使在地下也能正常工作。然而,在越来越大的坡度上行驶(比如在球体的内壁上行驶),无论如何都会使悬架达到最大压缩,所以显然我的方法是不正确的。
我现在想知道是什么原因。我的重量计算仅由 VehicleWeight / 4 模拟,因为虚幻引擎 4 没有在给定位置接收重量的功能。我不是物理专业人士,如果这很容易计算,请原谅我。这可能是问题吗?
我不需要一个物理上 100% 合理的解决方案,我只需要一个有效的解决方案,并充分阻止我的车辆底盘的向下运动。
任何帮助表示赞赏。问候,
c++ - 是否可以在调试版本中编译 VS 项目,包括要通过不同项目调试的断点?
我正在尝试在调试模式下编译 Nvidia PhysX 源代码。然后我有另一个使用 PhysX 项目作为外部项目的 Visual Studio 项目。
我想从我在外部 PhysX 项目中定义的断点开始,通过我的主项目调试 PhysX 项目。这可能吗?
我正在使用 VS 2013 和 Physx 3.3.4。
提前致谢!
unity3d - 在 Unity3d 中更改弹簧关节的静止长度
根据 Spring Joint 的文档,弹簧的静止长度(弹簧不会尝试将其连接的两个主体拉或推在一起的长度)是在创建关节时计算的两个主体之间的距离。
但是,我希望能够在运行时更改此静止距离,并且文档没有提及有关如何更改长度的任何内容。
无论如何用Spring Joint来完成这个?如果没有,如何使用Configurable Joint创建具有固定长度(可以在脚本中更改)的弹簧?
c++ - HeightFIeld 分为几部分 - PhysX
我有一个具有特定长度和宽度的地形,它从他的文件 bmp 中获取信息。使用灰色阴影我可以修改我的地形。很好,效果很好。问题来了。我需要将我的地形分成物理上更小的部分,连接在一起创建原始地形。我怎样才能做到这一点?我知道这是可能的。有什么建议吗?在哪里,为什么在那儿?
我的文件:HeightField.cpp
地形.cpp
Base.cpp 的片段
我想得到类似的东西,但为了正确工作 PVD - 模拟地形
collision-detection - 使用特定的 PxRigidStatic 对象计算光线投射
我PxRigidStatic
在 PhysX 中加载了一个对象。
我想计算这个对象和射线之间的交点。
在文档中,我找到了QxScene::raycast方法,但它适用于加载到场景中的每个对象,因此它也会撞击其他对象(我想计算表示地形的网格的高度,但是当我执行光线投射时,我获得与处于相同位置的玩家的交集)。
是否可以仅为特定对象设置查询?
unity3d - 如何为 Unity HingeJoint 添加摩擦力?
我将刚体附加到 Unity 中的 HingeJoint。
它没有连接在关节锚的中心。
为了防止它掉下来,我设置了Use Motor = true
,Target Velocity = 0
并对电机施加一些力。
但是,这无济于事,请参阅视频:
http://g.recordit.co/JJ0cmfT1Mb.gif
这是示例项目:https ://drive.google.com/open?id=0B8QGeF3SuAgTNnozX05wTVJGZHc
如何对关节施加摩擦以阻止刚体移动?
用阻尼器设置弹簧或施加限制对我来说不是一个选择,因为当我向电机施加足够的扭矩(力)时,我需要正确旋转刚体。
如果我打开和关闭阻尼器/限制,刚体在下降方向旋转时移动得更快,而在相反方向旋转时移动得更慢。
c++ - 如何修复此 Cmake 错误“配置过程中的错误,项目文件可能无效”?
我正在尝试使用camke构建osgPhysX源代码。配置 cmake 时会出现以下行错误。