Sign in to follow this  
Anddos

why does the NVIDIA PhysX SDK use opengl on there samples?

Recommended Posts

Probably because at least in the early days of hardware 3D it was easier to prototype with/do simple graphics.

Also perhaps because of the background of the developers, NovodeX(thats where the Nx prefix is from) and many of the developers had ties to ETH Zurich and OpenGL has always been popular in academic circles.

David

Share this post


Link to post
Share on other sites
do you have to use the meshs that come with the sdk ,or can you use meshs made with 3dsmax and have them have phyics?, i just see in the samples boxes and cones and stuff...

Share this post


Link to post
Share on other sites
Quote:
Original post by Anddos
do you have to use the meshs that come with the sdk ,or can you use meshs made with 3dsmax and have them have phyics?, i just see in the samples boxes and cones and stuff...


I am afraid you are only allowed to use the shapes which can be drawn by the samples... :-)

David

Share this post


Link to post
Share on other sites
how can it be good for game engines then?, i cant make pysics on the models of my choice, i see this used alot in retail games , so there must be away

Share this post


Link to post
Share on other sites
Haven't played with PhysX in forever, but both Bullet and Havok give you both primitive and mesh collision shapes to use.

Mesh shapes however, are VERY slow by comparison. Most games just use the simple shapes like sphere, box, and capsule for most cases. Things like terrain would be one of the few mesh shapes. An FPS may use a low-detail skinned mesh for collision. But in other games, you often don't need mesh level accuracy to determine a hit on something. You just build up a person shape out of a few capsules and spheres if i you need per-body-part collision, or just put a box around the object if you only care about "did hit".

I'd also mention that Bullet, Havok, and PhysX all support multiple platforms from Linux, PS3, Wii, X360, Windows and Mac. DirectX only works natively on Windows and X360. Variants of OpenGL natively run on all those platforms, meaning you can likely get the demos running on those platforms with less effort/code changes.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anddos
how can it be good for game engines then?, i cant make pysics on the models of my choice, i see this used alot in retail games , so there must be away


The samples can load (more or less) arbitary meshes and convex objects and heightfields... (maybe you didnt look at the samples properly?)

As for performance, in some cases, a static triangle mesh can be faster than many individual primitives.

David

Share this post


Link to post
Share on other sites
Quote:
Original post by Anddos
Why does Nvidia choose opengl more than directx?


Because quite often DirectX doesn't support the hardware features early enough, with OpenGL nvidia can add their own vendor specific extensions while the hardware is still under development and if they invent something new they can play around with it immediatly without waiting for anyone.

With DX they'd have to wait for Microsoft to add support, most of the time Microsoft is fast enough to get things done before the hardware hits the market, but there have been a few occasions where Microsoft was rather slow.

nvidias "DX10" hardware for example was released a few months before Vista and DX10 so their only option to get those demos running was to use OpenGL with their own extensions.

Those extensions never really worked on the equivalent AMD/ATI hardware though despite the hardware being capable of supporting them (AMD/ATI had their hardware out much later and didn't add any of those OpenGL extensions to their Windows drivers since it was pretty pointless, D3D was allready out by then) This basically meant that OpenGL support was extremely fragmented (all vendors supported OpenGL2.0 or 2.1 but it was ancient and the extensions used to bring things up to date varied between manufacturers) while all vendors supported D3D in exactly the same way, for Windows game developers the choice of API became quite easy.

So basically, OpenGLs extension system is what makes it attractive to hardware manufacturers and also what frustrates the hell out of game developers. (With OpenGL4 we can finally ignore the extensions, atleast until the khronos group falls asleep again)

Share this post


Link to post
Share on other sites
Quote:
Original post by SimonForsman
Quote:
Original post by Anddos
Why does Nvidia choose opengl more than directx?


Because quite often DirectX doesn't support the hardware features early enough, with OpenGL nvidia can add their own vendor specific extensions while the hardware is still under development and if they invent something new they can play around with it immediatly without waiting for anyone.

With DX they'd have to wait for Microsoft to add support, most of the time Microsoft is fast enough to get things done before the hardware hits the market, but there have been a few occasions where Microsoft was rather slow.

nvidias "DX10" hardware for example was released a few months before Vista and DX10 so their only option to get those demos running was to use OpenGL with their own extensions.

Those extensions never really worked on the equivalent AMD/ATI hardware though despite the hardware being capable of supporting them (AMD/ATI had their hardware out much later and didn't add any of those OpenGL extensions to their Windows drivers since it was pretty pointless, D3D was allready out by then) This basically meant that OpenGL support was extremely fragmented (all vendors supported OpenGL2.0 or 2.1 but it was ancient and the extensions used to bring things up to date varied between manufacturers) while all vendors supported D3D in exactly the same way, for Windows game developers the choice of API became quite easy.

So basically, OpenGLs extension system is what makes it attractive to hardware manufacturers and also what frustrates the hell out of game developers. (With OpenGL4 we can finally ignore the extensions, atleast until the khronos group falls asleep again)


But this has nothing to do with PhysX...

Share this post


Link to post
Share on other sites
The samples mostly predate the NVIDIA acquisition, and as pointed out the developers originated from academia. There's no particular reason to switch away from GL after most of the samples are already in it, so there you go.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this