diff --git a/Engine/source/renderInstance/renderProbeMgr.cpp b/Engine/source/renderInstance/renderProbeMgr.cpp index 7b9126302..d39048971 100644 --- a/Engine/source/renderInstance/renderProbeMgr.cpp +++ b/Engine/source/renderInstance/renderProbeMgr.cpp @@ -780,8 +780,8 @@ void RenderProbeMgr::render( SceneRenderState *state ) mProbeArrayEffect->setShaderConst("$probeContribColors", contribColors); - mProbeArrayEffect->setShaderConst("$inProbePosArray", mProbeData.probePositionArray); - mProbeArrayEffect->setShaderConst("$inRefPosArray", mProbeData.probeRefPositionArray); + mProbeArrayEffect->setShaderConst("$probePosArray", mProbeData.probePositionArray); + mProbeArrayEffect->setShaderConst("$refPosArray", mProbeData.probeRefPositionArray); mProbeArrayEffect->setShaderConst("$worldToObjArray", mProbeData.probeWorldToObjArray); mProbeArrayEffect->setShaderConst("$refScaleArray", mProbeData.refScaleArray); mProbeArrayEffect->setShaderConst("$probeConfigData", mProbeData.probeConfigArray); diff --git a/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp b/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp index 3c132bf55..69af7ef5c 100644 --- a/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp +++ b/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp @@ -2981,7 +2981,7 @@ void ReflectionProbeFeatGLSL::processPix(Vector& componentList //Reflection Probe WIP U32 MAX_FORWARD_PROBES = 4; - Var * numProbes = new Var("numProbes", "int"); + Var * numProbes = new Var("inNumProbes", "int"); numProbes->uniform = true; numProbes->constSortPos = cspPotentialPrimitive; @@ -2989,7 +2989,7 @@ void ReflectionProbeFeatGLSL::processPix(Vector& componentList cubeMips->uniform = true; cubeMips->constSortPos = cspPotentialPrimitive; - Var * skylightCubemapIdx = new Var("skylightCubemapIdx", "float"); + Var * skylightCubemapIdx = new Var("inSkylightCubemapIdx", "float"); skylightCubemapIdx->uniform = true; skylightCubemapIdx->constSortPos = cspPotentialPrimitive; @@ -3008,12 +3008,12 @@ void ReflectionProbeFeatGLSL::processPix(Vector& componentList refScaleArray->uniform = true; refScaleArray->constSortPos = cspPotentialPrimitive; - Var * probeConfigData = new Var("probeConfigData", "vec4"); + Var * probeConfigData = new Var("inProbeConfigData", "vec4"); probeConfigData->arraySize = MAX_FORWARD_PROBES; probeConfigData->uniform = true; probeConfigData->constSortPos = cspPotentialPrimitive; - Var * worldToObjArray = new Var("worldToObjArray", "mat4"); + Var * worldToObjArray = new Var("inWorldToObjArray", "mat4"); worldToObjArray->arraySize = MAX_FORWARD_PROBES; worldToObjArray->uniform = true; worldToObjArray->constSortPos = cspPotentialPrimitive; @@ -3026,12 +3026,12 @@ void ReflectionProbeFeatGLSL::processPix(Vector& componentList BRDFTexture->sampler = true; BRDFTexture->constNum = Var::getTexUnitNum(); // used as texture unit num here - Var * specularCubemapAR = new Var("specularCubemapAR", "samplerCubeArray"); + Var * specularCubemapAR = new Var("inSpecularCubemapAR", "samplerCubeArray"); specularCubemapAR->uniform = true; specularCubemapAR->sampler = true; specularCubemapAR->constNum = Var::getTexUnitNum(); - Var * irradianceCubemapAR = new Var("irradianceCubemapAR", "samplerCubeArray"); + Var * irradianceCubemapAR = new Var("inIrradianceCubemapAR", "samplerCubeArray"); irradianceCubemapAR->uniform = true; irradianceCubemapAR->sampler = true; irradianceCubemapAR->constNum = Var::getTexUnitNum(); @@ -3078,9 +3078,9 @@ void ReflectionProbeFeatGLSL::setTexData(Material::StageData& stageDat, passData.mSamplerNames[texIndex] = "BRDFTexture"; passData.mTexType[texIndex++] = Material::Standard; // assuming here that it is a scenegraph cubemap - passData.mSamplerNames[texIndex] = "specularCubemapAR"; + passData.mSamplerNames[texIndex] = "inSpecularCubemapAR"; passData.mTexType[texIndex++] = Material::SGCube; - passData.mSamplerNames[texIndex] = "irradianceCubemapAR"; + passData.mSamplerNames[texIndex] = "inIrradianceCubemapAR"; passData.mTexType[texIndex++] = Material::SGCube; } } diff --git a/Engine/source/shaderGen/HLSL/debugVizFeatureHLSL.cpp b/Engine/source/shaderGen/HLSL/debugVizFeatureHLSL.cpp index fe2fdb3af..ff746c076 100644 --- a/Engine/source/shaderGen/HLSL/debugVizFeatureHLSL.cpp +++ b/Engine/source/shaderGen/HLSL/debugVizFeatureHLSL.cpp @@ -135,24 +135,24 @@ void DebugVizHLSL::processPix(Vector& componentList, //Reflection Probe WIP U32 MAX_FORWARD_PROBES = 4; - Var* numProbes = (Var*)LangElement::find("numProbes"); + Var* numProbes = (Var*)LangElement::find("inNumProbes"); Var* cubeMips = (Var*)LangElement::find("cubeMips"); - Var* skylightCubemapIdx = (Var*)LangElement::find("skylightCubemapIdx"); + Var* skylightCubemapIdx = (Var*)LangElement::find("inSkylightCubemapIdx"); Var* inProbePosArray = (Var*)LangElement::find("inProbePosArray"); Var* inRefPosArray = (Var*)LangElement::find("inRefPosArray"); Var* refScaleArray = (Var*)LangElement::find("inRefScale"); - Var* probeConfigData = (Var*)LangElement::find("probeConfigData"); - Var* worldToObjArray = (Var*)LangElement::find("worldToObjArray"); + Var* probeConfigData = (Var*)LangElement::find("inProbeConfigData"); + Var* worldToObjArray = (Var*)LangElement::find("inWorldToObjArray"); Var* BRDFTexture = (Var*)LangElement::find("BRDFTexture"); Var* BRDFTextureTex = (Var*)LangElement::find("texture_BRDFTexture"); - Var* specularCubemapAR = (Var*)LangElement::find("specularCubemapAR"); - Var* specularCubemapARTex = (Var*)LangElement::find("texture_specularCubemapAR"); + Var* specularCubemapAR = (Var*)LangElement::find("inSpecularCubemapAR"); + Var* specularCubemapARTex = (Var*)LangElement::find("texture_inSpecularCubemapAR"); - Var* irradianceCubemapAR = (Var*)LangElement::find("irradianceCubemapAR"); - Var* irradianceCubemapARTex = (Var*)LangElement::find("texture_irradianceCubemapAR"); + Var* irradianceCubemapAR = (Var*)LangElement::find("inIrradianceCubemapAR"); + Var* irradianceCubemapARTex = (Var*)LangElement::find("texture_inIrradianceCubemapAR"); Var* matinfo = (Var*)LangElement::find("ORMConfig"); Var* metalness = (Var*)LangElement::find("metalness"); diff --git a/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp b/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp index 48a20d835..c53e939e0 100644 --- a/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp +++ b/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp @@ -3054,7 +3054,7 @@ void ReflectionProbeFeatHLSL::processPix(Vector &componentList //Reflection Probe WIP U32 MAX_FORWARD_PROBES = 4; - Var *numProbes = new Var("numProbes", "int"); + Var *numProbes = new Var("inNumProbes", "int"); numProbes->uniform = true; numProbes->constSortPos = cspPotentialPrimitive; @@ -3062,7 +3062,7 @@ void ReflectionProbeFeatHLSL::processPix(Vector &componentList cubeMips->uniform = true; cubeMips->constSortPos = cspPotentialPrimitive; - Var * skylightCubemapIdx = new Var("skylightCubemapIdx", "float"); + Var * skylightCubemapIdx = new Var("inSkylightCubemapIdx", "float"); skylightCubemapIdx->uniform = true; skylightCubemapIdx->constSortPos = cspPotentialPrimitive; @@ -3081,12 +3081,12 @@ void ReflectionProbeFeatHLSL::processPix(Vector &componentList refScaleArray->uniform = true; refScaleArray->constSortPos = cspPotentialPrimitive; - Var *probeConfigData = new Var("probeConfigData", "float4"); + Var *probeConfigData = new Var("inProbeConfigData", "float4"); probeConfigData->arraySize = MAX_FORWARD_PROBES; probeConfigData->uniform = true; probeConfigData->constSortPos = cspPotentialPrimitive; - Var *worldToObjArray = new Var("worldToObjArray", "float4x4"); + Var *worldToObjArray = new Var("inWorldToObjArray", "float4x4"); worldToObjArray->arraySize = MAX_FORWARD_PROBES; worldToObjArray->uniform = true; worldToObjArray->constSortPos = cspPotentialPrimitive; @@ -3101,22 +3101,22 @@ void ReflectionProbeFeatHLSL::processPix(Vector &componentList BRDFTextureTex->texture = true; BRDFTextureTex->constNum = BRDFTexture->constNum; - Var *specularCubemapAR = new Var("specularCubemapAR", "SamplerState"); + Var *specularCubemapAR = new Var("inSpecularCubemapAR", "SamplerState"); specularCubemapAR->uniform = true; specularCubemapAR->sampler = true; specularCubemapAR->constNum = Var::getTexUnitNum(); // used as texture unit num here - Var *specularCubemapARTex = new Var("texture_specularCubemapAR", "TextureCubeArray"); + Var *specularCubemapARTex = new Var("texture_inSpecularCubemapAR", "TextureCubeArray"); specularCubemapARTex->uniform = true; specularCubemapARTex->texture = true; specularCubemapARTex->constNum = specularCubemapAR->constNum; - Var *irradianceCubemapAR = new Var("irradianceCubemapAR", "SamplerState"); + Var *irradianceCubemapAR = new Var("inIrradianceCubemapAR", "SamplerState"); irradianceCubemapAR->uniform = true; irradianceCubemapAR->sampler = true; irradianceCubemapAR->constNum = Var::getTexUnitNum(); // used as texture unit num here - Var *irradianceCubemapARTex = new Var("texture_irradianceCubemapAR", "TextureCubeArray"); + Var *irradianceCubemapARTex = new Var("texture_inIrradianceCubemapAR", "TextureCubeArray"); irradianceCubemapARTex->uniform = true; irradianceCubemapARTex->texture = true; irradianceCubemapARTex->constNum = irradianceCubemapAR->constNum; @@ -3171,9 +3171,9 @@ void ReflectionProbeFeatHLSL::setTexData(Material::StageData &stageDat, passData.mSamplerNames[texIndex] = "BRDFTexture"; passData.mTexType[texIndex++] = Material::Standard; // assuming here that it is a scenegraph cubemap - passData.mSamplerNames[texIndex] = "specularCubemapAR"; + passData.mSamplerNames[texIndex] = "inSpecularCubemapAR"; passData.mTexType[texIndex++] = Material::SGCube; - passData.mSamplerNames[texIndex] = "irradianceCubemapAR"; + passData.mSamplerNames[texIndex] = "inIrradianceCubemapAR"; passData.mTexType[texIndex++] = Material::SGCube; } } diff --git a/Engine/source/shaderGen/shaderGenVars.cpp b/Engine/source/shaderGen/shaderGenVars.cpp index 6a933319d..7aec7b82b 100644 --- a/Engine/source/shaderGen/shaderGenVars.cpp +++ b/Engine/source/shaderGen/shaderGenVars.cpp @@ -78,20 +78,21 @@ const String ShaderGenVars::roughness("$roughness"); const String ShaderGenVars::metalness("$metalness"); const String ShaderGenVars::glowMul("$glowMul"); -//Reflection Probes +//Reflection Probes - Forward lit. not to be confused with the deferred handwritten vars +//change to parity once we've got the same arrays used for both routes const String ShaderGenVars::probePosition("$inProbePosArray"); const String ShaderGenVars::probeRefPos("$inRefPosArray"); const String ShaderGenVars::refScale("$inRefScale"); -const String ShaderGenVars::worldToObjArray("$worldToObjArray"); -const String ShaderGenVars::probeConfigData("$probeConfigData"); -const String ShaderGenVars::specularCubemapAR("$specularCubemapAR"); -const String ShaderGenVars::irradianceCubemapAR("$irradianceCubemapAR"); -const String ShaderGenVars::probeCount("$numProbes"); +const String ShaderGenVars::worldToObjArray("inWorldToObjArray"); +const String ShaderGenVars::probeConfigData("$inProbeConfigData"); +const String ShaderGenVars::specularCubemapAR("$inSpecularCubemapAR"); +const String ShaderGenVars::irradianceCubemapAR("$inIrradianceCubemapAR"); +const String ShaderGenVars::probeCount("$inNumProbes"); const String ShaderGenVars::BRDFTextureMap("$BRDFTexture"); //Skylight -const String ShaderGenVars::skylightCubemapIdx("$skylightCubemapIdx"); +const String ShaderGenVars::skylightCubemapIdx("$inSkylightCubemapIdx"); // These are ignored by the D3D layers. const String ShaderGenVars::fogMap("$fogMap"); diff --git a/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl b/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl index 9abc5f3d5..c5ffd6f67 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl +++ b/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl @@ -30,8 +30,8 @@ uniform sampler2D ssaoMask; uniform vec4 rtParams6; #endif -uniform vec4 inProbePosArray[MAX_PROBES]; -uniform vec4 inRefPosArray[MAX_PROBES]; +uniform vec4 probePosArray[MAX_PROBES]; +uniform vec4 refPosArray[MAX_PROBES]; uniform mat4 worldToObjArray[MAX_PROBES]; uniform vec4 refScaleArray[MAX_PROBES]; uniform vec4 probeConfigData[MAX_PROBES]; //r,g,b/mode,radius,atten @@ -92,7 +92,7 @@ void main() } else if (probeConfigData[i].r == 1) //sphere { - contribution[i] = defineSphereSpaceInfluence(surface.P, inProbePosArray[i].xyz, probeConfigData[i].g); + contribution[i] = defineSphereSpaceInfluence(surface.P, probePosArray[i].xyz, probeConfigData[i].g); if (contribution[i]>0.0) probehits++; } @@ -179,7 +179,7 @@ void main() if (contrib > 0.0f) { float cubemapIdx = probeConfigData[i].a; - vec3 dir = boxProject(surface.P, surface.R, worldToObjArray[i], refScaleArray[i].xyz, inRefPosArray[i].xyz); + vec3 dir = boxProject(surface.P, surface.R, worldToObjArray[i], refScaleArray[i].xyz, refPosArray[i].xyz); irradiance += textureLod(irradianceCubemapAR, vec4(dir, cubemapIdx), 0).xyz * contrib; specular += textureLod(specularCubemapAR, vec4(dir, cubemapIdx), lod).xyz * contrib; diff --git a/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/reflectionProbeArrayP.hlsl b/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/reflectionProbeArrayP.hlsl index 36ef1a766..aaff0145b 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/reflectionProbeArrayP.hlsl +++ b/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/reflectionProbeArrayP.hlsl @@ -27,8 +27,8 @@ TORQUE_UNIFORM_SAMPLER2D(ssaoMask, 6); uniform float4 rtParams6; #endif -uniform float4 inProbePosArray[MAX_PROBES]; -uniform float4 inRefPosArray[MAX_PROBES]; +uniform float4 probePosArray[MAX_PROBES]; +uniform float4 refPosArray[MAX_PROBES]; uniform float4x4 worldToObjArray[MAX_PROBES]; uniform float4 refScaleArray[MAX_PROBES]; uniform float4 probeConfigData[MAX_PROBES]; //r,g,b/mode,radius,atten @@ -86,7 +86,7 @@ float4 main(PFXVertToPix IN) : SV_TARGET } else if (probeConfigData[i].r == 1) //sphere { - contribution[i] = defineSphereSpaceInfluence(surface.P, inProbePosArray[i].xyz, probeConfigData[i].g); + contribution[i] = defineSphereSpaceInfluence(surface.P, probePosArray[i].xyz, probeConfigData[i].g); if (contribution[i]>0.0) probehits++; } @@ -171,7 +171,7 @@ float4 main(PFXVertToPix IN) : SV_TARGET if (contrib > 0.0f) { int cubemapIdx = probeConfigData[i].a; - float3 dir = boxProject(surface.P, surface.R, worldToObjArray[i], refScaleArray[i].xyz, inRefPosArray[i].xyz); + float3 dir = boxProject(surface.P, surface.R, worldToObjArray[i], refScaleArray[i].xyz, refPosArray[i].xyz); irradiance += TORQUE_TEXCUBEARRAYLOD(irradianceCubemapAR, dir, cubemapIdx, 0).xyz * contrib; specular += TORQUE_TEXCUBEARRAYLOD(specularCubemapAR, dir, cubemapIdx, lod).xyz * contrib;