Nvidia shows it with their PhysX-Physics-Engine (which, of course, only works on Nvidia-GPUs ;-) ) and there are some other examples as well I think. So GPU-processed Physics has been talked quite a while about now; here's my question: Couldn't Open Clonk have GPU processed physics? Wheren't you annoyed by the lag that occured, when you set huge amounts of water free? Could we have more advanced Physics in Clonk?
Here is a Techdemo from Nvidia, which shows GPU-based realistic water rendering: http://www.youtube.com/watch?v=UYIPg8TEMmU
Note that according to Nvidia this techdemo is renderd on their new Fermi-GPU, which is a shader-monster (Shader-Units are used for this processing). But also note that these are huge amounts of 3D-particles, and we have only 2D.
Of course it would require some work on such a little GPU-water-physics-engine and i totally don't have any skills on that area but I think it's worth a try?
Edit: Another disadvantage I want to cover really quick is that not all the people of today have a graphicscard with good shaders and their computer's CPU might do even better than the GPU. To solve this problem, the old CPU water-physics could be kept for those people, who might be not a minority. Cool feature anyway. :p
Note that we need to make sure that the computation needs to be exactly identical to the CPU implementation and to the one for other graphics card to preserve synchronization in network and records.
But I agree, there are more important things to do.
I'm just saying. ;)
But as I said, the CPU could and must also be kept as physics-processing-unit (PGU, hooray! o.o ). And don't start complaining about lame CPUs, there are no other alternatives. x-)
I really don't know how to implement this since I'm not a programmer, so I ask the ones that probably know how to do this and make a suggstion. :)
>(Anyone 10000$ for the license?)
PhysX SDK is free. What are you talking about? Getting access to the PhysX-Code? Would that be necessary?
see http://developer.nvidia.com/object/physx_downloads.html:
>How to access the Binary PhysX SDK
>
>The NVIDIA binary PhysX SDK is 100% free for both commercial and non-commercial use and is available for immediate download by registered PhysX developers. To become a registered PhysX Developer >please complete the registration form (steps provided below) on NVIDIA's PhysX Developers Website.
If we start implementing acceleration on the GPU, we need to make sure that a fallback CPU implementation delivers the exact same output. That might be hard to achieve.
But I admit that in most cases better first ask the community that wasting time on a feature that won't be popular.
>I like the current water behavior
It's not only the behavior, but also the speed of the current implementation, which would probably be better when calculated by a GPU.
>But I admit that in most cases better first ask the community that wasting time on a feature that won't be popular.
I'm sure it will be popular - most games need good graphic cards, which support these features.
I talked about having different calculation results from different GPU hardware, GPU drivers or GPU settings.
A GPU is a blackbox and the results are not the same bit-for-bit but you can see the same picture. But this makes the network mode not synchronous
we had allready discussed this before. with a GPU implementation you would kill any network sync mode.
But in applying it to Clonk, this means that you will waste a lot of power on water that's essentially standing still. Some waves can be emulated at lower cost, and might even end up lookin more realistic than actual waves, because we can tweak them more easily. So do we really need a whole new submodule just to make the rare big floods look more realistic? Couldn't we do something more useful with that calculation power (scaling the landscape up *hint hint*)?
And yes, the whole network synchronization thing is a killer argument here. But that has been explained enough elsewhere in this thread.
Addendum
Looking at the demo more closely it seems they actually use a lot of little spheres to model water, just like that 2D physic simulation knight_k posted once. I'm pretty sure that this approach has huge performance problems once really large amounts of liquid are involved (see above: flood).
>scaling the landscape up *hint hint*
What do you mean?
> First of all, I was talking about moving to take the massmoving/water-processing to the GPU, not programming a water-physics-engine.
Massmoving/water-processing is our water physics engine, as far as I'm concerned.
Well, in case you just intend to "port" the current mass mover to a GPU: I'm pretty sure it will actually run slower on a GPU, because as far as I know doing actual loops over thousands of pixels isn't really a GPU's strong point (opposed to pretty local calculations working with massive parallelism). You need to change the approach.
>You need to change the approach.
In which direction would you point?
> just like that 2D physic simulation knight_k posted once
probably refers to: http://www.phunland.com
Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill