3d Tornado Rendering for Storm Chasing Game (Twister: Research and Rescue)

I am working on a game titled “Twister: Research and Rescue” which takes inspiration from the 1996 movie Twister. I want to make the tornadoes in the game as visually impressive as possible without requiring high-end hardware, so I’m developing and testing it on my laptop with a GTX1050 graphics card.

I have created a smaller project that recreates some of the user interfaces seen in the movie, and I’m using this to render just the tornado funnel to test out different rendering methods. Here is a preview:

I am using a custom ray marching shader to render the tornado, I will give more details below but here are some of the key features:

  1. The size of the funnel can be changed in the shader:

  2. The curve of the funnel can also be customised:

  3. The “smoothness” of the funnel can be changed, it can be really smooth or really jagged:



There are also a dozen or so other customisation options but those are the most important ones.

The main feedback I’m looking for is how to make the tornado look more visually impressive? I’m in the process of adding a debris cloud at the base of the funnel, but what I really want to achieve is swirling dust around the funnel like in this picture: Dusty Debris | A strong tornado churns up dirt and other sma… | Flickr

The technique for rendering works like this:

  1. Ray march through the volume, at each point in the volume calculate the distance from the centre of the funnel. If within the funnel return a density, otherwise return zero. This will result in a smooth unimpressive cone.
  2. Using two 2D noise textures, sample one texture using the (x, y) coordinate and the other using the (z, y) coordinate and average the result.
  3. Use this noise value to offset the required distance from the centre of the funnel, either closer or further away, this gives the “bumpy” appearance that can be multiplied by a smoothness factor to change the overall appearance of the funnel
  4. Offset the ray’s y coordinate by some multiple of time, and rotate the ray around the y axis with time, this creates the illusion that the funnel is twisting and moving upwards

If there are any shader/shadergraph experts that can give me ideas on how to make this look stunning I would be really grateful! I have tried all sorts of methods to try and get a dusty appearance but I get more of a “noisy” appearance instead.

Any and all feedback is greatly appreciated! :slight_smile:

1 Like

Dang

The last pic you posted looks the closest to a real tornado (the color/hue is way off). As for the surface where it strikes the earth (to me), would be a particle effect, as it is emitting outward. Dont know how to do this, just an observation as ive never had to dev this senario before.