Framed Out
Point a camera at the corner of an instanced grid, away from where it's anchored, and the whole thing would vanish. Ten thousand cubes, gone, because the culler was asking about one cube that wasn't on screen. It stays on screen now.


Instancing is how you put ten thousand of something on screen for the price of telling the GPU once. One mesh, a buffer full of positions, a single draw call. It is the difference between a sparse scatter and a wall of geometry, and it is exactly what you reach for when you want a floor of cubes reacting to a beat or a field of petals filling the frame.
So it is a problem when framing that field from the side makes all ten thousand disappear.
One cube speaking for everyone
Before anything reaches the screen, the engine culls: it throws away geometry the camera cannot see so it never pays to draw it. For instanced draws it was asking the question wrong. The per-instance positions live in a buffer the rasterizer reads later, so at cull time the draw still points at the base mesh, sitting at the origin. The culler dutifully checked whether that one origin-anchored mesh was in view and then applied the answer to every instance.
Frame the grid dead center and the base mesh is on screen, the answer is “keep,” and everything renders, so nothing looked wrong. Point the camera at the far corner instead, where the origin falls outside the frame, and the answer flips to “cull.” One cube, invisible, casting its verdict over ten thousand that were plainly in shot. The grid blinked out.
Before, camera framing the corner:

After, same patch, same camera:

Bound the whole spread, not one cube
The fix teaches the culler to ask the honest question. Before a frame is drawn, a small pass sweeps every instance of a draw, wraps the entire scattered spread in one box, and hands that box to the culler. Now the question is “is any part of this whole field on screen?” instead of “is that one cube at the origin on screen?”. A grid framed at its far corner keeps every cube, because the box around the field is plainly in shot. Point the camera somewhere the field genuinely is not, and the whole draw is dropped, exactly as it should be, so nothing pays to render geometry no one can see.
That box is built on the GPU from the same per-instance positions the renderer already holds, so it costs almost nothing and never stalls the frame to ask the processor. Center-framed grids render exactly as before, down to the pixel. Ten thousand cubes reacting to a beat, framed from any angle, now stay on screen when they should and get culled when they shouldn’t, which is the whole point of culling and, until now, the one thing instancing couldn’t do.