Nvidia PhysX 学习文档1: Welcome to PhysX

 

                                      劳动可以使我们摆脱三大灾祸:寂寞、恶习、贫困 --------------------- 歌德


Official document: https://gameworksdocs.nvidia.com/PhysX/4.1/documentation/physxguide/Manual/Introduction.html

红色代表需要吸收的知识。


 

Welcome to PhysX

Welcome to the NVIDIA® PhysX® SDK version 4! Unlike the change from version 2 to 3, the upgrade to version 4 does not bring any significant API changes, and in fact most interfaces have not changed since version 3.4. The behaviors of existing algorithms have also largely stayed the same. Migrating to version 4 should be very easy and straightforward -- see Migrating From PhysX SDK 3.4 to 4.0. Nonetheless we have decided to mark this release with a major version increment because we believe it is hard to overstate the significance of two major innovations we have added: The TGS solver and the reduced coordinate articulations feature. These new simulation options are taking PhysX from being a leading game engine technology to also being a highly accurate engineering simulation tool suitable for robotics R&D and reinforcement learning, while maintaining best in class performance for all application domains. See Temporal Gauss-Seidel and Articulations for more information on these new features.

此次升级到版本4,在API方面并没有很大的变化,其实,从3.4版本以来,大部分API接口并没有改变。那些之前就有的算法也并没有很大改变。  将代码迁移到版本4是很容易的一件事情,请参考Migrating From PhysX SDK 3.4 to 4.0.

版本4有两方面很大的创新:

1. TGS solver  (Temporal Gauss-Seidel solver )

高斯-赛德尔迭代法 是数值线性代数中的一个迭代法,可用来求出线性方程组解的近似值。该方法以卡尔·弗里德里希·高斯和路德维希·赛德尔命名。同雅可比法一样,高斯-赛德尔迭代是基于矩阵分解原理。

2. Reduced coordinate articulations

此文简单介绍了版本4的新特性:

http://physxinfo.com/news/category/physx-sdk/

http://www.sohu.com/a/279493149_99956743

 

About this User Guide

This Guide will help the reader to understand the features of the PhysX SDK and how to make use of them. The Guide is not exhaustive on the details of the API; the reader should refer to the PhysX API Reference Documentation for this. ( See Documentation/physxapi/_build/html under the main directory where the PhysX SDK distro was unpacked.) Furthermore this guide does not currently go into detail about the algorithms used in PhysX.

The github PhysX 4 Issues page is a good place to ask questions and report bugs.

该文档的作用是帮助读者理解PhysX SDK的特性,以及如何使用。 该文档并不是对API的详细介绍,关于API可以参考相关的文档(api文档位于您解压目录下的 Documentation/physxapi/_build/html)。 另外,该文档没有对PhysX中的算法细节进行介绍。

 

A brief overview of PhysX

PhysX is a library for representing three dimensional worlds made of discrete entities named actors which can in turn be composed of multiple shapes. PhysX lets the user create and destroy such actors, and tracks their explicit or proximity based interactions. Actors can either be static, be moved around by the user, or be moved by PhysX according to the laws of classical mechanics. PhysX' dynamics simulation capability includes support for collision, joints and actuation using maximal and/or reduced coordinates. Furthermore, the world may be queried by the user using a number of different tools ranging from simple ray-casts to sweep and overlap tests. PhysX provides extensions for special purpose functionality such as vehicle simulation.

PhysX的作用: 模拟三维世界,该世界由一个个actor构成。 用户可以使用physx来创建和销毁这种actor, 并追踪其精确的或者近似的仿真结果。 actor可以是静止不动的, 或者,可以被用户直接移动,或者, 可以根据经典力学定律运动。 PhysX的动力学仿真能力涵盖 collision,  joints and actuation using maximal and/or reduced coordinates。 用户可以使用PhysX提供的ray-cast, sweep, overlap test功能获取模拟世界里的实时状态。PhysX以extension的形式提供了一些特殊的仿真功能,例如,车辆仿真。

PhysX is designed to be robust, high performance, scalable, portable, as well as easy to integrate and use. These capabilities make PhysX suitable as a foundation technology for game engines and other real time simulation systems.

PhysX具备的特点:obust, high performance, scalable, portable,  easy to integrate and use。这使得PhysX适合作为游戏引擎和各种实时仿真系统的底层技术。

It is important to note that PhysX does not run any code on GPUs by default. However PhysX can be configured to take advantage of CUDA capable GPUs, which provides a performance benefit proportional to the arithmetic complexity of a scene. GPU acceleration extensions are provided as an optional binary DLL. See GPU Rigid Bodies for details on how to enable GPU acceleration. Even without GPU acceleration, PhysX is fully multithreaded and SIMD-accelerated to take full advantage of modern multi-core CPUs.

注意: 默认情况下,PhysX代码不会在GPU上运行。  但是,PhysX可以被配置以充分利用 CUDA capable GPUs. GPU 加速 模块以二进制dll的方式提供给用户,使用方法见文档 GPU Rigid Bodies。

 

World and Objects

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的基本概念:

> PhysX world包括一系列的Scenes, 每个Scene包括了actors

>每个Scene使用自己的时间和空间参考系。

>属于不同的Scene的actors不会相互影响。

>characters 和 vehicle是特殊的复杂对象,它们由actors构成。

>actor具备物理状态量: 位置,姿态,速度或者动量,能量,等。

>actor的状态量变化,导致变化的原因有: 外力,约束(关节约束,接触面约束等),其他actor的影响。

 

Rendering and Visualization

3d rendering will of course be a vital technology to visualize the simulated world in almost every application. Production quality graphics and audio are outside the scope of PhysX. At the minimum the user needs to take the updated state of any moved visible actors and update them in the respective rendering representation. Some of our example programs come with rudimentary built-in visualization, and we also provide a stand-alone debugging tool called PhysX Visual Debugger (PVD).  PVD provides a graphical view of the PhysX scene together with various tools to inspect and visualize variables of every PhysX object. Additionally it can also record and visualize memory and timing data. See PhysX Visual Debugger (PVD) for details.

图形图像显示和音频 并不是PhysX关注的领域。 一些PhysX自带的例子程序提供了简单的场景显示功能(例如,车辆的例子中是通过opengl来显示场景的)。另外,PhysX提供了一个独立的可视化工具 PhysX Visual Debugger (PVD)。PVD可以显示场景,并且,提供了各种工具来检测和可视化各个object的变量。 另外,PVD也可以记录和可视化内存和时序数据。

关于PVD: PhysX Visual Debugger (PVD)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

First Snowflakes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值