问题标签 [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.
physx - 需要获得对象/身体的位置
我正在使用 c++ 在 Visual Studio 代码中使用 physx(Windows 中的最新版本)。目前正在研究 physx sdk 4.1 - 示例。我想获取对象/主体的输出并将其用于另一个程序。
我已经尝试过它的文档,但没有帮助。
我可以在使用 getlinearvelocity() 等函数进行调试时获得输出。虽然我想得到它并用于其他程序。
unity3d - Unity 如何确定光线投射命中的法线?
我想了解在 Unity 中获得正常光线投射命中的算法方法。我了解针对简单对撞机的光线投射背后的数学/理论,但是一旦完成,引擎实际上如何遍历网格并获得被击中的特定面?
假设这里有一些底层空间数据结构(八叉树/kd 树)在工作,什么组件(可能是碰撞器或网格过滤器?)存储它,我如何直接访问这个结构?
最后, raycasthit.normal 是懒惰地评估还是在每次 raycast 命中时自动计算?显然,这很重要,因为如果我只担心是否存在命中,我不希望一些复杂的算法不必要地确定复杂物体上投射的特定法线......
我似乎找不到关于此的长而详细的文档。
c++ - Physx - 与来函数的链接问题(函数中引用的__imp_PxCreateBasePhysics ...)
我正在尝试在我的游戏引擎中实现 PhysX,但在链接 PhysX 库时遇到了一些奇怪的问题。无论我做什么,它总是失败,但来自 Nvidia 的片段就像一个魅力。我将尝试描述我所做的,我希望有人能找到我所缺少的。
首先,我从Github下载了 PhysX 4.1 。然后我将buildtools设置更改为:
然后我使用bat脚本为静态链接和运行时静态库生成Visual Studio 2017项目。然后我在调试和发布版本中编译了项目。SnippestHelloWorld没有任何问题。到目前为止,一切都很好。所以我在Visual Studio 2017中创建了新项目并选择了x64处理器架构(如在 PhysX xml 配置中)。然后我以与SnippestHelloWorld中相同的方式包含头文件。这是一棵树:
我认为这些都是必需的头文件。然后我为链接添加了这个 lib 文件列表(在我看来,甚至其中一些是不必要的):
然后我创建了一个非常简单的 C++ 代码来测试它是否有效:
而且......它只是不起作用。当我尝试编译我的简单项目时,我总是从链接器收到此错误:
听起来可能很有趣,但我几乎尝试了所有方法。我知道哪一行会导致这个错误,因为如果我删除调用PxCreatePhysics
它编译没有任何问题。只有这一行有一些奇怪的链接问题,我不明白。
我应该如何解决这个问题?我什至不知道在哪里寻找答案。我已经为正确的 CPU 架构和正确的运行时库编译了已编译的 PhysX 库,使用相同的 sompiler 和相同的机器,为什么 Nvidia 的示例有效而我的代码无效?
c++ - 有什么方法可以让 PhysX 4.1 CCT 使用自定义重力滑下斜坡?
默认情况下,PhysX 似乎将你脚上的“摩擦力”设置为无穷大,因此move
当你站在倾斜的表面上时,用向下的力(如重力)呼唤不会导致你滑倒。
这与我想要的完全相反。我知道PxControllerNonWalkableMode::ePREVENT_CLIMBING_AND_FORCE_SLIDING
,但这似乎没有使用任何重力或加速度,而且我没有使用内置slopeLimit
值。还有setPreventVerticalSlidingAgainstCeiling()
,所以地板上不存在类似的东西似乎有点奇怪。
那么,是否有任何内置方法可以禁用这种人为摩擦,并允许垂直滑动,就像 CCT 可以沿着墙壁和天花板滑动一样?如果没有,我怎么能生成一个遵循表面法线的新的向下运动矢量?我对与数学相关的任何事情都非常糟糕,因此(伪)代码示例将不胜感激。
game-physics - 如何在动态对象上使用三角形网格?
我不能在动态物体上使用三角形网格吗?我想要一个形状由三角形网格描述的物体,能够以动态的方式工作,而不是作为运动学或静态的,以便它远离撞击并服从重力。
我应该怎么做才能在动态对象上使用三角形网格?
c++ - 如何将 PhysX 库与 Xcode 链接
我是 C++ 新手。我不知道如何将 PhysX 源链接到我自己的代码。我不断收到“Px.h”或其他一些文件丢失。这些文件存在于它们相应的文件夹中,但 Xcode 找不到它们。我该怎么办?非常感谢您的帮助,我非常感激。
c++ - 你如何在 Nvidia PhysX 中编译独立的代码片段?
我开始通过试验程序附带的基本 Hello World 片段来测试 PhysX。
我的安装是在 Ubuntu 20.04 上。
据我了解源代码
位于
我试图编译它
但我有一个错误
显然,我应该在一个环境中编码。PhysX 的几乎所有指令都适用于使用 Visual Studio IDE 的 Windows。
我应该在哪里定义NDEBUG
或_DEBUG
何时我的目标只是复制SnippetHelloWorld_64
?
换句话说,我如何在 PhysX 中试验 HelloWorld(通过 Linux 命令行)?
c# - Unity Android App Crash with physx::Gu::PersistentContactManifold::reduceBatchContacts
我正在使用 Unity 2019.3.15f1 构建投币游戏,主要特点是使用物理引擎模拟投币游戏桌。
游戏启动后,运行30秒到2分钟前会崩溃。
我有一个这样的崩溃日志:
在为 libunity 相关消息运行 addr2line 后,我得到了这个:
似乎告诉我问题出在 PhysX 引擎中。然后我找到了一个相关的帖子: https ://forum.unity.com/threads/debugging-unhandled-null-exception-in-editor-game-view.503475/
但是在物理设置中禁用 PCM(Persistant Contact Manifold)后,崩溃仍然存在。
有人对这个问题有任何线索吗?任何想法或猜测将不胜感激。
提前致谢。
我已经尝试过的:
- 减少刚体。
- 在时间设置中增加固定时间步长。
- 用盒子碰撞器替换网格碰撞器。
- 关闭/打开持久接触歧管。(通过选择旧版联系人生成)
- 升级到 Unity 2019.4.4f1
c++ - physx 多线程复制转换数据
我有一个场景,其中包含大量由 physx 移动的类似对象,我想使用 opengl 实例化来绘制所有这些。所以,我需要用每个对象的变换数据形成一个数组,并将其传递给 opengl 着色器。而且,目前,填充数组是我的应用程序的瓶颈,因为 physx 模拟使用 16 个线程,但创建数组只使用一个线程。
因此,我创建了 data_transfer_task 类,其中包含两个索引,启动和停止,并将此索引之间的 physx 对象的转换数据移动到数组。
我创建了另一个类 start_transfer_task,它根据线程数创建和调度任务。
我在调用模拟之前创建 start_transfer_task 实例,将 start_transfer_task 传递给模拟,并且我希望 start_transfer_task 应该在所有 physx 任务完成自己的工作之后运行,所以写入和读取 api 调用不要重叠,并且调用 fetchResults(block=true) 仅在哪里继续执行我的所有任务都完成了复制转换数据。
但是我收到了很多关于读写 api 调用重叠的警告。
而且,有时在启动我的应用程序后,我会收到一条奇怪的断言消息。
那么,我做错了什么?