- radial UV
- -
- skew
- -
- samples
- -
- motion
- -
- floor
- -
- texture
- -
Two radial domains and a local noise texture make the floor and shell patterns independently observable.
The official VFX example combines radial UV coordinates, skewed texture domains, a procedural twisted-cylinder position graph, and a RenderPipeline bloom pass. This study keeps the geometry deformation and post-processing boundary visible across the TSL and direct-shader paths.
Generating a deterministic local noise field.
Two radial domains and a local noise texture make the floor and shell patterns independently observable.
The TSL route owns vertex displacement with a custom Fn; the dark shell keeps the silhouette readable behind the emissive shell.
WebGPU uses PassNode plus BloomNode; WebGL2 uses a direct ShaderMaterial and EffectComposer reference.
Centered plane coordinates become a radial texture domain before noise lookup.
A reusable TSL function shears the noise domain into directional motion.
Local cylinder positions become a parabola with animated angular turbulence.
PassNode output and emissive color become a controllable post-processing graph.
The direct route keeps the TSL geometry and pipeline ownership boundary explicit.
Tune the deformation and bloom graph, then measure thirty frames of the active path.
This is a deterministic adaptation of the official VFX tornado example: a generated local noise texture replaces the external Perlin asset while radial UV conversion, skew functions, twisted-cylinder position deformation, alpha shaping, PassNode output, bloom, and the direct-shader boundary remain executable.
Sources: official VFX tornado example · TSL · RenderPipeline · MeshBasicNodeMaterial · BloomNode