【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程序。是刚体的一个模拟程序。官方推荐从这里看起。
一般流程:
首先要:
- 使用PxCreateFoundation()函数创建一个 gFoundation对象,这个对象是管理内存和错误回调的单例。
- 使用 PxCreatePhysics() 函数创建一个gPhysics对象,这个对象也是单例,用来设置tolerance和PVD(physX visualization debugger)等。用户还可以改用PxCreateBasePhysics()来替代PxCreatePhysics() ,从而关闭不需要的功能模块。
所有的程序都需要这两个全局单例对象。我们来看一个例子
位于physx\snippets\snippethelloworld\SnippetHelloWorld.cpp
的第81行
这里我们已经提到了
- gFoundation用来管理内存和报错
- gPvd用来管理可视化调试器(visualization debugger)
- gPhysics设置容差和选择使用的功能模块等。
- gScene是场景对象。(下面会细说)
- gMaterial是材质对象。
- 最后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
【physX】physX 5.1的笔记1:初识相关推荐
- Hadoop学习笔记—4.初识MapReduce
一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...
- ASM学习笔记1 - 初识ClassVistor ——以ClassReader的应用为例
ASM学习笔记1 - 初识ClassVistor --以ClassReader的应用为例 1 ASM简介 什么是ASM? Java操纵类字节码的工具.是一个jar包. 如何使用? ASM提供两类API ...
- C语言学习笔记-P1 初识C语言(2)
C语言学习笔记-P1 初识C语言(2) C语言学习笔记-P1 初识C语言(2) 一.常量 1.字面常量 2.const修饰的常变量 3.#define定义的标识符常量 3.枚举常量 二.字符串+转义字 ...
- C语言学习笔记-P1 初识C语言(1)
C语言学习笔记-P1 初识C语言(1) P1 初识C语言(1) 一.什么是C语言 1.定义 2.发展 二.第一个C语言程序 Hello World 三.数据类型 四.变量,常量 未完待续!!! P1 ...
- 整理笔记:初识应广(单片机)
整理笔记:初识应广(单片机) 学习应广单片机(一) 题外话 内容 IO设置 点灯工程 容易出现的问题 学习应广单片机(一) 学习应广 PMS132B系列 单片机的知识.这片文章用于记录学习该芯片的笔记 ...
- 咸鱼CAD笔记—CAD初识
咸鱼CAD笔记-CAD初识 发现开发板功能实现了但是没有载体展示(比如智能家居功能实现了,房子木有.拿不出手作展示)特意学习一下CAD(毕竟雕刻机不用白不用) CAD(Computer Aided D ...
- css-day01笔记-CSS初识、基础选择器、文字和文本样式
typora-copy-images-to: media 第01阶段.web基础:css-day01笔记-CSS初识.基础选择器.文字和文本样式 一.CSS层叠样式表 学习目标 理解 css的目的作用 ...
- xilinx srio ip学习笔记之初识srio
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 xilinx srio ip学习笔记之初识srio 前言 IP 设置 总结 前言 因为工作原因,需要对rapidio 的协议进行了解, ...
- 吴恩达《机器学习》学习笔记一——初识机器学习
吴恩达<机器学习>学习笔记一 一. 什么是机器学习? 二.监督学习 三.无监督学习 初识机器学习 这是个人学习吴恩达<机器学习>课程的一些笔记,供自己和大家学习提升.第一篇内容 ...
- Kubernetes 笔记 01 初识 Kubernetes 新时代的领航者
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 大明王朝时期, ...
最新文章
- python数据储存_五种使用python储存数据的方式
- (Java多线程)线程状态
- 委派模式的定义及应用场景
- while循环语句用法_EXCEL退出DO LOOP循环语句|until、while
- C# 中使用HttpClient读取大型Json数据集
- wireshark提取流量包中的文件_[技术]Wireshark抓取的数据包提取文件
- php getbyid,ThinkPHP查询中的魔术方法简述
- 量子运算 简单通俗例子_什么是量子计算机? 用一个简单的例子解释。
- c++矩阵类_面向对象有限元编程|单元类
- 中文版microbit:TurnipBit显示动态滚动字符教程实例
- android 放大镜动画,Android在图片上进行放大镜效果(放大镜形状)
- Python风格总结:遍历技巧
- centOS下JDK1.8的安装
- 网吧无盘最新服务器配置,80-100台网吧无盘服务器配置方案建议
- 智能指针的标准之争:Boost vs. Loki [转]
- mongodb 使用$lookup做多表关联处理
- 什么人最适合读研呢?你适不适合读研究生?
- Java项目中这样打印错误日志,排查问题更高效
- Android 关于极光推送退出APP时清空通知的问题
- 科技爱好者周刊(第 114 期):U 盘化生存和 Uber-job