All current real time fluid solvers cannot do fluid-wall collisions as that requires compressable fluids; thats basically where each cell in the fluid does not have the same fluid density (very hard to solve). Another restriction on the fluid solver is that the fluid is homogeneous, meaning the viscosity is the same for the entire grid; that rules out your plan arne for the Environment geom.
We also have to take into account boundry conditions, so far, ive made an FFT based fluid solver, that means the bounds wrap around (like a torus), but I can make another implementation of this no problem. Im thinking the boundry cells should all be zero no matter what, but there are other alternatives we’ll have to experiment with.
The application of the forces can be a post-process effect, so during a collision with the fluid primitive, forces get calculated then the LCP can solve that, maybe even use a Gauss relaxation method to ensure system stability (im thinking where the velocity field is pointing towards a wall and an object is stuck between), but we’ll come to that when it is a problem…
As for rendering, your thinking too literal, the actual simulation is very abstract and volume rendering is not needed as the fluid is just meant to drive the physical simulation; Its up to the game to render the fluid (if it uses it) in a way it sees fit; ofcourse when I say fluid, i dont just mean liquids, it can be gases/wind…etc. Also, the fluid solver has nothing to do with the surface; air mixing is a completly different problem thats outside the domain of this problem.
Another problem we have (heh, as if we dont have enough!) is if the object lies in a number of velocity grids (say 2x2); the first coloumn’s velocity is much much higher than the second coloumn, an object placed in that field will start to spin, but thats not the case with the simulation at the moment. This can be solved if JOODE has a point-primtive collision detection and response method; I then need to create a completly different fluid solved based on Smoothed Particle Hydrodynamics and move those and collide with them. I think thats how Novodex does it
Also, the solid fluid stuff is not a good solution, there are tons and tons and tons of other ways to generate terrain (ive done most of them!); using fluid to do that is just too much (takes too long, complex to create and wont give stunning results compared to all the other methods).
The fluid dynamics domain is so big, I had to restrict the problem domain alot to get real-time performance.
DP