Search

  1. Search for an entity
    1. Uses
      1. Unity find by name
      2. Find anyone near the player
      3. Find animation keypoint based on time
    2. Index
      1. Auxiliary data structure to aid search
      2. Grid in sample code
      3. Sorted list, hash map, ...
    3. Structure of Array layout
      1. Separate key array from data array
      2. Improve cache performance during search
      3. Randomly access payload on hit
    4. Filter to separate table
  2. Render Sorting
    1. Why sort
      1. Objects come in random order
      2. Hard to reorder render calls, messes up rest of code structure
      3. Want to render all objects of one material before the next
      4. Want to render objects by viewport depth
      5. Easy to make list, then sort it
    2. Sort key <GoW3>
      1. 2b Fullscreen layer
      2. 3b Viewport
      3. 3b Viewport layer
      4. 2b Translucency
      5. 24b Depth
      6. 30b Material ID
    3. OSG example
      1. Traverse DAG describing world objects
      2. Generate render commands in several bins
        1. Solid
        2. Transparent
      3. Sort solid by material
      4. Sort transparent by depth