Commit graph

64 commits

Author SHA1 Message Date
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
Areloch
2002d74b78 Issue found with PVS-Studio:
Many instances of a function or expression being used repeatedly, which can lower performance.

Fixed it in these cases by creating on local var, reference or pointer that's used instead.
2015-07-13 22:51:17 -05:00
Azaezel
6fa44a4e92 further insurance that shadow split stay within bounds. 2015-03-10 06:03:40 -05:00
Luis Anton Rebollo
825912e800 Merge pull request #1223 from Azaezel/detailNormalOrderOfOperations
DeferredBumpFeat order of operations corrections
2015-03-08 22:49:27 +01:00
LuisAntonRebollo
ae3128b28b DeferredBumpFeat order of operations corrections. Clean. 2015-03-08 22:30:03 +01:00
Luis Anton Rebollo
7e7025d1ca Merge pull request #1238 from Azaezel/defaultNormal
https://github.com/GarageGames/Torque3D/issues/770 resolution
2015-03-08 22:12:24 +01:00
LuisAntonRebollo
1067da284f Add error msg to Shadergen when GBufferConditioner?LSL::processVert don't have normals defined. 2015-03-08 22:10:22 +01:00
Azaezel
bc32da74ca https://github.com/GarageGames/Torque3D/issues/770 resolution suggested by @LuisAntonRebollo 2015-03-03 23:10:47 -06:00
Daniel Buckmaster
84e8cbb4ee Revert recent style cleanup changes. 2015-03-04 11:58:36 +11:00
Daniel Buckmaster
33fcc59543 Merge remote-tracking branch 'origin/style-cleanup' into development
Conflicts:
	Engine/source/T3D/tsStatic.cpp
	Engine/source/console/compiledEval.cpp
	Engine/source/ts/tsMesh.cpp
	Engine/source/ts/tsShape.cpp
2015-03-01 22:30:22 +11:00
Daniel Buckmaster
baf594aee7 Merge pull request #1006 from BeamNG/fix_lighting_with_zero_lights
Fix lighting errors when all lights are disabled.
2015-03-01 21:06:34 +11:00
Daniel Buckmaster
6c92ab065e Merge remote-tracking branch 'jamesu/console_stack_fix2' into development
Conflicts:
	Engine/source/console/console.cpp
2015-03-01 20:33:29 +11:00
Azaezel
0325aaf5bb good catch 2015-02-25 12:50:00 -06:00
Azaezel
ea29f5203d DeferredBumpFeat order of operations corrections 2015-02-23 15:35:10 -06:00
Ben Payne
0ffd7f5620 Fix member vars left uninitialized in constructors 2015-02-20 18:41:51 -05:00
James Urquhart
f44a3f27d6 Fix stack balancing problems by refactoring execution calls
- Con::executef now uses a template
- All public execution functions now restore the console stack upon return
- Fixed bad parameters on some callbacks
- Reverts get*Arg behavior
2015-02-08 00:08:18 +00:00
Daniel Buckmaster
014b566014 Merge remote-tracking branch 'gg/development-3.6' into development
Conflicts:
	Engine/source/T3D/gameFunctions.cpp
2015-01-29 21:17:38 +11:00
LuisAntonRebollo
19afd0c22b . 2015-01-25 02:01:11 +01:00
Daniel Buckmaster
ae284a89ec Merge branch 'development' into defineconsolemethod
Conflicts:
	Engine/source/materials/materialDefinition.cpp
2014-12-26 13:22:16 +11:00
Azaezel
a3fab3d4c4 Projected Shadow fix
With Permission from Jeff Faust.

   // AFX CODE BLOCK (bug-fix) <<
   // For ShapeBase objects this causes the shader to fade along with the
   // object and also prevents a rectangular shadow artifact from occuring
   // once the visibility is zero.
2014-12-22 17:52:02 -06:00
Azaezel
c6cdfafe4e cleaned up variant of https://github.com/GarageGames/Torque3D/pull/768 alterations: opengl support, in-shader bug-reporting, direction vector fit to material slider-bar. 2014-12-21 14:07:42 -06:00
Daniel Buckmaster
9396ae7176 Merge remote-tracking branch 'Winterleaf/Development-Console' into defineconsolemethod
Conflicts:
	Engine/source/T3D/missionMarker.cpp
2014-12-21 21:23:55 +11:00
Daniel Buckmaster
33ff180593 Merge branch 'development' into style-cleanup
Conflicts:
	Engine/source/console/astNodes.cpp
	Engine/source/console/codeBlock.cpp
	Engine/source/console/compiledEval.cpp
	Engine/source/ts/collada/colladaAppMesh.cpp
	Engine/source/ts/tsShape.cpp
	Engine/source/ts/tsShapeConstruct.cpp
2014-12-15 12:15:55 +11:00
LuisAntonRebollo
f166e5286d Fix lighting errors when all lights are disabled. 2014-12-03 23:46:12 +01:00
LuisAntonRebollo
1d3f3fdfe4 Fix OpenGL changes formating. 2014-11-30 23:09:11 +01:00
LuisAntonRebollo
32e8725931 Merge pull request #983 from Azaezel/stray_mSamplerNames
DeferredMinnaert feautre was missing samplernames
2014-11-30 04:59:24 +01:00
Azaezel
bea3563c3d const U64 maxValPerChannel = (U64)1 << mBitsPerChannel; 2014-11-29 21:50:02 -06:00
Azaezel
2e112802e5 DeferredMinnaert feautre was missing samplernames 2014-11-29 21:44:05 -06:00
LuisAntonRebollo
a4bf61f07b Fix x64 builds. 2014-11-30 04:00:58 +01:00
LuisAntonRebollo
98e3651db5 Merge pull request #940 from BeamNG/add_opengl_support
Add/Activate OpenGL render.
2014-11-30 02:48:13 +01:00
LuisAntonRebollo
b731f3cbe5 Merge pull request #932 from BeamNG/reduce_RT_changes
Reduce innecesary changes on Render Target textures.
2014-11-30 02:22:52 +01:00
LuisAntonRebollo
b632d06c97 Merge pull request #930 from BeamNG/separate_opengl_from_os
Separate OpenGL code from Linux or Mac.
2014-11-30 02:22:28 +01:00
LuisAntonRebollo
2f8d18c0c0 Merge pull request #929 from BeamNG/remove_old_opengl_code
Remove unnecesary code for handle OpenGL.
2014-11-30 02:22:24 +01:00
LuisAntonRebollo
03ffa1ddd3 Merge pull request #925 from BeamNG/shaderdata_samplernames
Add sampler names to ShaderData
2014-11-30 02:21:30 +01:00
LuisAntonRebollo
1c95ce21d6 Merge pull request #608 from BeamNG/use_gfxdevice_setupgenericshaders
Use GFXDevice::setupGenericShaders for support non Fixed Fuction Pipelines.
2014-11-30 02:20:00 +01:00
LuisAntonRebollo
dd08fd2e7d Add OpenGL support. 2014-11-08 20:21:50 +01:00
LuisAntonRebollo
c0b2e6536b Reduce innecesary changes on Render Target textures. 2014-11-08 18:34:21 +01:00
LuisAntonRebollo
1ac8fab884 Changes for get necesary sampler names for OpenGL shaders. 2014-11-08 18:31:14 +01:00
LuisAntonRebollo
7f183ef9e5 Separate OpenGL code from Linux or Mac. 2014-11-08 18:15:49 +01:00
LuisAntonRebollo
f101fbe820 Remove unnecesary code for handle OpenGL. 2014-11-08 18:11:35 +01:00
Vincent Gee
acb192e2a5 Replaced a ton of ConsoleMethods with the DefineConsoleMethod Macro. 2014-11-03 22:42:51 -05:00
Azaezel
9e404b3707 kills off the presence of a fake light when there are no others in a given scene 2014-08-14 21:46:48 -05:00
bank
f3fc84738b Use fixed buffer size var when allocating return buffer from console.
Conflicts:
	Engine/source/T3D/missionArea.cpp
	Engine/source/gui/editor/guiDebugger.cpp
2014-06-11 13:09:55 +04:00
LuisAntonRebollo
6450294855 Fixes for dedicated build on linux.
Thx @Bloodknigh for Signal fix.
2014-05-30 12:35:39 +02:00
Thomas Fischer
cd978039ac Merge pull request #635 from just-bank/engine-fixes
Various engine fixes
2014-05-23 14:09:00 +02:00
Thomas Fischer
c850d60a4f Merge pull request #621 from BeamNG/glsl_shadergen
Update GLSL Shadergen.
2014-05-23 07:52:35 +02:00
bank
69dbaf5b85 Rename all member variables to follow the style guidelines (prefixed with the 'm') - class TSShape 2014-05-13 14:08:42 +04:00
Daniel Buckmaster
1702573b78 Merge pull request #612 from GarageGames/platform-type-consistency
Platform type consistency
2014-05-10 11:40:40 +10:00
Daniel Buckmaster
a42c92391a Merge pull request #601 from BeamNG/rename_GFXTextureProfile_None
Rename enum GFXTextureProfile::None for avoid conficts on Linux.
2014-05-10 11:01:18 +10:00
bank
5c986f755a Fix: Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type.
We now shift the 64-bit value, which is now treated correctly.
2014-05-06 15:39:24 +04:00