Entry 153
The streams' models clip at their view's divZ
Filescrates/piney-draw/src/lib.rscrates/piney-gs/src/convert.rscrates/piney-gs/src/lib.rscrates/piney-stream/src/scene.rscrates/piney-stream/src/draw.rscrates/piney-stream/src/lib.rsdocs/engine/stream.md
The last GAPS drawing item. VU1's unlit rigid program (mc_DrawTriSFast)
handles a triangle that is not wholly inside the GS space and w range by
its last strip vertex. When that vertex is nearer than the view's divZ
(+0x25c) it cuts the triangle at the near plane; otherwise it drops it.
piney-gs used a fixed 1000. The streams change it: stream 5's cue 12 sets
500, and stream 15's tasks set 2000 (str0580) and 3000 (str0581).
piney-stream tracked these and sent them out as Request::DivZ, but its
draws did not use them.
The change
piney_draw::ModelDraw::div_z, withpiney_draw::DIV_Z(1000) as the default that the towns, fields, dungeons, desktop and title pass.piney_gs::convert::mmattakes it in place of the constant.piney_stream::Scene::div_z: the stream sets it from its trackeddivZbefore each frame's draw, and the scene's models carry it.
Checks
All 585 workspace tests pass. The streams' fixture comparisons are of draw lists, which the change does not alter. The clip itself is unchanged code with a parameter in place of a constant.
no close-up of stream 5 or 15 was pictured against the game. Stream 15's worklog found that divZ 2000 changes nothing in str0580's first 420 frames. str0581's 3000 and stream 5's 500 were not looked at frame by frame.