I was reading old Dice presentation from GDC 07 about Frostbite engine rendering architecture (slideshare). Most of it is pretty easy to understand, but I can't seem to comprehend how do they designed high-level states for render system (how do they pass dynamic number of state combinations to shading system and how to find solution for that combinations efficiently) (page 35).
* User queues up render blocks Geometry & high--level state combinations * Looks up solutions for the state combinations Pipeline created these offline * Blocks dispatched by backend to D3D/GCM Blocks dispatched by backend to D3D/GCM Blocks are sorted (category & depth) Backend sets platform--specific states and shaders Determined by pipeline for that solution Thin & dumb Thin & dumb Draw
Can anyone help me with some pseudocode that implements? Many thanks.