Commit graph

65 commits

Author SHA1 Message Date
Azaezel 23c4b52e1f courtessy @Lopuska: opengl occlusion query fix 2016-01-18 00:28:09 -06:00
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