PhysX vs. Bullet
PhysX vs. Bullet
Hello, for my current project i am at the decissionmaking part.
After eliminating all Physics engines that arent free or not realy optimized 2 were left, Bullet and PhysX.
Now my Qustions,
Is there something special that PhysX can do that Bullet can´t do and make PhysX worth to do all work and after doing all work begging at NVidia to give enough attention to it so that it will be allowed to be used?
After eliminating all Physics engines that arent free or not realy optimized 2 were left, Bullet and PhysX.
Now my Qustions,
Is there something special that PhysX can do that Bullet can´t do and make PhysX worth to do all work and after doing all work begging at NVidia to give enough attention to it so that it will be allowed to be used?
well i spelled my question that way because i think about the restrictions from PhysX SDK license:Seven wrote:but the way you phrased your post, it seems tht you already have your decision
http://developer.download.nvidia.com/Ph ... 20EULA.pdf
YOU ARE REQUIRED TO NOTIFY NVIDIA PRIOR TO USE OF
THE PHYSX SDK IN THE DEVELOPMENT OF ANY
COMMERCIAL PHYSICS APPLICATION.
......
UPON NVIDIA'S REQUEST, YOU MUST PROVIDE NVIDIA WITH
TWO (2) COPIES OF SUCH COMMERCIAL PHYSICS
APPLICATION AND ANY RELATED DOCUMENTATION.
and the system software license
http://developer.download.nvidia.com/Ph ... ftware.pdf
c. Distribution Rights. This license grants the right to distribute the Software as part of a
Physics Application (For purposes of this Agreement, Physics Application shall mean a
software application designed for use and fully compatible with the PhysX SDK and or
NVIDIA Graphics processor products, including but not limited to, a video game, visual
simulation, movie, or other product).
which means to me that i would only be allowed to use the "free license" when using whether SDK and/or NVidia products.
what furthergoing means to me that if i would like to publish something i need to get the agreement from NVidia and that NVidia may ask me of Copy´s of the product and also the Documentation.
So if i dont use the NVidia SDK and may have endusers that does not use NVidia products there is no License?
Or did i missed something?
I want to use products that provides free to use licenses also for commercial usage without any restrictions to any kind of brands.
thatfor i asked my question the way i asked, PhysX is very interesting to me but not if it only has a license wich not fullfill my needs of real free to use software.
if you dont want to / cant take advantage of the hardware side of PhysX, then you can easily go with Bullet. It will do you just fine and you wont have to beg anyone to be able to use it. If on the other hand, you think that you are up to creating a top notch game that could definately make good use of hardware driven physics engine, then go with PhysX. The results are pretty awesome.
Personally, I wrote a wrapper to use either of them (and newton2 as well) so that I could see performance side by side to make my choice. I pat myself on the back because I can even switch engines in the game to see the true impact. Afterwards, I went with PhysX as the primary engine because I just liked it better. I have no intention of begging anyone for anything though, I will just abide by the agreement that exists for each of the libraries that I use. If the end user doesnt have a PhysX capable card / driver, we simply drop down to the Newton2 driver instead. Again, Bullet is just fine, but CobbleStones preference is PhysX, Newton2 and then Bullet.
Personally, I wrote a wrapper to use either of them (and newton2 as well) so that I could see performance side by side to make my choice. I pat myself on the back because I can even switch engines in the game to see the true impact. Afterwards, I went with PhysX as the primary engine because I just liked it better. I have no intention of begging anyone for anything though, I will just abide by the agreement that exists for each of the libraries that I use. If the end user doesnt have a PhysX capable card / driver, we simply drop down to the Newton2 driver instead. Again, Bullet is just fine, but CobbleStones preference is PhysX, Newton2 and then Bullet.
Well i for my personal use can choose wich hardware i would like to build into my PC but it is not common to predertime the brand a end user should useSeven wrote:if you dont want to / cant take advantage of the hardware side of PhysX,
That is an option that i have not been includet, thank you for pointing out that, that maybe will be an option too.Seven wrote: ...
Personally, I wrote a wrapper to use either of them (and newton2 as well) so that I could see performance side by side to make my choice. I pat myself on the back because I can even switch engines in the game to see the true impact. Afterwards, I went with PhysX as the primary engine because I just liked it better.
What do you think about PAL http://www.adrianboeing.com/pal/ ?
btw. i also had a realy short look at Newton 2 what i dident liked was the point that the development during the past few patches/builds move forward and backward switching allways the Visual studio version, in my case i would use code::blocks that made a litle bit unsure about using this product.
PAL was definately an option for us, but i wanted to learn a bit about the different engines and thought that our system let me do that better. I am sure that the PAl system is more robust than ours, but in the end, i think that it did me personally a lot of good to dig into them.
Newton2 definately has some development issues, but we did not find any that blocked our path forward.
PhysX just rocks in my opinion
given the choice, I prefer the hardware hands down. Of courrse, many of your clients wont have the hardware to run it, so you have to take that into account,, but if they do...dang. it is sweet.
if we can be of any help let us know, and if you decide on PAL, i would be interested in following your progress to see if we can use it for our next project.
Newton2 definately has some development issues, but we did not find any that blocked our path forward.
PhysX just rocks in my opinion
given the choice, I prefer the hardware hands down. Of courrse, many of your clients wont have the hardware to run it, so you have to take that into account,, but if they do...dang. it is sweet.
if we can be of any help let us know, and if you decide on PAL, i would be interested in following your progress to see if we can use it for our next project.
Isn't the point in Physx that it's only available on Nvidia cards? The cpu side of it sucks, not only in code, but it's intentionally compiled without SSE support for instance. There were big headlines about that some time ago.
Taking a look at the Steam survey, AMD counts for one third. Can you afford to lose that market? Or maybe your physics demands are low enough to run well on the Physx cpu libs everywhere.
But if you're going cpu, bullet is much more optimized there.
Taking a look at the Steam survey, AMD counts for one third. Can you afford to lose that market? Or maybe your physics demands are low enough to run well on the Physx cpu libs everywhere.
But if you're going cpu, bullet is much more optimized there.
writing a wrapper for multiple engines was remarkably easy. A simple interface class with backside DLL's for code. This allows us to use hardware if present and Newton / Bullet if not. Personally, I use the NVidia cards exclusively, so the hardware is present. I can understand that some folks dont have them though, so providing that next level is a requirement. Since this topic was started, I have been working on a small demo that shows how this all wraps together. Hopefully we can display some results soon, however, we also have a deadline on another item which, of course, will have to take the priorirty. Luckily, I am about burned out on it right now and am looking forward to creating this other demo
well i think will maybe try to use PhysX, Bullet and Newton, and i will see what works best for that what i whant and need.
In case of the current project will be used over network (UDP, Internet) and some steps must be interpolated and simulated at client- but also be recalculateable at the server- side to avoid clientsided scripts, bots, cheaters...i would have to finnaly deceide for either one of them later on.
The idea of using different physics engine´s had been realy helpfull, thanks alot.
In case of the current project will be used over network (UDP, Internet) and some steps must be interpolated and simulated at client- but also be recalculateable at the server- side to avoid clientsided scripts, bots, cheaters...i would have to finnaly deceide for either one of them later on.
The idea of using different physics engine´s had been realy helpfull, thanks alot.
Physx can be used without the need of hardware, and just rely on software calculations. On that, it's pretty much like Bullet. The latest version of Bullet now has some pretty good hardware support, specially on DirectX11 compatible cards, so it's pretty much close to what you can do with Physix.
Both libraries are pretty good in my opinion.
However, I see advantages on each. The character controller on Physix is better than the one presented by Bullet (still in progress), but on Bullet I have been able to create controls easier for the rigidbodies.
I suggest you try them both and see what fits you best. My choice goes to bullet because the easy integration on Windows, Mac and Linux in one package
Both libraries are pretty good in my opinion.
However, I see advantages on each. The character controller on Physix is better than the one presented by Bullet (still in progress), but on Bullet I have been able to create controls easier for the rigidbodies.
I suggest you try them both and see what fits you best. My choice goes to bullet because the easy integration on Windows, Mac and Linux in one package
-- Never lose your sense of wonder --
-
- Posts: 83
- Joined: Fri May 28, 2010 8:59 am
- Location: Perth, Australia