问题标签 [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.

0 投票
0 回答
321 浏览

c++ - 从 physx 布料对象创建顶点和索引缓冲区的正确方法是什么

我正在尝试将我创建的布料实际渲染到 DirectX11 中的屏幕上。我使用 PhysX API 创建了一个布料对象,并尝试相应地创建顶点和索引缓冲区。据我所知,布料对象应该没问题。

这是我的代码。请注意,这是在自定义引擎中(来自学校),因此有些东西可能看起来很奇怪(例如 gameContext 对象),但您应该能够理解代码。

我使用 Frank D Luna 的 DirectX10 3D 游戏编程简介作为缓冲区的参考。

完成后,我在引擎的“绘图”部分运行此代码:

我认为我完全错过了一些明显的错误。(DirectX 不是我在编程中最强大的部分)。非常感谢每条评论或回答。

0 投票
0 回答
287 浏览

c++ - 如何对 physx 布网进行光线投射?

我在应用程序中使用 PhysX 3.3 SDK 并且大部分工作正常。但是,我正在尝试开发一种功能,允许用户单击场景中的各种演员并修改他们的属性。

到目前为止,我的方法是使用 PhysX 射线投射来查询场景并使用 RaycastHit 返回指向演员的指针。这对于刚体效果很好,但对于布料演员来说,命中总是无效的。

这表明 PhysX 无法对布料对象进行光线投射,但除了我的测试之外,我还没有在文档(或互联网上)中看到任何明确说明这一点的内容。

有什么想法吗?

0 投票
1 回答
772 浏览

c++ - (Ogre3d/PhysX/C++) - 如何进行绘图调试可视化

你能帮助我吗。我无法理解如何在 Ogre3D 中绘制 PhysX 调试可视化以及普通对象。

我有 OpenGL 的代码,但我无法将其转换为 Ogre3d:

当然,您可能不会使用此代码。我只想绘制 PhysX 调试可视化。

0 投票
1 回答
116 浏览

c++ - PxMaterial 内存泄漏

我在我的代码中发现了内存泄漏,但我不知道如何修复它。

当我这样循环时:

我有内存溢出。内存没有释放。如何正确释放?

我试图删除它“ delete pMaterial”,但没有授予删除权限。

0 投票
1 回答
416 浏览

physx - PhysX 可变形物体

有没有办法使用 physx sdk 对可变形的实体进行建模?我在互联网上读到可以使用 physx 粒子系统来做到这一点。在sdk的手册中,它谈到了刚体和粒子。所以我想象粒子将是一种模拟具有弹性参数的可变形物体和施加力时物体上的断裂的方法。但是当我阅读手册中的相关部分时,它只讨论了碎片、烟雾和液体的行为。我检查了 sdk 中的代码片段。但是我没有看到任何与可变形固体相关的东西。有布料模拟,但这不是我想要的。

我想要一些东西,当施加一定的力时,我可以模拟物体的弯曲、开裂、切割和各种行为。我知道有用于骨折模拟的 Apex。但这仅适用于 Windows,我无法访问带有 nvidia 卡的 Windows 计算机。

我的目标是使用模拟引擎来估计现实生活中被操纵的实体的下一个状态,以便通过设置正确的属性来实时跟踪它。您认为 Physx 是正确的选择吗?

0 投票
1 回答
282 浏览

controller - PhysX - 获取控制器的速度

我正在使用 PhysX 3.3.0。

我的角色是一个胶囊控制器,我需要能够检索控制器的实际速度,这似乎比应该完成的要难得多。

我已经尝试在场景的主要模拟之后检索与控制器关联的演员的速度,但是这只是返回虚假值,很可能是因为控制器只是引擎盖下的运动学演员。

现在,我能想到的唯一选择是自己跟踪速度,但这并不是那么简单。我可以轻松地跟踪自己对速度的更改,例如通过运动输入应用的速度。然而,只要控制器不与任何东西发生碰撞,这才是准确的。通过移动功能移动控制器后,控制器的速度可能已因与地板或墙壁等的碰撞而改变。移动功能返回碰撞标志,但它们只告诉我侧面某处是否发生碰撞,底部或顶部,但这不够准确,无法手动得出新的速度。

这似乎是一个相当大的疏忽,所以也许我只是在这里遗漏了一些东西。如果 PhysX 不提供这样的功能,我如何准确跟踪控制器的速度?

// 编辑

这就是我在场景模拟后获取速度的方式:

m_controller 是一个 PxCapsuleController。

0 投票
0 回答
117 浏览

linux - Linux -malign-double 和 clib

Linux (Ubuntu 14.04)、gcc、c/c++ 项目。我有中间件(nvidia PhysX),在编译选项中需要 -malign-double(我的应用程序是 x86 32 位),但是当我将它添加到项目标志时,一些包含 off64_t 的系统结构(stat64、aiocb64 等)(扩展为long long) 改变了它们的对齐方式(long long 现在是 8 个字节而不是 4 个字节)并且像 stat64、aio_read64 这样的功能不再起作用 - 这个问题有什么解决方案吗?(我是否需要编译自己的 clib 和其他版本 - 这对我来说听起来很疯狂)现在似乎只有 IO 和大文件处理功能受到影响 - 但我首先需要处理大(> 4GB)文件。

任何想法如何解决这个问题。(我无法在某些 .so 文件中关闭 PhysX 并将接口暴露给它的类,因为无论如何我都需要它们中的大部分)

0 投票
1 回答
742 浏览

physx - 在 PhysX 中读取位置 Actor

我对 PhysX SDK 2.8.1 有疑问

我是演员:

我希望控制台打印出演员的当前位置。怎么做?这下面不起作用:

具体取决于我对 Y 位置的阅读。

0 投票
1 回答
189 浏览

c++ - MemoryOutputStream 不是 PxToolkit 的成员

我正在尝试创建一个带有自定义网格的 PhysX 演员。按照官方文档:

取自官方文档

但是当我尝试编译时:

我已经包含了我使用 VS 2013 手动构建的 PxToolkit.lib 文件以及标题。确实,MOS 不在 PxTkStream.cpp 中。

0 投票
1 回答
2374 浏览

c++ - #define 宏和枚举使用相同名称引起的冲突

我正在尝试将 NVIDIA 的 PhysX 集成到我的 Linux 代码库中。在它的一些头文件中,它定义了以下枚举:

physxvisualdebuggersdk/PvdErrorCodes.h

physxprofilesdk/PxProfileCompileTimeEventFilter.h:

这会导致以下编译错误:

我确定这是因为X11/Xh #defines 'None' 和 'Success'。我已经确认这是问题所在,如果我同时#undef 'None' 和 'Success',我不再有错误。然而,这显然不是一件可取的事情。

我的问题是:作为必须同时使用这两个标头的开发人员,我应该采取的正确做法是什么?我应该将其作为错误报告给 NVIDIA 并等待修复,还是我可以自己做一些事情来解决问题(#undef 除外)?

谢谢你的时间!