From e04f844240f48360279b9d7f6be9f67f92a47ba8 Mon Sep 17 00:00:00 2001 From: JeffR Date: Sun, 13 Feb 2022 19:24:01 -0600 Subject: [PATCH] Scaling correction to probes in deferred mode to improve parallax adjustment Ensure that probes are masked to be rendered during bake passes so they can contribute during a bake allowing multibakes Adjusted order of the connect data for the forward shaders to fix a mis-port issue --- Engine/source/T3D/objectTypes.h | 2 +- Engine/source/renderInstance/renderProbeMgr.cpp | 2 +- Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp | 2 +- Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Engine/source/T3D/objectTypes.h b/Engine/source/T3D/objectTypes.h index 9044205cd..bd21310fa 100644 --- a/Engine/source/T3D/objectTypes.h +++ b/Engine/source/T3D/objectTypes.h @@ -229,7 +229,7 @@ enum SceneObjectTypeMasks : U32 EnvironmentObjectType ), SKYLIGHT_CAPTURE_TYPEMASK = (EnvironmentObjectType), - REFLECTION_PROBE_CAPTURE_TYPEMASK = (StaticObjectType | StaticShapeObjectType) + REFLECTION_PROBE_CAPTURE_TYPEMASK = (StaticObjectType | StaticShapeObjectType | LightObjectType) }; #endif diff --git a/Engine/source/renderInstance/renderProbeMgr.cpp b/Engine/source/renderInstance/renderProbeMgr.cpp index 268bba5e5..393ad899e 100644 --- a/Engine/source/renderInstance/renderProbeMgr.cpp +++ b/Engine/source/renderInstance/renderProbeMgr.cpp @@ -328,7 +328,7 @@ void RenderProbeMgr::getBestProbes(const Point3F& objPosition, ProbeDataSet* pro MatrixF p2A = curEntry.mProbeInfo->mTransform; probeDataSet->probeWorldToObjArray[i] = p2A; p2A.inverse(); - probeDataSet->refScaleArray[i] = curEntry.mProbeInfo->mProbeRefScale / p2A.getScale(); + probeDataSet->refScaleArray[i] = curEntry.mProbeInfo->mProbeRefScale / (p2A.getScale()*2); Point3F probePos = curEntry.mProbeInfo->mObject->getPosition(); Point3F refPos = probePos + curEntry.mProbeInfo->mProbeRefOffset * probeDataSet->refScaleArray[i].asPoint3F(); diff --git a/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp b/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp index fded366a1..06d146c39 100644 --- a/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp +++ b/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp @@ -2960,9 +2960,9 @@ void ReflectionProbeFeatGLSL::processPix(Vector& componentList MultiLine * meta = new MultiLine; // Now the wsPosition and wsView. + Var *wsPosition = getInWsPosition(componentList); Var *worldToTangent = getInWorldToTangent(componentList); Var *wsNormal = getInWorldNormal(componentList); - Var *wsPosition = getInWsPosition(componentList); Var *wsView = getWsView(wsPosition, meta); //Reflection Probe WIP diff --git a/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp b/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp index a294f5f85..7361e2eaf 100644 --- a/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp +++ b/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp @@ -3038,9 +3038,9 @@ void ReflectionProbeFeatHLSL::processPix(Vector &componentList MultiLine *meta = new MultiLine; // Now the wsPosition and wsView. + Var* wsPosition = getInWsPosition(componentList); Var* worldToTangent = getInWorldToTangent(componentList); Var *wsNormal = getInWorldNormal(componentList); - Var* wsPosition = getInWsPosition(componentList); Var *wsView = getWsView(wsPosition, meta); //Reflection Probe WIP