Commit graph

192 commits

Author SHA1 Message Date
Areloch cedbd387d9 Updating BaseGame to work with PBR, and a PBR example module 2019-05-08 01:27:51 -05:00
AzaezelX 57ee1882fa strip out unused pixspecular to cut down on sources of confusion 2019-05-05 20:10:14 -05:00
AzaezelX ae752a04e8 remed out stray code cleanups, added more remmed out code for referencing the way defered calculates bbminmax (as a percentage of the probes actual scale so folks can just copypaste most times) 2019-05-05 18:30:40 -05:00
Areloch bd170b5abe WIP of forward probe scoring. 2019-05-03 00:03:58 -05:00
Areloch 4e557aec83 Added fetch for BRDF texture for forward rendering use, re-enabled brdf logic in the lighting shader and got the probe arrays properly sampling into forward as well.
TODO: core::rendering pref on the BRDF texture instead of hardcode path, add best-pick logic for forward probes and double-check ogl forward is playing nice.
2019-05-02 00:05:12 -05:00
Areloch 65fb8bc5f3 Ongoing fiddling with correcting the forward render behavior. 2019-04-29 00:07:38 -05:00
Areloch 6db975e81c random testing bits trying to isolate remaining forward issues. 2019-04-28 18:32:23 -05:00
AzaezelX 404cb929c1 we likely don't want to be overwriting that set of cubemap array registers for every forward lit object instance 2019-04-26 13:33:28 -05:00
AzaezelX b5436b6cb7 tweaked the updating behavior in the probe manager so calling updateProbes just flags a ProbesDirty bool, which is used to kick the update of the static parameters when the bin's render() is called
that way if multiple probes get updated at once, we don't hit the update loop for each one, which is obviously silly
also fixed the 'probes' cubemaps aren't ready until you nudge them'
turns out when we were setting out global var which we used for the irradiance and prefilter cubemap paths, it was being set AFTER the probes got loaded
so it was using an invalid path to look up the cubemaps
-@areloch
2019-04-22 15:39:55 -05:00
AzaezelX d034ea2be8 no point in resetting effectiveprobecount or mipcount in the compute4probes method. the latter is going to remain a fixed global var to support the cubemap arrays while the latter isn't even used by forward lit (though it likely should be, rather than trying to cook up 2 bound vectors) 2019-04-16 11:47:21 -05:00
AzaezelX a0d1a076d5 Merge branch 'PBR_ProbeArrayForward' into PBR_ProbeArrayGLWIP
# Conflicts:
#	Engine/source/renderInstance/renderProbeMgr.cpp
2019-04-16 09:34:01 -05:00
Areloch 000c7b2263 GL work 2019-04-15 23:11:18 -05:00
AzaezelX 0cd8948fcf stray var killoffs 2019-04-10 17:44:54 -05:00
AzaezelX 15ca6eabb4 cleanup duplicate var, and constructor-init skylight shaderconsts 2019-04-10 12:54:46 -05:00
Areloch c025760422 Majority of forward work. Some state/register count issues and further testing required.
Also requires proper binding of forward probe values, as well as scoring probes for forward selection.
2019-04-07 23:57:05 -05:00
Areloch afb5a589c3 Cleanup/consolidation of shader logic. moved the common methods over to lighting.hlsl
Did all the setup work to feed data for forward probestuffs, just have to rewrite the shaderFeature to replicate the regular probe array logic.
2019-04-03 00:13:58 -05:00
Azaezel 5703618dc0 shift bbminmax to relative when sent to the gpu so folks can stick to realworld values 2019-03-26 06:48:56 -05:00
Areloch e2b194182c Undid debug work, shifted logic over entirely to utilize the updateTexture methods. Refactored probe init'ing so they'll load correctly without nudging, properly sequestered skylights from the probe array and updated the shader to contain az's changes as well as skylight and probe array changes. 2019-03-25 23:17:53 -05:00
Areloch 1627cbabe6 ongoing WIP to sort out init'ing issues as well as correcting values so the probes actually correctly update data into the arrays
Additional sanity checks on the updateTexture calls added by timmy
2019-03-25 00:06:08 -05:00
Areloch 26471aaa77 WIP of timmy's changes merged in. Not properly initializing the probes/array slots just yet. 2019-03-24 18:18:44 -05:00
Azaezel ba8948a5b1 hook up attenuation value. todo: sort networkjing properly 2019-03-21 23:47:01 -05:00
Azaezel df6b7f3351 put probe.boxmax/min code back as it was prior to merge. still having that /4 oddness. 2019-03-20 07:38:14 -05:00
Azaezel 04a6130df8 sync correction 2019-03-18 04:09:34 -05:00
Azaezel caf73ea84f Merge branch 'PBR_ProbeArrayWIP' of https://github.com/Areloch/Torque3D into PBR_ProbeArrayWIP
# Conflicts:
#	Templates/Full/game/shaders/common/lighting/advanced/reflectionProbeArrayP.hlsl
2019-03-18 00:18:49 -05:00
Areloch 2bf67f7fa5 Corrections to make it use the correct transform, as well as passing along the scale as our extents in the bbMax.
Adjusts the box influence logic to try the bsf method.
2019-03-18 00:14:06 -05:00
Azaezel edcdd21379 suggested alterations to the probe.worldToLocal math feeding and usage (and a divnull safety for attenuation) 2019-03-17 20:14:58 -05:00
Areloch 70d85d2241 Begun hook-in of skylight into array
Reworked the reflection reference offset/scale behavior to re-integrate into the editor interface via button(and work)
Hid irrelevent fields from given probe types.
Filter out editPosOffset and bake button fields from being saved to avoid weird loading behavior
2019-03-02 04:48:07 -06:00
Areloch 2903aaeea0 WIP of the rewrite of blend/projection to follow BSF's math approach. 2019-02-22 08:12:03 -06:00
Azaezel c1bf59bf07 destructor code+ removed a crash-causing redundancy in onRemove 2019-02-20 16:59:58 -06:00
Azaezel 309d518249 scale reflection properly 2019-02-19 09:38:34 -06:00
Azaezel 5bce2d0904 seperated offset from position (we pass the net to the shader for use in the reflection box), and added a scalar (also only used in the reflection box). maked both as probeRef to denote reflection parameters. 2019-02-19 08:58:02 -06:00
Areloch 87e9d3edbd Correct stateblock settings to display probes more correctly without crushing other forward elements. 2019-02-18 00:43:21 -06:00
Areloch b754c022ba Corrected the blending logic somewhat, added visualization modes for spec/diffuse probe influences, attenuation and contribution. 2019-02-17 03:47:40 -06:00
Areloch 788e265477 Finished current cleanup/reorg.
Temporarily disabled logic for forward render of probes to avoid data mangle. TODO: fix up forward once deferred math is locked in
Split probe modes out into distinct environmental probe objects
Removed the probes from tracking their own baked cubemap file paths and instead have a pref store it
Removed old probe shaders and materials that aren't used now.
Fixed mLastConst memory leak by removing nono line.
2019-02-14 00:35:22 -06:00
Areloch 58e3349286 Further cleanup, proper hook-in of CubeReflector for bake capture.
Shifted update of probe data to be triggered by probe changes.
Pack probes into the data arrays forward-first instead of keeping strict indicies.
todo: move bake to probeManager, clean up old/commented code, remove old probeMaterial stuff
2019-02-13 16:56:28 -06:00
Areloch 050f1e226a WIP of adjusting the reflection probe's bake to utilize the ReflectionManager and CubeReflector instead of duplicating the capture code. 2019-02-13 00:37:50 -06:00
Areloch fd8840ff53 Updated the PostFX ability to setShaderConsts and cubetextures for probes 2019-02-12 01:10:30 -06:00
Areloch 64db2b1d15 Ongoing PostFX org rework. 2019-02-11 00:17:53 -06:00
Areloch b221b312d2 Org rework and postFX-setup WIP 2019-02-08 01:35:35 -06:00
Azaezel 72acec0a3f set the alignedarray sizes to maxprobes, reguardless of actual probe count 2019-02-07 09:55:52 -06:00
Azaezel f031ee9e39 duplication cleanups 2019-02-07 09:46:54 -06:00
Azaezel 0caac1a28c cut down on some of that per-frame allocation via prepping our vector 'registers' during the constructor 2019-02-07 09:34:23 -06:00
Azaezel 4aa371cea2 remove push_back uses in favor of consistent [i], fill probe data with defaults before overriding to ensure no garbage data is getting referenced. 2019-02-07 08:05:39 -06:00
Azaezel 7837576de7 conversionwork courtessy of jeff. seeems float3f aligned arrays were nonfuncntional, so shifts a few over to float4s 2019-02-06 10:59:36 -06:00
Areloch 847d58a967 Progress in getting array data to comply. 2019-02-02 23:28:51 -06:00
Azaezel 2eb58e4cb7 portwork from jeff to use farFrustumQuad for the vertex shader 2019-01-31 13:00:52 -06:00
Areloch b03e7a79b7 Broke it down to work with a single probe for confirmation of general math and behavior. 2019-01-31 11:44:09 -06:00
Areloch 3efbdbf9e1 Shifts the verts used to match the fullscreen quad setup of vector light, utilizing FarFrustuQuadVerts 2019-01-30 13:52:59 -06:00
Azaezel 26ee0d986f reference cleanups:
1) kill off extraneous cubemap and irradiancecubemap source-to-shader variable ties
2) use the cubemap arrays (renderdoc for instance doesn't list them as being input at all if they're never used)
3) use the vert file
2019-01-30 06:29:39 -06:00
Azaezel 1dfd130d85 explicitly bound the namedtexttargets to input slots. shifted brdf slot on up to 3 (from 5) to cluster flat vs array entries. though it does not appear at time of writing that that is in fact binding... 2019-01-28 22:10:57 -06:00
Azaezel 7a8dd96808 should only need to set the brdf texture the once 2019-01-28 01:36:17 -06:00
Azaezel 1607f58bc4 typofix for bbMinArray, cubemap array lookups for irradiance and spec 2019-01-28 00:31:01 -06:00
Areloch 2abdef7459 Collapse the ProbeManager into RenderProbeMgr to simplify the probe management/rendering behavior(as the game sim doesn't require simple access to probe data, unlike lights) 2019-01-26 02:05:18 -06:00
Azaezel 26a89882c7 tracks wether or not a cubemap has been fully intitialised (as well as defautls for other shared entries). skips out including an uninitialized cuebmap in probe array (inthoery. in practice, need to root arround a bit more) 2019-01-22 02:03:14 -06:00
Areloch 5b7e2edb66 WIP hook-in of the cubemap array.
Also inversed probe transforms to make them correct.
2019-01-21 01:50:13 -06:00
Areloch c0e8b047f5 Shifted the rest of the probe render code to hook into the array'd uniforms, made the reflection probe shader definition refer to the array shader. 2019-01-19 00:31:42 -06:00
Azaezel 4d3d800051 skylights do actually have a position. 0,0,0. so we can include those without messing with things. and we'll want to sum/count for blending purposes down the line. not render over each other 2019-01-08 11:16:05 -06:00
Areloch f110158654 Probe Array WIP 2019-01-07 20:34:19 -06:00
Azaezel 47c36ff59d THIS IS AN ABOMINATION UNTO THE CODEBASE AND SHOULD BE REMOVED THE SECOND WE CAN SORT OUT WHAT THE HECK IS GOING ON WITH THAT QSORT
stops flickering by itterating through the probe list twice. once looking for the skylight, then doing the rest
2018-11-28 18:12:12 -06:00
Azaezel 65ab39a2d2 cast to pointer to pointer, not just pointer. (confused yet?) 2018-11-27 08:28:33 -06:00
Azaezel 2c1a5f5647 qsort compilation, though still not quite correct 2018-11-25 12:35:35 -06:00
Tim Barnes 9e65e940d0 lighting single buffer 2018-11-21 15:53:02 +10:00
Areloch c4a4fe5304 Implemented registration of probes to avoid rendering all probes when unneeded. 2018-11-19 01:18:09 -06:00
Tim Barnes 9a39afa0eb reflection probe updates 2018-10-28 20:42:26 +10:00
Azaezel 86e5fe2adf removed redundant cleartarget, added clearcolorattachment 4, tagged gbuffer slots 2018-10-25 20:03:28 -05:00
Azaezel 8fadf880a3 Merge branch 'PBR_Bins_Reordered' of https://github.com/Areloch/Torque3D into PBR_PR
# Conflicts:
#	Engine/source/gfx/D3D11/gfxD3D11Device.cpp
#	Engine/source/renderInstance/renderDeferredMgr.h
2018-10-25 14:30:12 -05:00
Areloch e72f04648a Adjusts the lightbin manager to be a regular bin, and shifts ownership of both lighting targets to the deferred manager. Probes now render ahead of lights to make the additive order jive.
Also reordered the probe targets used so they match lights for consistency.
2018-10-24 23:43:12 -05:00
Azaezel a5cad08ba6 Merge branch 'PBR_PR' of https://github.com/rextimmy/Torque3D into PBR_PR 2018-10-24 20:48:45 -05:00
Azaezel 83ef5db910 work on getting render bin ordering correct 2018-10-24 18:27:43 -05:00
Tim Barnes ad4c115e00 clear gbuffer from code and not from a shader 2018-10-24 18:58:46 +10:00
Areloch 57f8549abe Shifted to the static-list arrangement for probe instance tracking to help performance as well as drastically streamline the data submission/material instance flow for probe rendering. 2018-10-07 17:32:23 -05:00
Areloch 9e88e9feca Getting the GL side up-to-date to match. 2018-10-06 17:50:15 -05:00
Areloch f31445751f Updates and fixes to probe and lighting logic. 2018-09-17 01:52:18 -05:00
Areloch b19a4b22c8 Implementation of reflection and skylight probes.
Moves lighting math to the diffuse/specular two-channel logic.
2018-09-16 22:15:07 -05:00
Areloch b4a1d18f42 Core implementation of Physical Based Rendering. 2018-09-15 20:19:57 -05:00
Areloch 39f86d8c30 asdasd 2017-10-26 17:06:27 -05:00
Areloch 9a5700addc Handler binding on a scene level working 2017-10-19 15:34:57 -05:00
Areloch 7219899287 Working on shader const binding 2017-10-17 08:48:31 -05:00
Areloch 70c154c7d3 Implement of the shader consts binding. 2017-10-10 15:54:54 -05:00
Areloch 25686ed4be Implementation of sRGB image support. Overhauls the linearization setup to utilize the sRGB image types, as well as refactors the use of ColorF and ColorI to be properly internally consistent. ColorIs are used only for front-facing/editing/UI settings, and ColorFs, now renamed to LinearColorF to reduce confusion of purpose, are used for color info in the engine itself. This avoids confusing and expensive conversions back and forth between types and avoids botches with linearity. Majority work done by @rextimmy 2017-06-23 11:36:20 -05:00
Areloch adb875cb54 Conflict resolution with devhead.
Cleaned up a few remaining d3d9 references in the cmake file.
2017-06-01 23:54:44 -05:00
Areloch 75580a1126 Merge pull request #2009 from Areloch/Prepass_Deferred_Remainder
Catches the remaining prepass to deferred changes on the engine side.
2017-05-30 23:43:09 -05:00
Areloch edd1e0a270 Removes Direct3D9 functionality. 2017-05-28 16:51:31 -05:00
Areloch a345c47f92 Fixes a redundant flag test 2017-05-15 01:04:06 -05:00
Areloch ec3806bb0a Catches the remaining prepass to deferred changes on the engine side. 2017-05-14 18:28:17 -05:00
Areloch 124ecb2fe0 Merge pull request #1984 from FooBarbarians/fix-1912
Reordering initialization methods #1912
2017-04-26 01:11:51 -05:00
Masquara 15f67015d3 Reordering initialization methods #1912 2017-04-19 14:02:45 -04:00
Areloch af8fbf0e3a Goes and replaces the references/names that use Prepass to be Deferred, since we're actually using deferred. 2017-04-11 00:23:14 -05:00
Areloch ac19e0e84c Merge pull request #1928 from lukaspj/particle-manager-lmactivate-cleanup
Cleanup when deactivating light manager instead of reinitializing
2017-01-25 21:23:36 -06:00
Thomas Dickerson 6963d35145 Merge branch 'development' into stringTableEmptyString 2017-01-24 12:35:34 -05:00
Anis 16baa4d51a Merge pull request #1929 from lukaspj/renderpasmanager-initpersistfields
Make RenderPassManager call Parent::InitPersistFields
2017-01-16 15:56:41 +01:00
Areloch 598756f134 Merge pull request #1921 from Azaezel/lostLast
address #1914
2017-01-15 23:35:08 -06:00
LukasPJ f50d46dffc Cleanup when deactivating light manager instead of reinitializing 2017-01-15 23:23:55 +01:00
LukasPJ 2029e3eb22 Make RenderPassManager call Parent::InitPersistFields 2017-01-15 23:22:46 +01:00
Thomas "elfprince13" Dickerson bcc5459818 whitespace 2017-01-11 23:34:46 -05:00
Azaezel bfa2b5e963 adress #1914 2017-01-10 08:02:08 -06:00
Azaezel c57b1a8b70 clang reports: unclear || + && and &+| mixes. 2016-10-14 17:26:13 -05:00
James Urquhart 3496c549b5 Hardware Skinning Support
- Supports GL, D3D9 & D3D11
- Extends vertex formats & shadergen to support blend indices and weights
- Adds basic support for using 4x3 matrices for shader constants
- Supports software fallback
2016-08-21 01:43:30 +01:00
Areloch 6a40b8bb84 Merge pull request #1559 from rextimmy/dx11_clean
Direct3D11 Support
2016-03-29 00:51:23 -05:00
Anis e0133384e0 Merge pull request #1552 from Azaezel/aLovelyGlow
should actually let HDR have a say for glows.
2016-03-21 19:31:21 +01:00