The river in my demo scene was a flat patch of colour. Now it is water
Free Fantasy Medieval Houses – [Godot,Unity,Blend] by EmaceArt
A free pack of medieval houses and props for Godot. Its second demo scene is a whole valley: a village on both banks, footbridges, walkways, a palisade of poles driven into the current. A river runs through the middle of it, and until yesterday it did not run at all.
What it looked like
The river surface sampled the same palette tile as the rest of the pack. What came out was a strip of flat colour lying between the banks. It reflected nothing, showed nothing of the bed, and never moved. The rocks standing out of the current looked like they were sitting on a carpet.
The river before the fix: a strip of flat colour between the banks.
Where that came from
The terrain mesh has three surfaces and the first one is the river surface. It has its own material, so technically nothing was wrong — the material simply held the palette texture instead of water.
I already had a water shader, released separately, so it went onto that surface: colour driven by how far the bed sits below the surface, banding instead of a smooth gradient, foam along the waterline, refraction of the bed and light patterns crawling over it.
Attaching it without touching the scene
The scene file in this pack is eight hundred kilobytes and holds a few thousand nodes. On the previous lighting change I repacked it and it grew four times over, because Godot flattened the prefab instances along the way.
The same shot once the water went in.
This time I did not touch the scene at all. The surface material lives in the terrain mesh file, not in the scene, so swapping it there was enough — the scene points at the same mesh as before and has no idea anything changed. The scene file did not grow by a single byte.
The first attempt came out milky
I set green-teal colours, rendered a shot from above — good. I rendered a shot at eye level from the bank — the river was white. Not pale green. Milk white.
Three things added up to that and none of them was wrong on its own. The grazing-angle brightening went more than halfway to white, and with the camera just above the water that applies across the whole visible surface. The shoreline glow colour was almost white, and it also feeds the colour of the patterns on the bed. The foam band was wider than the shallows, so it covered half the river.
The fix was narrowing the grazing-angle brightening, taking the shoreline glow down to a pale green and tightening the foam band. Three sliders, one control render.
The river after the fix, camera at the bank.
The whole valley with the river running through it.
The river in motion.
What I left switched off
The shader can move vertices and turn the surface into a wave. That is off here, because the river surface shares its edges with the bank surfaces in the same mesh. Moving the vertices would tear the water away from the bank and leave a gap behind it.
A cloud fix went into the sky while I was at it. The clouds were built from noise on a square lattice, and stretching them produced straight horizontal edges — rectangular patches over the valley. They now sit on a triangular lattice, so no edge lines up with an axis.
The pack is free and it is on the Godot asset store.
Free Fantasy Medieval Houses – [Godot,Unity,Blend] by EmaceArt





































































