I challenged myself to build a fire tornado using a single shader 90% of the time.
The only mesh used is a simple Blender cylinder twisted and optimized to employ the full UV space.
No animation is playing, the shader provides the movement.
Each layer employs a different material but the same shader; a demo of the main shader is attached.
Only the external "flames" layer uses a simple scrolling shader with a handpainted grayscale texture and an editable Step/Edge value as the diffusion threshold to get flames skinnier or more extender.
The final result is enhanced with the addition of particles and some bloom.
Final version w/ VFX
Process and Layers
WIP, no erosion + Bloom
Parameters Demo