Project

General

Profile

« Previous | Next » 

Revision 48bf28bd

Added by danij over 16 years ago

Numerous optimizations:
  • Got rid of rendpoly_t. Whilst it was a convenient way to pass data around the renderer it was quite inflexible and was a bit of a performance bottleneck. The position and color data for rendpoly vertices are now held in parallel arrays and the rendpoly params are now in a separate struct. This meant that (among other things) that the position data can be reused for shiny polys and only a new vector of colors is needed. The next step will be to replace these vectors with a means to reserve elements in the rend lists's arrays and use those directly.
  • When loading a map, polygonize as early as possible so that we can start allocating planes early.
  • Rather than store an array of subplaneinfo_t per plane in subsector_t; instead, store an array of subplaneinfo_t per subsector in plane_t. Due to use now supporting the creation of planes at any time it is much more efficient to store the subplaneinfo data this way.
  • Re-designed renderSeg and renderPlane so as to separate the logic for determination of the rendpoly params from the generation. This will allow the rendpoly params to be cached for world surfaces.
  • Defer lighting of world surfaces (seg sections and planes) until the last possible moment (just before writing to the rend lists).

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences