Torque3D/Engine/source/environment
Azaezel 2753f562e8 shadow caching
SPECIAL NOTE: highly suggest https://github.com/GarageGames/Torque3D/pull/1441 or a variation thereof to prevent debug spew and false-postives for occlusion results.

With significant research, development and prototyping assistance from both @andr3wmac (shaders and partial hook work), and @LuisAntonRebollo (additional culling)

System operates as follows:
1) materials are given an additional castDynamicShadows boolean entry. (Default at time of writing is true by request. Personal usage at time of writing defaults to false. value is default-initialized in materialDefinition.cpp. script/gui exposed)
2) lights are given a staticRefreshFreq and dynamicRefreshFreq (in milliseconds). script/gui exposed
3) materials are (effectively) sorted into dynamic and static shadowmap render lists based on flag. (see shadowMapPass.cpp)
4) initial shadowmaps are generated for each light and 'list'.
5) as each refreshFreq times out, the relevant shadowmap for a given light is refreshed.

Special notes:
dynamicRefreshFreq for all lights is set to a (script exposed) 8MS refresh timer.
StaticRefreshFreq for the lions share of lights defaults to 250 MS (1/4 of a second)
scattersky's embedded light, which is intended to operate in a mobile manner, defaults to 8
to reiterate, these are all customizable per-light via script/inspector gui in the case of alternate project needs.
2015-10-13 18:12:19 -05:00
..
editors Issue found with PVS-Studio: 2015-07-16 22:02:18 -05:00
basicClouds.cpp Review fixes 2015-02-23 14:57:37 -05:00
basicClouds.h Use shader data for get sampler register in CloudLayer and BasicClouds. 2014-04-17 14:20:08 +02:00
cloudLayer.cpp Fix member vars left uninitialized in constructors 2015-02-20 18:41:51 -05:00
cloudLayer.h Use shader data for get sampler register in CloudLayer and BasicClouds. 2014-04-17 14:20:08 +02:00
decalRoad.cpp Fix more use-after-delete errors 2014-12-11 19:09:01 -05:00
decalRoad.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
meshRoad.cpp Merge pull request #1035 from bpay/memfixes 2015-01-25 13:42:32 +01:00
meshRoad.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
nodeListManager.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
nodeListManager.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
river.cpp Merge branch 'development' into walkabout 2015-01-29 21:38:20 +11:00
river.h Added basic Walkabout with #define renamed and no editor. 2014-11-28 19:42:10 +11:00
scatterSky.cpp shadow caching 2015-10-13 18:12:19 -05:00
scatterSky.h shadow caching 2015-10-13 18:12:19 -05:00
skyBox.cpp Replaced a ton of ConsoleMethods with the DefineConsoleMethod Macro. 2014-11-03 22:42:51 -05:00
skyBox.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
sun.cpp shadow caching 2015-10-13 18:12:19 -05:00
sun.h shadow caching 2015-10-13 18:12:19 -05:00
timeOfDay.cpp Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
timeOfDay.h Engine directory for ticket #1 2012-09-19 11:15:01 -04:00
waterBlock.cpp Added basic Walkabout with #define renamed and no editor. 2014-11-28 19:42:10 +11:00
waterBlock.h Added basic Walkabout with #define renamed and no editor. 2014-11-28 19:42:10 +11:00
waterObject.cpp Fix persistent underwater effect. 2014-12-23 22:32:21 +01:00
waterObject.h Merge branch 'master' into console-func-refactor 2014-10-14 15:09:11 +11:00
waterPlane.cpp Added basic Walkabout with #define renamed and no editor. 2014-11-28 19:42:10 +11:00
waterPlane.h Added basic Walkabout with #define renamed and no editor. 2014-11-28 19:42:10 +11:00