The river in Windup Wonderland looked clear, but its foam kept repeating and the waterfall felt flat. After feedback on Reddit, zhan reworked both in Godot.
People liked the color and clarity of
Windup Wonderland’s river in
zhan’s first Reddit post. But they also spotted foam lining up in rows and a waterfall that looked more like a glowing wall. Zhan rebuilt both in a day and shared a
before-and-after comparison.
The river starts as a curve drawn in Godot. Zhan’s
editor tool turns it into a mesh and stores the water’s direction, speed and depth in a texture. The tool began with the curve-to-mesh code from
Arnklit’s Waterways; zhan
rewrote the rest.
The original foam texture repeated every few meters, putting its brightest patches in rows.
The shader also blended two moving versions of that texture, but they returned to the same positions every four seconds. It was especially noticeable in motion.
Zhan added a much larger, slowly moving noise pattern to make foam gather in some areas and leave others clear. Both moving versions share that pattern; otherwise, one would fill the gaps left by the other.
Rotating them and changing their texture offsets while they are invisible breaks the rows and the loop. The foam texture is also larger and repeats less often.
The waterfall needed a bigger change. Originally, it was a flat sheet with streaks moving down at a constant speed.
Now the shader calculates how long the water has been falling at each height, so the streaks speed up and stretch on the way down. The top stays relatively calm, while the lower part becomes more broken and white.
Zhan also replaced the sheet with a 3D shape that arcs away from the cliff and lands in the pool. It meets the flat river surface at the top, grows rounder as it falls and gets thinner as the water speeds up. The difference is easiest to see from the side.
The join between the river and the fall still needed work. Zhan tried the small dam a commenter had suggested, but it blocked floating crates.
Instead, foam now builds up as the river approaches the edge, and a separate, lumpy foam mesh covers the join. At the bottom, more foam, splashes and drifting mist mark where the water hits the pool.
Working on water or VFX in Godot?