
4. Tiled Forward Shading 109
// assign lights to 2D tiles
tiles2D = build_2d_tiles();
lightLists2D = assign_lights_to_2d_tiles( tiles2D );
// draw opaque geometry in pre -Z pass and find tiles ’
// extents in the Z- direction
depthBuffer = render_preZ_pass();
tileZBounds = reduce_z_bounds( tiles2D , depthBuffer );
// for transparent geometry , prune lights against maximum Z - direction
lightListsTrans
= prune_lights_max( lightLists2D , tileZBounds );
// for opaque geometry additionally prune lights against
// minimum Z -direction
lightListsOpaque
= prune_lights_min( lightListsTrans , tileZBounds );
// ...
// later : rendering
draw( opaque geometry , lightListsOpaque ...