Commit graph

3608 commits

Author SHA1 Message Date
AzaezelX
d2a01ece03 gl conversionwork - forward lit variant. do note, crashs with
`Engine\source\gfx\gfxDevice.cpp(837,0): {Fatal} - GFXDevice::setTexture - out of range stage! -1>16` though the shaders themselves are now in a compling state (ostensibly)
2019-04-28 06:24:19 -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
d766348867 1) bumped bytesPerTexel on up to 8 and got rid of the explicit fillin
2) fed glTexSubImage3D GL_RGBA instead of a second GFXGLTextureType[mFormat]. this tells it what order colors come in, not what size
3)for safeties sake, skipped out on updatetexture if the fed cubemap isn't initialized yet
2019-04-26 13:32:23 -05:00
Areloch
175f0eebb7 ongoing WIP of openGL cubemap arrays.
Got the initialization of the arrays to work, but currently fill the supplied cubemaps with flat 1 values(effectively filling with garbage) as sampling from the cubemap to feed to the array leads to memory/heap corruption.
2019-04-26 01:57:07 -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
427154f6e1 specify lod (mip) 0 for the brdf texture 2019-04-18 19:31:33 -05:00
AzaezelX
525f7254e4 specify samplerstates for all input textures to resolve odd 'edgeing' effect on skylights 2019-04-18 19:30:50 -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
028f97c5ec cleanups 2019-04-16 09:36:00 -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
9597014bc2 resource count and type sync with the computeForwardProbes call-insertion for shadergen. probly going to need to cook up a cubearray type 2019-04-11 12:31:15 -05:00
AzaezelX
7108c8cc64 use the right recreation when lacking a composite map (still need to do up matinfo flags) 2019-04-11 12:30:03 -05:00
AzaezelX
29e211f064 removed extraneous finalcolor set mangling specular input 2019-04-10 17:47:56 -05:00
AzaezelX
d2ed2555c9 typofix+ *add* computeForwardProbes to replicate the stateblock used in deferred 2019-04-10 17:46:42 -05:00
AzaezelX
0cd8948fcf stray var killoffs 2019-04-10 17:44:54 -05:00
AzaezelX
8118f42411 leverage the macros for a bit more legibility 2019-04-10 14:14:10 -05:00
AzaezelX
ed385ff342 conform some of the "specularColor" entries (TODO: matinfo flags, like emissive/glow ect) 2019-04-10 12:56:20 -05:00
AzaezelX
15ca6eabb4 cleanup duplicate var, and constructor-init skylight shaderconsts 2019-04-10 12:54:46 -05:00
AzaezelX
68f47d6041 defaults for diffusecolor, specularcolor (reminder todo: shift that to composite) and normal for createForwardSurface 2019-04-10 11:48:22 -05:00
AzaezelX
b9c2db28e4 enhanced stage check 2019-04-10 11:43:45 -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
27a97fd273 remove struct ProbeData in favor of passing an ID along to various methods. one way to solve the 'halts for 30 seconds' compilation flaw, though can't escape the notion we're overlooking something specific to release mode, given it doesn't take nearly so long to compile the shader in debug... 2019-03-29 15:23:52 -05:00
Azaezel
552d0e4f4b not even using this method 2019-03-29 01:15:24 -05:00
Azaezel
a31c584687 method sig cleanup 2019-03-29 01:13:42 -05:00
Azaezel
0bc9d8023b typofix 2019-03-29 00:55:42 -05:00
Azaezel
837348d92f 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-29 00:52:31 -05:00
Azaezel
6f82b6c264 properly determine probehits via sub-zero values form attenuation returns, skip out on blendings entirely when determining we're only applying 1 or fewer probes to a pixel. apply alpha subtraction in either case in keeping with the countdown notion. 2019-03-27 10:25:09 -05:00
Areloch
29660ce58b Ongoing tweaks to shaders to puzzle out good blending behavior.
Also tried optimization by shifting all the brdf samples to a single one for the final add-up.
2019-03-27 00:50:24 -05:00
Azaezel
1d36cf05b0 cleanups and perf: only need to subtract the alpha post-blending, not pre and post, contribution>1 shouldn't happen, so max(result,0) suffices, and no need for a for-all-probes-loop if we already know ya only got one probe hitting the pixel under examination. 2019-03-26 12:41:20 -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
Azaezel
903efc7cfd 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-26 01:06:59 -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
Azaezel
fdb4c5c964 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-25 01:21:00 -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
Azaezel
f01c41a899 cleanups. don't really want to be multiplying the color itsself by contribution ammount 2019-03-24 19:28:51 -05:00
Azaezel
2c1a786e23 Revert "refactor: shift probe to probe blending logic itsself on out to it's own method to make thatg end easeier to deal with in isolation. (though does still depend on a bit of upstream calculation in the form of tracking how many probes hit a given pixel, and 'how hard' as it wetre from the attenuation calcs,"
This reverts commit 466914e97f.
2019-03-24 18:53:02 -05:00
Azaezel
52e946405b do not need to account for blenFacSum for output. it's a straight overwrite of results. 2019-03-24 18:41:02 -05:00
Azaezel
3af1129e75 refactor: shift probe to probe blending logic itsself on out to it's own method to make thatg end easeier to deal with in isolation. (though does still depend on a bit of upstream calculation in the form of tracking how many probes hit a given pixel, and 'how hard' as it wetre from the attenuation calcs, 2019-03-24 18:38:34 -05:00
Azaezel
de8b267780 was improperly accounting for attenaution. needs a reversal for atten = 0 to be full unblended application fo a given projection. 2019-03-24 18:38:25 -05:00
Azaezel
b935b7b19f from tim: no need for mip for the diffuse contribution. the prefilter handles that 2019-03-24 18:38:14 -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
003c79132e simplification 2019-03-20 08:38:48 -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
306bfb4718 defineBoxSpaceInfluence drastically simplified. please hook probeattenuationvalue up to the proper probe inputs. also need to peg down exactly why we needed to feed a baseVal = 0.25 instead of a proper 1.0 unit to avoid the thing casting beyond the defined bounds. 2019-03-19 11:28:52 -05:00
Azaezel
3aac1421cc getDistBoxToPoint max, not length nets us hard edges instea of drounded, float3 extents = probe.boxMax; isn't neded, can use unit space for that and put box min/max back to controlling the reflected boxe's scale. divnull safety 2019-03-18 17:07:43 -05:00
Azaezel
04a6130df8 sync correction 2019-03-18 04:09:34 -05:00
Azaezel
c615d3e822 git being a butt with language files. again. 2019-03-18 03:41:44 -05:00