Thursday, March 5th 2015

NVIDIA Frees PhysX Source Code

After Epic's Unreal Engine 4 and Unity 5 game engines went "free,"with their source-codes put up by their makes for anyone to inspect freely, NVIDIA decided to join the bandwagon of showering game developers with technical empowerment, by putting up the entire source-code of PhysX 3.3.3, including its cloth and destruction physics code, on GitHub. The move to put up free-code of PhysX appears to be linked to the liberation of Unreal Engine 4 code.

NVIDIA PhysX is the principal physics component of Unreal-driven game titles for several years now. There's a catch, though. NVIDIA is only freeing CPU-based implementation of PhysX, and not its GPU-accelerated one, which leverages NVIDIA's proprietary CUDA GPU compute technology. There should still be plenty for game devs and students in the field, to chew on. In another interesting development, the PhysX SDK has been expanded from its traditionally Windows roots to cover more platforms, namely OS X, Linux, and Android. Find instructions on how to get your hands on the code, at the source link.
Source: NVIDIA
Add your own comment

56 Comments on NVIDIA Frees PhysX Source Code

#26
lemonadesoda
For gaming SSE/SSE2 is pretty good for accelerated math. For scientific research, it is hopeless. Because of speed? No, because you need higher FP accuracy that SSE doesnt have.

The x87 FPU was 80-bit precision. Actually, that's only 63 bit precision, with exponent and sign. But it still had all sorts of problems/bugs.

SSE was 32-bit with some 64-bit internal calcs but not consistent in what and how, so reversing the order of a calculation could give different results. The SSE2 was better with its consistently 64-bit architecture. That is still a far cry away from 80-bit or 128-bit double precision. For gaming graphics, 64-bit is more than enough. For calculating interest-rate options, doing experimental science, calculating pi, or doing "critical" calculations (example en.wikipedia.org/wiki/Cluster_(spacecraft), then you'd better look for a better FP unit.

I remember looking at the Ageia/PhysX board about 10 years ago for Credit Derivative calculations. It was interesting at the time for its speed, price, and also to develop semi-proprietary hardware/software combo that wouldn't be easily copied within the target client. We didn't go with it because while it was fast the FP wasn't accurate enough. Remember Physics Modelling (millions of artifacts doing approximately the right thing) is different from complex computation (tens, hundreds or thousands of calculations requiring absolute accuracy).
Posted on Reply
#27
RejZoR
For entertainment purposes we DON'T need lab grade calculations for physics. At least not with current hardware...
Posted on Reply
#29
Captain_Tom
qubitWhile full open sourcing of the PhysX code for CPU and GPU is really what we want, this move might finally be just enough to make it the de facto standard eventually.

How so? By developers studying the code, an open source API similar in concept to OpenGL could be written for both CPU and GPU (CUDA or otherwise) that would be useable by everyone. It would then be trivial to bundle it with games that use it.

The PhysX demos I've seen have been fantastic and really show what it can do, so this can't come soon enough.
Haha not even close to the standard. BF4 has no PhysX and it runs WAY better physics and particle effects than literally ANY PhysX game out. Please don't make me laugh.
Posted on Reply
#30
the54thvoid
Intoxicated Moderator
Captain_TomHaha not even close to the standard. BF4 has no PhysX and it runs WAY better physics and particle effects than literally ANY PhysX game out. Please don't make me laugh.
Scripted destruction is not the same as physx. In BF4 the destruction is predefined, despite how nice it is. The ragdoll effects are also unrealistic, I've seen many a body bounce high into the sky.
Physx is far more competent with particle interaction but regardless of that, its still very limited.
Only a full involvement of Devs would let physx make more of an impact but that won't happen.
Physx is a gimmick, far less useful per se, than AMD's mantle. Both are proprietary and both have had their day now. DX12 and CPU physics will replace them both, probably more pragmatically.
Posted on Reply
#31
Captain_Tom
the54thvoidScripted destruction is not the same as physx. In BF4 the destruction is predefined, despite how nice it is. The ragdoll effects are also unrealistic, I've seen many a body bounce high into the sky.
Physx is far more competent with particle interaction but regardless of that, its still very limited.
Only a full involvement of Devs would let physx make more of an impact but that won't happen.
Physx is a gimmick, far less useful per se, than AMD's mantle. Both are proprietary and both have had their day now. DX12 and CPU physics will replace them both, probably more pragmatically.
I have seen bodies go ape sh*t in every game I have played. And what destruction in PhysX games are you talking about? Most of the time it just makes popcorn appear everywhere you shoot (Borderlands, Metro, etc). Meanwhile particle effects from explosions in BF4 are jaw-droppingly beautiful. Or heck look at the particles in InFamous Second son!

Posted on Reply
#32
eddman
Captain_TomHaha not even close to the standard. BF4 has no PhysX and it runs WAY better physics and particle effects than literally ANY PhysX game out. Please don't make me laugh.
Captain_TomI have seen bodies go ape sh*t in every game I have played. And what destruction in PhysX games are you talking about? Most of the time it just makes popcorn appear everywhere you shoot (Borderlands, Metro, etc). Meanwhile particle effects from explosions in BF4 are jaw-droppingly beautiful. Or heck look at the particles in InFamous Second son!
Are you sure there are no scripted physics effects in BF4 and inF:SS? Obviously there are some dynamic physics, which are mostly used for simpler effects, but what about more complex effects? Are those dynamic too?

Scripted effects, no matter how impressive, don't really mean anything.

I know the skyscraper in BF4 is fully scripted; no dynamic physics going on. Not sure about the rest.

Dynamic physics require much more processing power and are harder to implement, that's why most developers usually go for the scripted route for more complex effects.

Batman: arkham games have some of the best dynamic physics effects out there.

It all comes down to the developers of a game to properly utilize a physics engine. If a game's dynamic physics effects are lacking or bad, doesn't mean the engine itself is bad.
Posted on Reply
#33
Jurassic1024
This is great news. PhysX is damn good when implemented correctly, so hopefully this does boost its usage.
Posted on Reply
#34
Captain_Tom
eddmanAre you sure there are no scripted physics effects in BF4 and inF:SS? Obviously there are some dynamic physics, which are mostly used for simpler effects, but what about more complex effects? Are those dynamic too?

Scripted effects, no matter how impressive, don't really mean anything.

I know the skyscraper in BF4 is fully scripted; no dynamic physics going on. Not sure about the rest.

Dynamic physics require much more processing power and are harder to implement, that's why most developers usually go for the scripted route for more complex effects.

Batman: arkham games have some of the best dynamic physics effects out there.

It all comes down to the developers of a game to properly utilize a physics engine. If a game's dynamic physics effects are lacking or bad, doesn't mean the engine itself is bad.
There are both scripted and non-scripted. I am referring to the non-scripted ones. InFamous has honestly the best particle effects I have ever seen honestly (On PC or not).
Posted on Reply
#35
Captain_Tom
Jurassic1024This is great news. PhysX is damn good when implemented correctly, so hopefully this does boost its usage.
Honest to god, give me an example of a PhysX game that does things others don't do.
Posted on Reply
#36
eddman
Captain_TomHonest to god, give me an example of a PhysX game that does things others don't do.
Honest to odin (or was it zues), it's not about doing things that others don't. All top physics engines, be it havok, physx (CPU), etc. can do pretty much the same things and produce the same effects. As I mentioned, it comes down to the developers to properly utilize an engine.

There isn't much difference on the CPU side.

By particles in infamous, do you mean the particles produced by the protagonist when he uses his powers? How do you know they are not scripted? If they are not, there is no reason they cannot be done with any other CPU physics engine.

Here you can find a series of tests performed with physx and bullet. Publishing havok's test results is forbidden (how curious). The author talks about havok in the conclusion page.

physxinfo.com/news/11297/the-evolution-of-physx-sdk-performance-wise/

So what about GPU physx? When the amount of the effects that are going to be used on-screen are too much for the CPU to handle, developers use physx's GPU-accelerated modules. It's not that CPU physx cannot run those effects, it can, but it's simply not possible to run such heavy effects on the CPU and have a good performance. The FPS will tank to single digits.

You might think the GPU physics effects in say batman arkham asylum or city aren't better than infamous, but remember that they are ALL dynamic. No scripted effects here.

This is from arkham asylum. Jump to 1:51.


When crane is moving his hand through those rigid bodies, every single collision is dynamic and calculated, and there are a huge number of them. This just cannot be done with a good FPS on CPU, no matter the engine.

I remember running this game with GPU effects on, and this scene brought even my 8800 GTS to a crawl.

If you have a geforce, you can download the dedicated physx benchmark fluidmark and test its performance for yourself. You can also use it if you don't have a geforce, but only CPU tests will run, obviously.
Posted on Reply
#37
Schmuckley
This is a good thing!
..after..6-7 years is it? :rolleyes:
Posted on Reply
#38
Captain_Tom
eddmanHonest to odin (or was it zues), it's not about doing things that others don't. All top physics engines, be it havok, physx (CPU), etc. can do pretty much the same things and produce the same effects. As I mentioned, it comes down to the developers to properly utilize an engine.

There isn't much difference on the CPU side.

By particles in infamous, do you mean the particles produced by the protagonist when he uses his powers? How do you know they are not scripted? If they are not, there is no reason they cannot be done with any other CPU physics engine.
I mean they react to wind and such so they are not pre-baked. Yes they could be done with PhysX, however it is not the standard and so there is no reason to use it over more established brands. In fact PhysX seems to be incredibly inefficient so it offers no advantage.
Posted on Reply
#39
eddman
Captain_TomI mean they react to wind and such so they are not pre-baked. Yes they could be done with PhysX, however it is not the standard and so there is no reason to use it over more established brands. In fact PhysX seems to be incredibly inefficient so it offers no advantage.
What does standard mean? There IS no standard. There are only brands. Are you against having competition? Toyota sells more cars than anybody else, so I guess we should stop buying other brands, right? Windows is the most used PC OS; does that mean linux, OS X, etc. should just cease to exist?

Did you even care to read all those links provided? Guess not. Physx is just as fast or faster than other physics engines in the CPU mode, as it's been shown again and again. Are you ignoring the provided links on purpose?

Just to clarify; CPU physX does NOT require a geforce card to be present. It only runs on the CPU, so it's hardware agnostic.

Well, physx is here to stay. It's even unreal engines' default, built-in physics engine.

Surely those guys at epic are insane for choosing such an inefficient engine. /s
Posted on Reply
#40
Captain_Tom
eddmanWhat does standard mean? There IS no standard. There are only brands. Are you against having competition? Toyota sells more cars than anybody else, so I guess we should stop buying other brands, right? Windows is the most used PC OS; does that mean linux, OS X, etc. should just cease to exist?

Did you even care to read all those links provided? Guess not. Physx is just as fast or faster than other physics engines in the CPU mode, as it's been shown again and again. Are you ignoring the provided links on purpose?

Just to clarify; CPU physX does NOT require a geforce card to be present. It only runs on the CPU, so it's hardware agnostic.

Well, physx is here to stay. It's even unreal engines' default, built-in physics engine.

Surely those guys at epic are insane for choosing such an inefficient engine. /s
Havoc is far more prevalent, so don't play stupid and pretend you didn't know what I meant. As for cpu vs gpu, GPU physics is the future anyways.
Posted on Reply
#41
eddman
Captain_TomHavoc is far more prevalent, so don't play stupid and pretend you didn't know what I meant. As for cpu vs gpu, GPU physics is the future anyways.
No, I didn't know what you meant because it made no sense. Something being prevalent doesn't mean it's an standard and that other solutions should just die. Competition is good for the market.

Yes, GPU physics is probably the way of the future. It's just taking too long.

AFAIK, so far physx is the only physics engine with an optional GPU acceleration ability, and since it's locked to nvidia GPUs, it will not become widely supported.

Either nvidia should port it to OpenCL and/or DirectCompute, or havok come up with a universal GPU-accelerated solution, which will probably force nvidia's hand too.
Posted on Reply
#42
lemonadesoda
I've reviewed the yt links people posted. PhysX hasn't changed, or how it is being used has't changed, in 10 years... it is just graffiti that is sprayed over the architecture of the game. The underlying structure has not changed, the gameplay has not changed, it is just (optional) candy. And that is the problem... the game engine and gameplay has to work 100% with out it... so the developers are not thinking out of the box how to use it in an integrated way.
Posted on Reply
#43
Captain_Tom
eddmanWhat does standard mean? There IS no standard. There are only brands. Are you against having competition? Toyota sells more cars than anybody else, so I guess we should stop buying other brands, right? Windows is the most used PC OS; does that mean linux, OS X, etc. should just cease to exist?

Did you even care to read all those links provided? Guess not. Physx is just as fast or faster than other physics engines in the CPU mode, as it's been shown again and again. Are you ignoring the provided links on purpose?

Just to clarify; CPU physX does NOT require a geforce card to be present. It only runs on the CPU, so it's hardware agnostic.

Well, physx is here to stay. It's even unreal engines' default, built-in physics engine.

Surely those guys at epic are insane for choosing such an inefficient engine. /s
No one is saying that competition should die. I am saying PhysX isn't even competition.
Posted on Reply
#44
eddman
Captain_TomNo one is saying that competition should die. I am saying PhysX isn't even competition.
How is it not a competition? It is a CPU physics engine, just like havok, bullet, ODE, etc. and is just as fast, at least the 3.x branch is. The only difference is that physx has an optional GPU module that no one is forced to use.

For some reason you're fixated on havok as if only it has the right to exist. There are even some game engines that use in-house physics, like cryengine and frostbite and do not bother with havok.
lemonadesodaI've reviewed the yt links people posted. PhysX hasn't changed, or how it is being used has't changed, in 10 years... it is just graffiti that is sprayed over the architecture of the game. The underlying structure has not changed, the gameplay has not changed, it is just (optional) candy. And that is the problem... the game engine and gameplay has to work 100% with out it... so the developers are not thinking out of the box how to use it in an integrated way.
If you mean GPU accelerated effects, yes. It's not logical to implement those effects in the gameplay, if they're only limited to geforce cards. That would break the gameplay on non-geforce cards.

That would not change until nvidia opens GPU physx and allows it to run on non-nvidia cards, but they seem to be unwilling, unfortunately.

It wouldn't hurt if havok made an open GPU module and kicked nvidia's rear.
Posted on Reply
#45
Captain_Tom
eddmanHow is it not a competition? It is a CPU physics engine, just like havok, bullet, ODE, etc. and is just as fast, at least the 3.x branch is. The only difference is that physx has an optional GPU module that no one is forced to use.
Physics engines besides PhysX have survived mostly on their merits. Meanwhile PhysX has only ever been used because of it being forced on developers in the deals Nvidia makes with some of them.

It's just like how 8% of internet browsers used are Internet Explorer. If it wasn't for MS shoehorning in IE support on every one of their devices NO ONE WOULD USE IT. That is because other browsers like Chrome and Firefox are flat out superior.



P.S. I only mentioned Havok because that is the one that I remembered off the top of my head. There are plenty of Physics engines out there worth using. However PhysX is not one of them unless Nvidia forces you.
Posted on Reply
#46
eddman
Captain_TomPhysics engines besides PhysX have survived mostly on their merits. Meanwhile PhysX has only ever been used because of it being forced on developers in the deals Nvidia makes with some of them.

It's just like how 8% of internet browsers used are Internet Explorer. If it wasn't for MS shoehorning in IE support on every one of their devices NO ONE WOULD USE IT. That is because other browsers like Chrome and Firefox are flat out superior.

P.S. I only mentioned Havok because that is the one that I remembered off the top of my head. There are plenty of Physics engines out there worth using. However PhysX is not one of them unless Nvidia forces you.
Wow, you couldn't be more cynical. You really think every single game that uses physx was forced by nvidia? All 581 of them, which only 46 are GPU accelrated? Wow. No, really, WOOWW. So I suppose all those small, rather insignificant games that used physx were also forced by nvidia, and not because using physx in a windows game is free?

Now I see that you're trolling. There was no point in replying to you at all, thinking you're a reasonable and knowledgeable person.

You also think IE's market share is 8%?! WOOWW. Even statcounter says it's higher than that.

Some people just can't be helped.
Posted on Reply
#47
Captain_Tom
eddmanWow, you couldn't be more cynical. You really think every single game that uses physx was forced by nvidia? All 581 of them, which only 46 are GPU accelrated? Wow. No, really, WOOWW. So I suppose all those small, rather insignificant games that used physx were also forced by nvidia, and not because using physx in a windows game is free?

Now I see that you're trolling. There was no point in replying to you at all, thinking you're a reasonable and knowledgeable person.

You also think IE's market share is 8%?! WOOWW. Even statcounter says it's higher than that.

Some people just can't be helped.
8% is what I just read from the new 2015 numbers (Feel free to correct me if I am wrong).

www.w3schools.com/browsers/browsers_stats.asp

Just like IE, PhysX is being phased out because it is simply inferior to its competition's products. If you want to talk about a game, how about you mention a specific one.
Posted on Reply
#48
eddman
Captain_Tom8% is what I just read from the new 2015 numbers (Feel free to correct me if I am wrong).

www.w3schools.com/browsers/browsers_stats.asp

Just like IE, PhysX is being phased out because it is simply inferior to its competition's products. If you want to talk about a game, how about you mention a specific one.
www.netmarketshare.com/
gs.statcounter.com/

Really? So nvidia is phasing out physx by introducing newer versions?! Didn't know people phased out software by continuing its development. Countless tests done, showing physx is just as fast, and I posted links too, and yet you repeat the same thing without bothering to read any of them.

I don't have to mention a specific one. You said if a game, any game, uses physx, then nvidia forced them to. here:

www.physxinfo.com/index.php?p=gam&f=all

The list of all 581 physx games. Show everyone that ALL of them were forced by nvidia. MAANN.
Posted on Reply
#49
jabbadap
Captain_TomJust like IE, PhysX is being phased out because it is simply inferior to its competition's products. If you want to talk about a game, how about you mention a specific one.
Hardly, as long as physx is bundled with engines like ue4 and unity 5, it will have bright future.

If you mean gpu accelerated then that would be the case(nvidia should really open that up, getting universal gpu path for physics would make games more realistic. Now physics are used merely for eye candy, not really physics), but this cpu path has it's future.
Posted on Reply
#50
Captain_Tom
eddmanwww.netmarketshare.com/
gs.statcounter.com/

Really? So nvidia is phasing out physx by introducing newer versions?! Didn't know people phased out software by continuing its development. Countless tests done, showing physx is just as fast, and I posted links too, and yet you repeat the same thing without bothering to read any of them.

I don't have to mention a specific one. You said if a game, any game, uses physx, then nvidia forced them to. here:

www.physxinfo.com/index.php?p=gam&f=all

The list of all 581 physx games. Show everyone that ALL of them were forced by nvidia. MAANN.
No, Nvidia is grasping at straws to keep a costly asset from becoming completely irrelevant (Though I would argue it already is).

No, not ALL PhysX titles were forced, but we can all agree that a big reason PhysX has noteworthy market-share is due to Nvidia's money-hatting.
Posted on Reply
Add your own comment
May 10th, 2024 12:08 EDT change timezone

New Forum Posts

Popular Reviews

Controversial News Posts