Starting to work with PhysX

Hi
I’m new to Physx and want to learn about it to be able to check if we can use it. When reading the documentation it almost immediately starts with coding. But I would like to read first about how PhysX works in more general terms. Which steps are needed. What do you have to upload to PhysX and in which format. If running a timestep, what does it calculate and how is the result presented. Can you do a collision detection for only one component? (what is reported for collisions). Etc

Is there any document or turotrial avaialble that does not explain the code but the overall function/operations?

Thanks

I’ll help you keep this post live, as long as it takes, until a solution presents itself because man, I feel you. It’s a shame that I’ve been looking for stuff for almost 2 weeks and there’s only dated install info on what to use. It’s difficult to find what you’re looking for if the vocabulary isn’t taught. nearly 20 years doing this and after all this time, programmers still don’t know how to talk to artists.

My friend and I were able to find this link to the newest Repo to PhsX 4.1.1:
https://github.com/NVIDIAGameWorks/PhysX

We downloaded the Repo and behold… more programmer language that needs deciphering:

## Quick Start Instructions

Requirements:
* Python 2.7.6 or later
* CMake 3.12 or later

To begin, clone this repository onto your local drive.
Then change directory to physx/, run ./generate_projects.[bat|sh] and follow on-screen prompts.
This will let you select a platform specific solution to build.
You can then open the generated solution file with your IDE and kick off one or more configuration builds.

Here’s what I understand… Typically, when normal people install things, we use an *.EXE. There are some in the directory (see attached). However, in the README file, it doesnt state which one of these will work with Max.

So if there is no exe, that means we have to compile our own stuff.

I found this Python Compiler. My instinct is telling me that this PhysX Repo is a stand alone piece of software that has absolutely nothing to do with obtaining a plugin for Max.
https://www.onlinegdb.com/online_python_compiler

Hmmm… conflicting info much? I will be posting my frustrations inside the Unreal and Max forums as well. Thank you for posting your issue about this. I support you #Mechamania!

I might be able to help sort out some of these issues (not affiliated with NVIDIA).

I think part of the problem is one of terminology.

  1. PhysX is a programming library for physics simulation in C++, with “bindings” for other languages
  2. PhysX is also the name of the technology used by games, like Metro Exodus, which has got an installer (.exe) and is also sometimes installed alongside your NVIDIA drivers.
  3. PhysX is also one of the many physics solvers in game engines like Unreal and Unity

These are generally different audiences too; this forum is particular suited for (1), the programmers using PhysX as another library and technology (along with OpenGL perhaps), hence the programmer-speak. The Unity forums for example are better suited for (3) and (2) doesn’t really have a single community other than what you find spread across various gaming forums.

The GitHub page you found is also independent from the (2) and (3) and only really applicable to (1), that’s why the instructions are all in programmerese rather than plain English.

With this in mind, you can start seeing how “getting started with PhysX” could be interpreted in a few ways.

  • If what you mean is “getting started with PhysX in Unity”, then the Unity forums are definitely your best bet.
  • If what you mean is “getting started with PhysX in C++” then this forum along with the GitHub issue section is what you want.
  • If what you mean is “getting started with PhysX in Metro Exodus” then you’ll need to get a little more specific still, for example modding or hacking.

The most user-friendly (official) documentation is probably this.

And the most programmer-friendly documentation is likely this.

Hope it helps!

Best,
Marcus