0ad/source/simulation2/components
Ykkrosh b1b96a89d6 Fix culling for shadows and reflections.
Previously we had a single culling frustum based on the main camera, and
any object outside the frustum would never get rendered, even if it
should actually contribute to shadows or reflections/refractions. This
caused ugly pop-in effects in the shadows and reflections while
scrolling.

Extend the renderer to support multiple cull groups, each with a
separate frustum and with separate lists of submitted objects, so that
shadows and reflections will render the correctly culled sets of
objects.

Update the shadow map generation to compute the (hopefully) correct
bounds and matrices for this new scheme.

Include terrain patches in the shadow bounds, so hills can cast shadows
correctly.

Remove the code that tried to render objects slightly outside the camera
frustum in order to reduce the pop-in effect, since that was a
workaround for the lack of a proper fix.

Remove the model/patch filtering code, which was used to cull objects
that were in the normal camera frustum but should be excluded from
reflections/refractions, since that's redundant now too.

Inline DistanceToPlane to save a few hundred usecs per frame inside
CCmpUnitRenderer::RenderSubmit.

Fixes #504, #579.

This was SVN commit r15445.
2014-06-25 01:11:10 +00:00
..
tests New unit renderer. 2014-06-01 18:24:50 +00:00
CCmpAIManager.cpp Stop VFS from causing a crash when the AI player isn't found. Patch by Itms. Fixes #2558 2014-05-31 14:55:09 +00:00
CCmpCommandQueue.cpp Fixes multiplayer crash when host disconnects while clients are still loading. 2013-03-25 05:01:36 +00:00
CCmpDecay.cpp Dynamic message subscriptions. 2014-06-19 23:20:12 +00:00
CCmpFootprint.cpp add more flexibility to eject units when garrisonHolder is destroyed, fixes #2242 2014-01-08 18:27:58 +00:00
CCmpMinimap.cpp Removes pointless minimap state change during attack notification, it broke synchronized simulation state and caused some OOS errors. Fixes #2525. Refs #1719, #2526. 2014-05-19 01:35:14 +00:00
CCmpMotionBall.cpp Avoid slightly-expensive QueryInterface() calls 2013-09-11 20:41:53 +00:00
CCmpObstruction.cpp Fix units chasing each other. Fixes #1537 2013-12-30 16:07:19 +00:00
CCmpObstructionManager.cpp Fix units falling off the edge of the world. 2014-06-03 22:35:40 +00:00
CCmpOverlayRenderer.cpp Dynamic message subscriptions. 2014-06-19 23:20:12 +00:00
CCmpOwnership.cpp Added a 'quiet' version of SetOwner() that doesn't send a message, to allow faux-atomic batch ownership changes. 2012-08-08 05:18:20 +00:00
CCmpParticleManager.cpp Set svn:eol-style=native, fix some inconsistent line endings 2013-12-06 00:42:50 +00:00
CCmpPathfinder.cpp Fix units falling off the edge of the world. 2014-06-03 22:35:40 +00:00
CCmpPathfinder_Common.h Fix units falling off the edge of the world. 2014-06-03 22:35:40 +00:00
CCmpPathfinder_Tile.cpp Implemented nested territory boundaries. Fixes #918. 2012-01-18 21:22:58 +00:00
CCmpPathfinder_Vertex.cpp Avoid slightly-expensive QueryInterface() calls 2013-09-11 20:41:53 +00:00
CCmpPosition.cpp Dynamic message subscriptions. 2014-06-19 23:20:12 +00:00
CCmpProjectileManager.cpp Avoid slightly-expensive QueryInterface() calls 2013-09-11 20:41:53 +00:00
CCmpRallyPointRenderer.cpp Dynamic message subscriptions. 2014-06-19 23:20:12 +00:00
CCmpRangeManager.cpp Give gaia back it's vision. 2014-06-11 18:20:02 +00:00
CCmpSelectable.cpp Dynamic message subscriptions. 2014-06-19 23:20:12 +00:00
CCmpSoundManager.cpp Avoid slightly-expensive QueryInterface() calls 2013-09-11 20:41:53 +00:00
CCmpTemplateManager.cpp Give RMS access to the simulation templates. Fixes #1589. Patch by Itms. 2014-06-07 12:12:53 +00:00
CCmpTerrain.cpp Broadcast TerrainChanged message, so CCmpSelectable can actually see it. 2014-05-26 15:44:35 +00:00
CCmpTerritoryInfluence.cpp Rename technology related files, methods and messages so their names represent the shared data flow between technologies and auras (and maybe future components). Implement the C++ part of auras through these generalised files. Fixes #2154 2013-10-15 10:05:08 +00:00
CCmpTerritoryManager.cpp Fix pathfinding and territories not being recomputed when water height changes. 2014-05-26 13:45:10 +00:00
CCmpTest.cpp Simplify component interface: remove explicit context parameter, use GetSimContext() instead. 2011-01-16 14:08:38 +00:00
CCmpUnitMotion.cpp Dynamic message subscriptions. 2014-06-19 23:20:12 +00:00
CCmpUnitRenderer.cpp Fix culling for shadows and reflections. 2014-06-25 01:11:10 +00:00
CCmpVision.cpp Rename technology related files, methods and messages so their names represent the shared data flow between technologies and auras (and maybe future components). Implement the C++ part of auras through these generalised files. Fixes #2154 2013-10-15 10:05:08 +00:00
CCmpVisualActor.cpp New unit renderer. 2014-06-01 18:24:50 +00:00
CCmpWaterManager.cpp Add WaterChanged message, for things that need to be recomputed when the water height changes. 2014-05-26 13:44:24 +00:00
ICmpAIInterface.cpp Fix AI errors on skirmish maps. 2013-12-04 16:52:44 +00:00
ICmpAIInterface.h Fix AI errors on skirmish maps. 2013-12-04 16:52:44 +00:00
ICmpAIManager.cpp add file notification to Mac ticket 514, also change name of class FileInfo to CFileInfo to ease Mac development 2013-09-10 14:17:04 +00:00
ICmpAIManager.h Many small bugfixes for AIs. Adds support for difficulty (and along with that, some behind-the-door architecture for a handicap system). 2013-03-13 20:44:48 +00:00
ICmpCommandQueue.cpp # Add initial basic player AI framework. 2011-01-12 12:29:00 +00:00
ICmpCommandQueue.h # Add initial basic player AI framework. 2011-01-12 12:29:00 +00:00
ICmpDecay.cpp # Add corpse decay and building collapse. 2010-08-01 17:38:01 +00:00
ICmpDecay.h # Add corpse decay and building collapse. 2010-08-01 17:38:01 +00:00
ICmpFootprint.cpp Second (main) commit for the SpiderMonkey upgrade. 2014-03-28 20:26:32 +00:00
ICmpFootprint.h add more flexibility to eject units when garrisonHolder is destroyed, fixes #2242 2014-01-08 18:27:58 +00:00
ICmpGuiInterface.cpp # towards locale-independent pathnames on Linux 2011-03-21 17:53:13 +00:00
ICmpGuiInterface.h # towards locale-independent pathnames on Linux 2011-03-21 17:53:13 +00:00
ICmpIdentity.cpp Missing files 2011-05-05 20:07:51 +00:00
ICmpIdentity.h Missing files 2011-05-05 20:07:51 +00:00
ICmpMinimap.cpp # Display units on the minimap 2010-04-23 18:36:48 +00:00
ICmpMinimap.h Implements attack notifications based on patch by madmax and zoot, fixes #1719 2013-10-06 04:49:38 +00:00
ICmpMotion.cpp
ICmpMotion.h
ICmpObstruction.cpp Allow building walls along the shore. Patch by sanderd17. Fix #1610. 2013-07-07 22:44:47 +00:00
ICmpObstruction.h Fix units chasing each other. Fixes #1537 2013-12-30 16:07:19 +00:00
ICmpObstructionManager.cpp Stop units walking outside the edges of circular maps. 2010-10-30 18:25:34 +00:00
ICmpObstructionManager.h Fix some Clang warnings about unused private members 2013-10-19 00:53:58 +00:00
ICmpOverlayRenderer.cpp refactor path interface: 2011-03-23 13:36:20 +00:00
ICmpOverlayRenderer.h Use path types and conversions more consistently. 2011-03-21 22:59:00 +00:00
ICmpOwnership.cpp Added a 'quiet' version of SetOwner() that doesn't send a message, to allow faux-atomic batch ownership changes. 2012-08-08 05:18:20 +00:00
ICmpOwnership.h Added a 'quiet' version of SetOwner() that doesn't send a message, to allow faux-atomic batch ownership changes. 2012-08-08 05:18:20 +00:00
ICmpParticleManager.cpp Set svn:eol-style=native, fix some inconsistent line endings 2013-12-06 00:42:50 +00:00
ICmpParticleManager.h Set svn:eol-style=native, fix some inconsistent line endings 2013-12-06 00:42:50 +00:00
ICmpPathfinder.cpp Add obstruction debug mode, with GUI toggle. 2010-03-20 19:18:01 +00:00
ICmpPathfinder.h Allow building walls along the shore. Patch by sanderd17. Fix #1610. 2013-07-07 22:44:47 +00:00
ICmpPlayer.cpp Remove some unused component setters 2012-04-21 13:12:36 +00:00
ICmpPlayer.h Remove some unused component setters 2012-04-21 13:12:36 +00:00
ICmpPlayerManager.cpp # Add new renderer mode based on GL_ARB_fragment_program. 2011-03-26 20:17:21 +00:00
ICmpPlayerManager.h # Add new renderer mode based on GL_ARB_fragment_program. 2011-03-26 20:17:21 +00:00
ICmpPosition.cpp New unit renderer. 2014-06-01 18:24:50 +00:00
ICmpPosition.h Fix non-PCH build. 2014-06-02 20:06:27 +00:00
ICmpProjectileManager.cpp Added randomized arrow positions with hit detection when the missile lands and splash damage. Fixes #18. 2012-05-19 23:07:41 +00:00
ICmpProjectileManager.h Added randomized arrow positions with hit detection when the missile lands and splash damage. Fixes #18. 2012-05-19 23:07:41 +00:00
ICmpRallyPointRenderer.cpp Recompute rally point lines when the rally point is set on a moving unit. 2014-06-04 22:07:58 +00:00
ICmpRallyPointRenderer.h Recompute rally point lines when the rally point is set on a moving unit. 2014-06-04 22:07:58 +00:00
ICmpRangeManager.cpp Add an 'explore map' option to the game setup. 2014-04-14 19:52:49 +00:00
ICmpRangeManager.h Add an 'explore map' option to the game setup. 2014-04-14 19:52:49 +00:00
ICmpSelectable.cpp Implements always visible hero selection rings, based on patch by Deiz/F00. Fixes #1365 2012-07-19 04:45:01 +00:00
ICmpSelectable.h Slightly speed up actor rendering; have selectables properly handle fog of war, etc. Refs #1365. 2012-07-30 21:06:54 +00:00
ICmpSettlement.cpp # Initial support for territories 2011-07-20 19:48:06 +00:00
ICmpSettlement.h # Initial support for territories 2011-07-20 19:48:06 +00:00
ICmpSoundManager.cpp # Initial audio integration with new simulation system. 2010-04-04 21:24:39 +00:00
ICmpSoundManager.h # Initial audio integration with new simulation system. 2010-04-04 21:24:39 +00:00
ICmpTechnologyTemplateManager.cpp AI API V3 along with a new version of Aegis. Support for a JS shared component that can be used or not for each AI. 2013-03-05 22:52:48 +00:00
ICmpTechnologyTemplateManager.h AI API V3 along with a new version of Aegis. Support for a JS shared component that can be used or not for each AI. 2013-03-05 22:52:48 +00:00
ICmpTemplateManager.cpp AIs now properly receive aura and technology updates. Fixes #2377, Refs #1520 . Consequently reimplement repairing for AIs. 2014-01-16 20:32:44 +00:00
ICmpTemplateManager.h Disable XML validation when loading templates for AI, to save startup time 2011-02-20 20:45:39 +00:00
ICmpTerrain.cpp Summon planes back from the emptyness 2013-11-26 15:12:16 +00:00
ICmpTerrain.h Fix an issue with corruption of water data when the actor editor opened in Atlas. 2014-02-25 06:27:15 +00:00
ICmpTerritoryInfluence.cpp # Initial support for territories 2011-07-20 19:48:06 +00:00
ICmpTerritoryInfluence.h # Health decay for buildings not in a civ center's territory. 2011-08-18 20:28:53 +00:00
ICmpTerritoryManager.cpp # Health decay for buildings not in a civ center's territory. 2011-08-18 20:28:53 +00:00
ICmpTerritoryManager.h Implemented nested territory boundaries. Fixes #918. 2012-01-18 21:22:58 +00:00
ICmpTest.cpp
ICmpTest.h
ICmpUnitMotion.cpp Improve navigation for ship formations by setting the formation controller to the right passability class 2014-05-18 07:59:43 +00:00
ICmpUnitMotion.h Improve navigation for ship formations by setting the formation controller to the right passability class 2014-05-18 07:59:43 +00:00
ICmpUnitRenderer.cpp New unit renderer. 2014-06-01 18:24:50 +00:00
ICmpUnitRenderer.h New unit renderer. 2014-06-01 18:24:50 +00:00
ICmpUnknownScript.cpp # Added initial support for players and population counters in new simulation system, plus various infrastructure improvements. 2010-01-22 20:03:14 +00:00
ICmpUnknownScript.h # Added initial support for players and population counters in new simulation system, plus various infrastructure improvements. 2010-01-22 20:03:14 +00:00
ICmpValueModificationManager.cpp Make the actor tech-modifiable. Fixes #2243 2014-04-14 15:00:49 +00:00
ICmpValueModificationManager.h Make the actor tech-modifiable. Fixes #2243 2014-04-14 15:00:49 +00:00
ICmpVision.cpp Fix highlighting of obstructed building placement previews. 2010-10-04 17:34:33 +00:00
ICmpVision.h Fix highlighting of obstructed building placement previews. 2010-10-04 17:34:33 +00:00
ICmpVisual.cpp New unit renderer. 2014-06-01 18:24:50 +00:00
ICmpVisual.h New unit renderer. 2014-06-01 18:24:50 +00:00
ICmpWaterManager.cpp Substantial speed-up of the foam generation code. 2014-01-05 16:15:20 +00:00
ICmpWaterManager.h Substantial speed-up of the foam generation code. 2014-01-05 16:15:20 +00:00