From df6b7f3351988577311bed72d29b7742a89ad0ae Mon Sep 17 00:00:00 2001 From: Azaezel Date: Wed, 20 Mar 2019 07:38:14 -0500 Subject: [PATCH] put probe.boxmax/min code back as it was prior to merge. still having that /4 oddness. --- Engine/source/renderInstance/renderProbeMgr.cpp | 2 +- .../common/lighting/advanced/reflectionProbeArrayP.hlsl | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Engine/source/renderInstance/renderProbeMgr.cpp b/Engine/source/renderInstance/renderProbeMgr.cpp index d53793107..f27ad4a97 100644 --- a/Engine/source/renderInstance/renderProbeMgr.cpp +++ b/Engine/source/renderInstance/renderProbeMgr.cpp @@ -346,7 +346,7 @@ void RenderProbeMgr::_setupStaticParameters() probeWorldToObjData[mEffectiveProbeCount] = curEntry.getTransform(); Point3F bbMin = refPos - curEntry.mProbeRefScale/2; - Point3F bbMax = curEntry.mExtents/4; + Point3F bbMax = refPos + curEntry.mProbeRefScale/2; probeBBMinData[mEffectiveProbeCount] = Point4F(bbMin.x, bbMin.y, bbMin.z, 0); probeBBMaxData[mEffectiveProbeCount] = Point4F(bbMax.x, bbMax.y, bbMax.z, 0); diff --git a/Templates/Full/game/shaders/common/lighting/advanced/reflectionProbeArrayP.hlsl b/Templates/Full/game/shaders/common/lighting/advanced/reflectionProbeArrayP.hlsl index 5e7f33e57..99fc1b80d 100644 --- a/Templates/Full/game/shaders/common/lighting/advanced/reflectionProbeArrayP.hlsl +++ b/Templates/Full/game/shaders/common/lighting/advanced/reflectionProbeArrayP.hlsl @@ -86,12 +86,9 @@ float3 boxProject(Surface surface, ProbeData probe) float3 RayLS = mul(probe.worldToLocal, float4(surface.R,0.0)).xyz; float3 PositionLS = mul( probe.worldToLocal, float4(surface.P,1.0)).xyz; - //float3 invRayLS = rcp(RayLS); - float3 unit = float3(1,1,1); - float3 plane1vec = (unit - PositionLS) / RayLS; - float3 plane2vec = (-unit - PositionLS) / RayLS; - //float3 plane1vec = invRayLS - PositionLS * RayLS; - //float3 plane2vec = -invRayLS - PositionLS * RayLS; + float3 unit = probe.boxMax-probe.boxMin; + float3 plane1vec = (unit/2 - PositionLS) / RayLS; + float3 plane2vec = (-unit/2 - PositionLS) / RayLS; float3 furthestPlane = max(plane1vec, plane2vec); float dist = min(min(furthestPlane.x, furthestPlane.y), furthestPlane.z); float3 posonbox = surface.P + surface.R * dist;