• 【physX】physX 5.1的笔记1:初识


    5.1的笔记
    所有内容参考自官方文档
    https://nvidia-omniverse.github.io/PhysX/physx/5.1.0/index.html#

    所有的demo示例都被称为Snippet。源码可以在physx/snippets目录中找到。

    每个都是一个完整的可执行目标。

    Hello world

    physx\snippets\snippethelloworld\SnippetHelloWorld.cpp
    目录下是Hello World程序。是刚体的一个模拟程序。官方推荐从这里看起。

    一般流程:

    首先要:

    1. 使用PxCreateFoundation()函数创建一个 gFoundation对象,这个对象是管理内存和错误回调的单例。
    2. 使用 PxCreatePhysics() 函数创建一个gPhysics对象,这个对象也是单例,用来设置tolerance和PVD(physX visualization debugger)等。用户还可以改用PxCreateBasePhysics()来替代PxCreatePhysics() ,从而关闭不需要的功能模块。

    所有的程序都需要这两个全局单例对象。我们来看一个例子
    位于physx\snippets\snippethelloworld\SnippetHelloWorld.cpp 的第81行

    在这里插入图片描述
    这里我们已经提到了

    1. gFoundation用来管理内存和报错
    2. gPvd用来管理可视化调试器(visualization debugger)
    3. gPhysics设置容差和选择使用的功能模块等。
    4. gScene是场景对象。(下面会细说)
    5. gMaterial是材质对象。
    6. 最后addActor()创建了一个actor对象。(下面会细说)

    这里面最重要的两个对象:场景对象和actor对象。

    这两个概念在文档中如下描述:

    The basic concepts of the world within a PhysX simulation are easy to
    describe: The PhysX world comprises a collection of Scenes, each
    containing objects called Actors;

    • Each Scene defines its own reference frame encompassing all of space
      and time;

    • Actors in different Scenes do not interact with each other;

    • Characters and vehicles are complex specialized objects made from
      Actors;

    • Actors have physical state : position and orientation; velocity or
      momentum; energy; etc,

    • Actor physical state may evolve over time due to applied forces,
      constraints such as joints or contacts, and interactions between
      Actors.

    也就是说 physx之中有许多场景(类似关卡)。每个场景互不影响。每个场景中有许多actor。每个actor具有物理属性(速度、位置、姿态、能量等)。这个actor就是我们要真正实现模拟的对象。一个复杂的对象(比如一辆车)可以由多个actor所组成。

    stepPhysics

    在stepPhysics当中进行模拟。注意最重要 的是gScene->simulate(dt)
    在这里插入图片描述

    最后的gScene->fetchResults 也十分关键。它是用来传回结果的。在physX当中,所有的仿真都默认是异步的。因此,你模拟完了之后,要有一个传回仿真结果的操作。

    PBD

    目前PBD还不是很完整,只有四个demo。在physX当中,他们被称为ParticleSystem。

    PBD模块的demo位于
    physx\snippets\snippetpbdcloth
    physx\snippets\snippetpbdinflatable
    physx\snippets\snippetpbf
    physx\snippets\snippetpbfmultimat

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    SSM+基于java的企业任务流程管理系统开发 毕业设计-附源码221533
    Go语言内置类型和函数
    LuaHttp库写的一个简单的爬虫
    Python高级_第3章_HTTP协议与静态Web服务器开发
    Qt 样式表大全整理
    【KBQA-2】 Learning To Retrieve Prompts for In-Context Learning
    autpoi 1.4.3版本发布—Excel傻瓜式API,快速实现Excel导入导出、Word模板导出
    MySQL内部存储代码常用实现方式
    java智慧农贸商户设备检测系统ssm-springboot
    Springboot毕设项目基于SpringBoot的演唱会购票系统z2673(java+VUE+Mybatis+Maven+Mysql)
  • 原文地址:https://blog.csdn.net/weixin_43940314/article/details/127769846