Physically-Based Real-Time GPU 3D Smoke Simulation with Haptic Rendering.
1. Based on Navier-Stoke equation for fluid simulation.
2. Numerical methods implemented on GPU
3. Treat smoke grid as 3D texture
4. Rasterize the 3D texture through Vertex Shader and Geometry Shader
5. Geometry shader allows quick access to neighboring cells for advection, pressure update, vorticity confinement etc.
6. Handle smoke density / velocity advection, vorticity confinement and pressure computation through Pixel Shader
7. Obstacle -- smoke interaction via voxelization
8. Integrate velocity / pressure /density along obstacle surface to compute force feedback
9. Map haptic device position to obstacle position to allow direct control of obstacle movement
10. Memory readback from GPU to CPU then pass to Falcon
11. Force filter to smooth out force output
Implemented in directx 10 /hlsl, Novint Falcon SDK
It's very impressive that this can be done in real-time with an old 8800 card. Must be really well optimized, I sense great programming skills!
Robinerd 10 months ago
@sjh7132 Well, it depends on what you do, you can do lots more than just graphics on modern GPGPUs, many are used for simultaneous solving of linear systems, simulations, etc, etc. So it entirely depends on your use-case. GPUs traditionally only have good single-precision performance because for the typical applications of 3D rendering & co in games and simple simulations, it doesn't matter a whole lot, and errors do not normally accumulate.
whoppix 1 year ago
@whoppix
I don't think it's that simple. When working with meshes you end up adding the affects of many little influences to get the total result. Maybe some of what you say can be applied, but I don' think it's a replacement for 64 bit.
sjh7132 1 year ago
@sjh7132 Rather than just increasing the precision of your floating point operations, you can often use an algorithm more numerically stable or a different algebraic formulation of the formula (for instance you would try to avoid things like substraction of two similar numbers or addition of a positive and a negative number), by installing alternative code-paths. Most GPUs nowadays only really have good SP (single precision, 32 bits) performance, but you can use mixed precision, if you need to.
whoppix 1 year ago
@Grimmcorpse
That is an impressive amount of processing power, but the math has to be done with enough bits so that round off error doesn't add up. If there is 128 bit math, then that's great. I don't think 32 bit math is good enough for engineering.
sjh7132 1 year ago
@sjh7132 Shouldn't the amount of flops determine if it's suited for the task or not? I mean.. the newest firestream can handle 1-1.2 teraflops, should be enough.. :p
Grimmcorpse 1 year ago
@sjg7123 ati radeon hd 4550 sapphire
mtracer100 1 year ago
@mtracer100
Really!?!? Which model is that?
sjh7132 1 year ago
@sjh7132 My GPU actually has 128 bit math. I was actually very surprised myself.
mtracer100 1 year ago
i remeber when i used to be so obsessed with smoke in videogames, it almost seems like nobody try anymore though :(
yellowfellow 1 year ago