Agreed, it makes sense that the shaders are common, so that people can start with empty and add their own art without worrying about stuff not working as expected.
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.
+added: gui slider for maximum exposure of vignetting
+changed: shaders to logical min/max floats
this pr contains the glsl shaders as well and therefore makes the
https://github.com/GarageGames/Torque3D/pull/1225 Pull Request obsolete
- Caustics now respects the passed in water plane rather than assume
that the water plane is on the XY plane. This allows for caustics to
work for steep rivers.
- Fixed lerp() warning in underwaterFogP.hlsl.
- Cleaned up turbulence and caustics PostEffect scripts to remove unused
items.
- Caustics are now enabled and disabled based on the control object
being underwater, just like turbulence. Moved this code to fog.cs to be
with the underwater postFX.
- PostEffect class now offers the current projection offset and target
viewport as shader constants.
- Turbulence postFX now takes the current projection offset into
account.
- Turbulence postFX now clamps itself to the current viewport.
- Turbulence postFX now renders after the glow bin, specifically after
the glow postFX renders. This ensures that it can take advantage of
knowing the current viewport rather than affecting the entire render
target.