diff --git a/changes/render3d-island.md b/changes/render3d-island.md new file mode 100644 index 00000000..c7ea6bf8 --- /dev/null +++ b/changes/render3d-island.md @@ -0,0 +1,7 @@ +bump: minor +type: feat +**`ludic.render3d`: `terrain_island(cx, cz, r, fall)`** keeps land out to `r` and then +scales the terrain down into the water over `fall` metres. Scaling rather than blending +to a fixed bed is what makes the coastline come out of the terrain already there: low +ground becomes beach and shallows, high ground becomes cliff. `r = 0` leaves the survey +untouched. diff --git a/changes/render3d-moon.md b/changes/render3d-moon.md new file mode 100644 index 00000000..defa7334 --- /dev/null +++ b/changes/render3d-moon.md @@ -0,0 +1,7 @@ +bump: minor +type: feat +**`ludic.render3d`: the moon has a phase.** One number, 0 new .. 0.5 full .. 1 new +again, decides the disc's terminator, how much of its light reaches the ground, and +where in the sky it rides - a full moon rises as the sun sets, a new moon travels with +the sun and is never seen. A new moon is now a properly dark night, which is what makes +a carried light worth having. diff --git a/changes/render3d-outline.md b/changes/render3d-outline.md new file mode 100644 index 00000000..020ec446 --- /dev/null +++ b/changes/render3d-outline.md @@ -0,0 +1,7 @@ +bump: minor +type: feat +**`ludic.render3d`: a rim outline on an actor.** An actor gains `outline` (metres of +rim) and `ocol` (its colour). The pass draws the model again with its vertices pushed +along their normals and its front faces culled, so only the far side of the swollen +shell survives - a silhouette exactly `outline` wide, depth-tested against the scene, so +anything standing in front of the actor hides its rim too. diff --git a/changes/render3d-water-scale.md b/changes/render3d-water-scale.md new file mode 100644 index 00000000..81dc5b48 --- /dev/null +++ b/changes/render3d-water-scale.md @@ -0,0 +1,7 @@ +bump: patch +type: fix +**`ludic.render3d`: water read the window's size, not the frame it drew into.** The +water shader's `u_screen` and the reflection target were sized from the drawable, but +`gl_FragCoord` there runs over the scene target. They match only at a render scale of 1; +below that the refraction and depth reads landed in the wrong corner of the frame and the +lake showed a squashed copy of it instead of its own bed.