The renderer was increasingly being exercised by a landscape rather than a small reference scene. That changed the useful questions. It was no longer enough to know that a grass mesh or a shadow path could render. The work needed to show where data was retained, which view selected detail, and what actually consumed the available budget.
Selection order changes the result
One concrete finding was that vegetation could spend its near-detail allowance before camera-frustum rejection. Moving rejection earlier made the allowance available to visible plants, while retaining independent shadow candidates. A later capture showed an off-camera car admitted by a light view even though the game camera rejected it.
Texture residency was another distinct concern. The Metal checkpoint retained geometry buffers while reducing and restoring texture residency. The recorded route still left a high-percentile performance gate open, so the change was not presented as a matched speedup. Correct ownership and lower selected residency are useful facts without inventing a whole-frame improvement.
Research created contracts, not finished features
The water research compared actual documentation and shader behavior with the engine’s existing optical foundation. It identified work for spectral detail, persistent foam, wakes, reflections, caustics, and a playground. The vegetation research recorded source and asset provenance, reusable generation boundaries, and future acceptance requirements.
Those completed research tasks should not be read as completed implementation. The following devlogs describe the later delivery and review checkpoints. The water article and vegetation article explain the technical boundaries that came out of the research.
The diary also records a sky path whose runtime cost check passed while its captures still missed the visual target. That is a useful result to keep. Visual quality and GPU cost are related requirements, but one cannot be substituted for the other.
Have a thought or a question?
I'd love to hear it. ↗