1
0
forked from 0ad/0ad
0ad/source
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
..
collada Fix VS2013 build errors, warnings 2013-11-03 12:46:07 +00:00
graphics Fix culling for shadows and reflections. 2014-06-25 01:11:10 +00:00
gui Don't allow changeing disabled dropdowns using the scrollwheel. Also corrects some things in b9a4af4cc6. 2014-06-21 00:25:12 +00:00
i18n Fixes a few building warnings and convention issues from 19ca1e3ebf 2014-05-07 23:33:21 +00:00
lib Exclude .git dirs when adding subfolders to the VFS. 2014-06-15 17:06:24 +00:00
lobby Bump lobby version string. 2014-05-25 03:21:32 +00:00
maths Fix culling for shadows and reflections. 2014-06-25 01:11:10 +00:00
mocks More FreeBSD build fixes. 2012-01-30 06:21:11 +00:00
network Correctly remove players who cancel while rejoining. Fixes #2240 2014-06-20 03:22:40 +00:00
pch Sacrifices a goat to the gods of insanity. 2014-04-24 20:05:48 +00:00
ps Handle mods specified on the command line when using the archive builder. 2014-06-15 16:43:08 +00:00
renderer Fix culling for shadows and reflections. 2014-06-25 01:11:10 +00:00
scriptinterface Reenable JS warnings that were disabled in db0376fdc2. 2014-05-18 13:25:08 +00:00
simulation2 Fix culling for shadows and reflections. 2014-06-25 01:11:10 +00:00
soundmanager Fix segmentation fault in the sound destructor. Happened when the sound file doesn't exist. Errors are shown by other code. 2014-06-24 11:07:39 +00:00
third_party Add plural forms for Gaelic. Fixes #2575. 2014-05-20 17:11:47 +00:00
tools Fixes MSVC warning about uninitialized playerId in Atlas entity pasting code (using 0 as a sensible default value), refs #96 2014-06-22 22:19:02 +00:00
contributors.txt Ticket #2127 - Performance and style improvements in scriptinterface. 2013-09-16 19:10:06 +00:00
main.cpp Handle mods specified on the command line when using the archive builder. 2014-06-15 16:43:08 +00:00
test_setup.cpp Changes tests to use global g_ScriptRuntime instead of creating a new JSRuntime for each test. 2014-04-25 21:19:51 +00:00