From 8d1e7c5afdc9c1b3e492497b0a7690ba65a3f056 Mon Sep 17 00:00:00 2001 From: Robert Beckebans Date: Fri, 23 Apr 2021 00:36:14 +0200 Subject: [PATCH] Lowered irradiance probe resolution to ( 16 + 2 )^2 --- .../builtin/debug/lightgrid.ps.hlsl | 2 +- .../lighting/ambient_lightgrid_IBL.ps.hlsl | 2 +- neo/renderer/RenderCommon.h | 2 +- neo/renderer/RenderProgs_embedded.h | 510 +++++++++--------- neo/renderer/RenderWorld_lightgrid.cpp | 14 +- 5 files changed, 270 insertions(+), 260 deletions(-) diff --git a/base/renderprogs/builtin/debug/lightgrid.ps.hlsl b/base/renderprogs/builtin/debug/lightgrid.ps.hlsl index 2733321c..0689db74 100644 --- a/base/renderprogs/builtin/debug/lightgrid.ps.hlsl +++ b/base/renderprogs/builtin/debug/lightgrid.ps.hlsl @@ -108,7 +108,7 @@ void main( PS_IN fragment, out PS_OUT result ) // offset by one pixel border bleed size for linear filtering #if 1 - float2 octCoordNormalizedToTextureDimensions = ( normalizedOctCoordZeroOne * ( 32.0 / ( 34.0 * 1.0 ) ) ); + float2 octCoordNormalizedToTextureDimensions = ( normalizedOctCoordZeroOne * ( 16.0 / 18.0 ) ); float2 probeTopLeftPosition; probeTopLeftPosition.x = ( gridCoord[0] * gridStep[0] + gridCoord[2] * gridStep[1] ) * 2.0 + 1.0; diff --git a/base/renderprogs/builtin/lighting/ambient_lightgrid_IBL.ps.hlsl b/base/renderprogs/builtin/lighting/ambient_lightgrid_IBL.ps.hlsl index 7987cade..a8e77824 100644 --- a/base/renderprogs/builtin/lighting/ambient_lightgrid_IBL.ps.hlsl +++ b/base/renderprogs/builtin/lighting/ambient_lightgrid_IBL.ps.hlsl @@ -333,7 +333,7 @@ void main( PS_IN fragment, out PS_OUT result ) // offset by one pixel border bleed size for linear filtering #if 1 - float2 octCoordNormalizedToTextureDimensions = ( ( normalizedOctCoordZeroOne + atlasOffset ) * ( 32.0 / ( 34.0 * 1.0 ) ) ); + float2 octCoordNormalizedToTextureDimensions = ( ( normalizedOctCoordZeroOne + atlasOffset ) * ( 16.0 / 18.0 ) ); float2 probeTopLeftPosition; probeTopLeftPosition.x = ( gridCoord2[0] * gridStep[0] + gridCoord2[2] * gridStep[1] ) * 2.0 + 1.0; diff --git a/neo/renderer/RenderCommon.h b/neo/renderer/RenderCommon.h index f96f1656..4c5a947e 100644 --- a/neo/renderer/RenderCommon.h +++ b/neo/renderer/RenderCommon.h @@ -513,7 +513,7 @@ struct calcEnvprobeParms_t -static const int LIGHTGRID_IRRADIANCE_SIZE = ( 16 * 2 ) + 2; +static const int LIGHTGRID_IRRADIANCE_SIZE = ( 16 * 1 ) + 2; struct calcLightGridPointParms_t { diff --git a/neo/renderer/RenderProgs_embedded.h b/neo/renderer/RenderProgs_embedded.h index f5678b9e..f41bf7f8 100644 --- a/neo/renderer/RenderProgs_embedded.h +++ b/neo/renderer/RenderProgs_embedded.h @@ -475,9 +475,9 @@ static const cgShaderDef_t cg_renderprogs[] = " return color;\n" "}\n" "\n" - + }, - + { "renderprogs/skinning.inc.hlsl", "/*\n" @@ -558,9 +558,9 @@ static const cgShaderDef_t cg_renderprogs[] = "result.position.y = dot4( modelPosition, rpMVPmatrixY );\n" "result.position.z = dot4( modelPosition, rpMVPmatrixZ );\n" "result.position.w = dot4( modelPosition, rpMVPmatrixW );\n" - + }, - + { "renderprogs/builtin/post/SMAA.inc.hlsl", "/**\n" @@ -2011,9 +2011,9 @@ static const cgShaderDef_t cg_renderprogs[] = "//-----------------------------------------------------------------------------\n" "#endif // SMAA_INCLUDE_PS\n" "\n" - + }, - + { "renderprogs/BRDF.inc.hlsl", "/*\n" @@ -2179,9 +2179,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" "\n" "\n" - + }, - + { "renderprogs/builtin/debug/debug_shadowmap.ps.hlsl", "/*\n" @@ -2239,9 +2239,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = texture( samp0, tc );// * rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/debug/debug_shadowmap.vs.hlsl", "/*\n" @@ -2309,9 +2309,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.texcoord0.y = dot4( vertex.texcoord.xy, rpTextureMatrixT );\n" " }\n" "}\n" - + }, - + { "renderprogs/builtin/debug/shadowDebug.ps.hlsl", "/*\n" @@ -2357,9 +2357,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/debug/shadowDebug.vs.hlsl", "/*\n" @@ -2413,9 +2413,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.z = dot4( vPos, rpMVPmatrixZ );\n" " result.position.w = dot4( vPos, rpMVPmatrixW );\n" "}\n" - + }, - + { "renderprogs/builtin/debug/shadowDebug_skinned.ps.hlsl", "/*\n" @@ -2461,9 +2461,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/debug/shadowDebug_skinned.vs.hlsl", "/*\n" @@ -2562,9 +2562,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.z = dot4( vPos, rpMVPmatrixZ );\n" " result.position.w = dot4( vPos, rpMVPmatrixW );\n" "}\n" - + }, - + { "renderprogs/builtin/debug/octahedron.ps.hlsl", "/*\n" @@ -2642,9 +2642,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = float4( envMap.xyz, 1.0f ) * fragment.color * 1.0;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/debug/octahedron.vs.hlsl", "/*\n" @@ -2768,9 +2768,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = sRGBAToLinearRGBA( rpColor );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/debug/lightgrid.ps.hlsl", "/*\n" @@ -2883,7 +2883,7 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " // offset by one pixel border bleed size for linear filtering\n" "#if 1\n" - " float2 octCoordNormalizedToTextureDimensions = ( normalizedOctCoordZeroOne * ( 32.0 / ( 34.0 * 1.0 ) ) );\n" + " float2 octCoordNormalizedToTextureDimensions = ( normalizedOctCoordZeroOne * ( 16.0 / 18.0 ) );\n" "\n" " float2 probeTopLeftPosition;\n" " probeTopLeftPosition.x = ( gridCoord[0] * gridStep[0] + gridCoord[2] * gridStep[1] ) * 2.0 + 1.0;\n" @@ -2899,9 +2899,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = float4( envMap.xyz, 1.0f ) * 1.0 * fragment.color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/debug/lightgrid.vs.hlsl", "/*\n" @@ -3031,9 +3031,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = sRGBAToLinearRGBA( rpColor );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/fog/blendLight.ps.hlsl", "/*\n" @@ -3096,9 +3096,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = c;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/fog/blendLight.vs.hlsl", "/*\n" @@ -3165,9 +3165,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.texcoord1.y = 0.5;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/fog/fog.ps.hlsl", "/*\n" @@ -3231,9 +3231,9 @@ static const cgShaderDef_t cg_renderprogs[] = "}\n" "\n" "\n" - + }, - + { "renderprogs/builtin/fog/fog.vs.hlsl", "/*\n" @@ -3297,9 +3297,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.texcoord1.y = dot4( vertex.position, rpTexGen1T );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/fog/fog_skinned.ps.hlsl", "/*\n" @@ -3363,9 +3363,9 @@ static const cgShaderDef_t cg_renderprogs[] = "}\n" "\n" "\n" - + }, - + { "renderprogs/builtin/fog/fog_skinned.vs.hlsl", "/*\n" @@ -3472,9 +3472,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.texcoord1.y = dot4( modelPosition, rpTexGen1T );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/bumpyenvironment.ps.hlsl", "/*\n" @@ -3557,9 +3557,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = float4( sRGBToLinearRGB( envMap.xyz ), 1.0f ) * fragment.color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/bumpyenvironment.vs.hlsl", "/*\n" @@ -3646,9 +3646,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/legacy/bumpyenvironment_skinned.ps.hlsl", "/*\n" @@ -3732,9 +3732,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = float4( sRGBToLinearRGB( envMap.xyz ), 1.0f ) * fragment.color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/bumpyenvironment_skinned.vs.hlsl", "/*\n" @@ -3879,9 +3879,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/legacy/environment.ps.hlsl", "/*\n" @@ -3945,9 +3945,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = float4( sRGBToLinearRGB( envMap.xyz ), 1.0f ) * fragment.color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/environment.vs.hlsl", "/*\n" @@ -4014,9 +4014,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = sRGBAToLinearRGBA( rpColor );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/environment_skinned.ps.hlsl", "/*\n" @@ -4080,9 +4080,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = float4( sRGBToLinearRGB( envMap.xyz ), 1.0f ) * fragment.color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/environment_skinned.vs.hlsl", "/*\n" @@ -4197,9 +4197,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = rpColor;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/skybox.ps.hlsl", "/*\n" @@ -4252,9 +4252,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = sRGBAToLinearRGBA( texCUBE( samp0, fragment.texcoord0 ) ) * fragment.color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/skybox.vs.hlsl", "/*\n" @@ -4316,9 +4316,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/wobblesky.ps.hlsl", "/*\n" @@ -4371,9 +4371,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = sRGBAToLinearRGBA( texCUBE( samp0, fragment.texcoord0 ) ) * fragment.color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/legacy/wobblesky.vs.hlsl", "/*\n" @@ -4438,9 +4438,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/lighting/ambient_lighting.ps.hlsl", "/*\n" @@ -4546,9 +4546,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.w = fragment.color.a;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/lighting/ambient_lighting.vs.hlsl", "/*\n" @@ -4754,9 +4754,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "#endif\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/ambient_lighting_IBL.ps.hlsl", "/*\n" @@ -5047,9 +5047,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.w = fragment.color.a;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/lighting/ambient_lighting_IBL.vs.hlsl", "/*\n" @@ -5252,9 +5252,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "#endif\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/ambient_lightgrid_IBL.ps.hlsl", "/*\n" @@ -5592,7 +5592,7 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " // offset by one pixel border bleed size for linear filtering\n" "#if 1\n" - " float2 octCoordNormalizedToTextureDimensions = ( ( normalizedOctCoordZeroOne + atlasOffset ) * ( 32.0 / ( 34.0 * 1.0 ) ) );\n" + " float2 octCoordNormalizedToTextureDimensions = ( ( normalizedOctCoordZeroOne + atlasOffset ) * ( 16.0 / 18.0 ) );\n" "\n" " float2 probeTopLeftPosition;\n" " probeTopLeftPosition.x = ( gridCoord2[0] * gridStep[0] + gridCoord2[2] * gridStep[1] ) * 2.0 + 1.0;\n" @@ -5679,9 +5679,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.w = fragment.color.a;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/lighting/ambient_lightgrid_IBL.vs.hlsl", "/*\n" @@ -5884,9 +5884,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "#endif\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/interaction.ps.hlsl", "/*\n" @@ -6058,9 +6058,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.a = 1.0;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/lighting/interaction.vs.hlsl", "/*\n" @@ -6262,9 +6262,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "#endif\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/interactionAmbient.ps.hlsl", "/*\n" @@ -6372,9 +6372,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.w = 1.0;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/lighting/interactionAmbient.vs.hlsl", "/*\n" @@ -6494,9 +6494,9 @@ static const cgShaderDef_t cg_renderprogs[] = " //# for 1.0-color : env[16] = -1, env[17] = 1\n" " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/interactionAmbient_skinned.ps.hlsl", "/*\n" @@ -6604,9 +6604,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.w = 1.0;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/lighting/interactionAmbient_skinned.vs.hlsl", "/*\n" @@ -6785,9 +6785,9 @@ static const cgShaderDef_t cg_renderprogs[] = " //# for 1.0-color : env[16] = -1, env[17] = 1\n" " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/interactionSM.ps.hlsl", "/*\n" @@ -7249,9 +7249,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.a = 1.0;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/lighting/interactionSM.vs.hlsl", "/*\n" @@ -7476,9 +7476,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "#endif\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/shadow.ps.hlsl", "/*\n" @@ -7524,9 +7524,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/shadow.vs.hlsl", "/*\n" @@ -7580,9 +7580,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.z = dot4( vPos, rpMVPmatrixZ );\n" " result.position.w = dot4( vPos, rpMVPmatrixW );\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/shadow_skinned.ps.hlsl", "/*\n" @@ -7628,9 +7628,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/lighting/shadow_skinned.vs.hlsl", "/*\n" @@ -7729,9 +7729,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.z = dot4( vPos, rpMVPmatrixZ );\n" " result.position.w = dot4( vPos, rpMVPmatrixW );\n" "}\n" - + }, - + { "renderprogs/builtin/post/fxaa.ps.hlsl", "/*\n" @@ -7848,9 +7848,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = colorSample;\n" "}\n" - + }, - + { "renderprogs/builtin/post/fxaa.vs.hlsl", "/*\n" @@ -7904,9 +7904,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position = vertex.position;\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/post/hdr_glare_chromatic.ps.hlsl", "/*\n" @@ -8041,9 +8041,9 @@ static const cgShaderDef_t cg_renderprogs[] = " //result.color = float4( sumColor / sumSpectrum, 1.0 );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/post/hdr_glare_chromatic.vs.hlsl", "/*\n" @@ -8102,9 +8102,9 @@ static const cgShaderDef_t cg_renderprogs[] = " //result.position.w = dot4( vertex.position, rpMVPmatrixW );\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/post/motionBlur.ps.hlsl", "/*\n" @@ -8208,9 +8208,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = float4( sum * invScale, 1.0 );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/post/motionBlur.vs.hlsl", "/*\n" @@ -8261,9 +8261,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position = vertex.position;\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/post/postprocess.ps.hlsl", "/*\n" @@ -8891,9 +8891,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/post/postprocess.vs.hlsl", "/*\n" @@ -8952,9 +8952,9 @@ static const cgShaderDef_t cg_renderprogs[] = " //result.position.w = dot4( vertex.position, rpMVPmatrixW );\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/post/screen.ps.hlsl", "/*\n" @@ -9012,9 +9012,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/post/screen.vs.hlsl", "/*\n" @@ -9073,9 +9073,9 @@ static const cgShaderDef_t cg_renderprogs[] = " //result.position.w = dot4( vertex.position, rpMVPmatrixW );\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/post/SMAA_blending_weight_calc.ps.hlsl", "/*\n" @@ -9164,9 +9164,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/post/SMAA_blending_weight_calc.vs.hlsl", "/*\n" @@ -9244,9 +9244,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.texcoord4.st = pixcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/post/SMAA_edge_detection.ps.hlsl", "/*\n" @@ -9326,9 +9326,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/post/SMAA_edge_detection.vs.hlsl", "/*\n" @@ -9403,9 +9403,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.texcoord2 = offset[1];\n" " result.texcoord3 = offset[2];\n" "}\n" - + }, - + { "renderprogs/builtin/post/SMAA_final.ps.hlsl", "/*\n" @@ -9483,9 +9483,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = color;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/post/SMAA_final.vs.hlsl", "/*\n" @@ -9553,9 +9553,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.texcoord1 = offset;\n" "}\n" - + }, - + { "renderprogs/builtin/post/tonemap.ps.hlsl", "/*\n" @@ -9829,9 +9829,9 @@ static const cgShaderDef_t cg_renderprogs[] = "#endif\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/post/tonemap.vs.hlsl", "/*\n" @@ -9890,9 +9890,9 @@ static const cgShaderDef_t cg_renderprogs[] = " //result.position.w = dot4( vertex.position, rpMVPmatrixW );\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/SSAO/AmbientOcclusion_AO.ps.hlsl", "/**\n" @@ -10368,9 +10368,9 @@ static const cgShaderDef_t cg_renderprogs[] = "#endif\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/SSAO/AmbientOcclusion_AO.vs.hlsl", "/*\n" @@ -10423,9 +10423,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position = vertex.position;\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/SSAO/AmbientOcclusion_blur.ps.hlsl", "/**\n" @@ -10821,9 +10821,9 @@ static const cgShaderDef_t cg_renderprogs[] = "#endif\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/SSAO/AmbientOcclusion_blur.vs.hlsl", "/*\n" @@ -10876,9 +10876,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position = vertex.position;\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/SSAO/AmbientOcclusion_minify.ps.hlsl", "/**\n" @@ -10965,9 +10965,9 @@ static const cgShaderDef_t cg_renderprogs[] = "#endif\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/SSAO/AmbientOcclusion_minify.vs.hlsl", "/*\n" @@ -11020,9 +11020,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position = vertex.position;\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/SSGI/DeepGBufferRadiosity_radiosity.ps.hlsl", "\n" @@ -11584,9 +11584,9 @@ static const cgShaderDef_t cg_renderprogs[] = "#endif\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/SSGI/DeepGBufferRadiosity_radiosity.vs.hlsl", "/*\n" @@ -11639,9 +11639,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position = vertex.position;\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/SSGI/DeepGBufferRadiosity_blur.ps.hlsl", "/**\n" @@ -12024,9 +12024,9 @@ static const cgShaderDef_t cg_renderprogs[] = " blurResult = sum / ( totalWeight + epsilon );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/SSGI/DeepGBufferRadiosity_blur.vs.hlsl", "/*\n" @@ -12079,9 +12079,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position = vertex.position;\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/video/bink.ps.hlsl", "/*\n" @@ -12151,9 +12151,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = sRGBAToLinearRGBA( color );\n" "}\n" - + }, - + { "renderprogs/builtin/video/bink.vs.hlsl", "/*\n" @@ -12211,9 +12211,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/video/bink_gui.ps.hlsl", "/*\n" @@ -12286,9 +12286,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.xyz = color.xyz * color.w;\n" " result.color.w = color.w;\n" "}\n" - + }, - + { "renderprogs/builtin/video/bink_gui.vs.hlsl", "/*\n" @@ -12353,9 +12353,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = swizzleColor( vertex.color );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/VR/stereoDeGhost.ps.hlsl", "/*\n" @@ -12401,9 +12401,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/VR/stereoDeGhost.vs.hlsl", "/*\n" @@ -12458,9 +12458,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.z = dot4( vertex.position, rpMVPmatrixZ );\n" " result.position.w = dot4( vertex.position, rpMVPmatrixW );\n" "}\n" - + }, - + { "renderprogs/builtin/VR/stereoInterlace.ps.hlsl", "/*\n" @@ -12519,9 +12519,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = tex2D( samp1, vec2( fragment.texcoord0 ) );\n" " }\n" "}\n" - + }, - + { "renderprogs/builtin/VR/stereoInterlace.vs.hlsl", "/*\n" @@ -12576,9 +12576,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/VR/stereoWarp.ps.hlsl", "/*\n" @@ -12660,9 +12660,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = tex2D( samp0, warped );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/VR/stereoWarp.vs.hlsl", "/*\n" @@ -12716,9 +12716,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.w = dot4( vertex.position, rpMVPmatrixW );\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/builtin/color.ps.hlsl", "/*\n" @@ -12764,9 +12764,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/color.vs.hlsl", "/*\n" @@ -12871,9 +12871,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.w = dot4( vertex.position, rpMVPmatrixW );\n" "#endif\n" "}\n" - + }, - + { "renderprogs/builtin/depth.ps.hlsl", "/*\n" @@ -12919,9 +12919,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = float4( 0.0, 0.0, 0.0, 1.0 );\n" "}\n" - + }, - + { "renderprogs/builtin/depth.vs.hlsl", "/*\n" @@ -12972,9 +12972,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.z = dot4( vertex.position, rpMVPmatrixZ );\n" " result.position.w = dot4( vertex.position, rpMVPmatrixW );\n" "}\n" - + }, - + { "renderprogs/builtin/depth_skinned.ps.hlsl", "/*\n" @@ -13020,9 +13020,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = float4( 0.0, 0.0, 0.0, 1.0 );\n" "}\n" - + }, - + { "renderprogs/builtin/depth_skinned.vs.hlsl", "/*\n" @@ -13118,9 +13118,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.position.z = dot4( modelPosition, rpMVPmatrixZ );\n" " result.position.w = dot4( modelPosition, rpMVPmatrixW );\n" "}\n" - + }, - + { "renderprogs/builtin/gbuffer.ps.hlsl", "/*\n" @@ -13209,9 +13209,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.a = 1.0;\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/gbuffer.vs.hlsl", "/*\n" @@ -13397,9 +13397,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" "#endif\n" "}\n" - + }, - + { "renderprogs/builtin/gui.ps.hlsl", "/*\n" @@ -13454,9 +13454,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color.xyz = color.xyz * color.w;\n" " result.color.w = color.w;\n" "}\n" - + }, - + { "renderprogs/builtin/gui.vs.hlsl", "/*\n" @@ -13521,9 +13521,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = swizzleColor( vertex.color );\n" "}\n" "\n" - + }, - + { "renderprogs/builtin/texture.ps.hlsl", "/*\n" @@ -13576,9 +13576,9 @@ static const cgShaderDef_t cg_renderprogs[] = " //result.color = textureLod( samp0, fragment.texcoord0, 2.0 ) * rpColor;\n" " //result.color = float4( 0.0, 1.0, 0.0, 1.0 ) * rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/texture.vs.hlsl", "/*\n" @@ -13646,9 +13646,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.texcoord0.y = dot4( vertex.texcoord.xy, rpTextureMatrixT );\n" " }\n" "}\n" - + }, - + { "renderprogs/builtin/texture_color.ps.hlsl", "/*\n" @@ -13702,9 +13702,9 @@ static const cgShaderDef_t cg_renderprogs[] = " clip( color.a - rpAlphaTest.x );\n" " result.color = sRGBAToLinearRGBA( color );\n" "}\n" - + }, - + { "renderprogs/builtin/texture_color.vs.hlsl", "/*\n" @@ -13776,9 +13776,9 @@ static const cgShaderDef_t cg_renderprogs[] = " float4 vertexColor = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" " result.color = vertexColor * rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/texture_color_skinned.ps.hlsl", "/*\n" @@ -13832,9 +13832,9 @@ static const cgShaderDef_t cg_renderprogs[] = " clip( color.a - rpAlphaTest.x );\n" " result.color = sRGBAToLinearRGBA( color );\n" "}\n" - + }, - + { "renderprogs/builtin/texture_color_skinned.vs.hlsl", "/*\n" @@ -13947,9 +13947,9 @@ static const cgShaderDef_t cg_renderprogs[] = " float4 vertexColor = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" " result.color = vertexColor * rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/texture_color_texgen.ps.hlsl", "/*\n" @@ -14009,9 +14009,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = sRGBAToLinearRGBA( texSample ) * fragment.color;\n" "}\n" - + }, - + { "renderprogs/builtin/texture_color_texgen.vs.hlsl", "/*\n" @@ -14084,9 +14084,9 @@ static const cgShaderDef_t cg_renderprogs[] = " float4 vertexColor = ( swizzleColor( vertex.color ) * rpVertexColorModulate ) + rpVertexColorAdd;\n" " result.color = vertexColor * rpColor;\n" "}\n" - + }, - + { "renderprogs/builtin/vertex_color.ps.hlsl", "/*\n" @@ -14139,9 +14139,9 @@ static const cgShaderDef_t cg_renderprogs[] = "{\n" " result.color = sRGBAToLinearRGBA( fragment.color );\n" "}\n" - + }, - + { "renderprogs/builtin/vertex_color.vs.hlsl", "/*\n" @@ -14202,9 +14202,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = swizzleColor( vertex.color );\n" "}\n" - + }, - + { "renderprogs/bloodorb1_capture.ps.hlsl", "/*\n" @@ -14263,9 +14263,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = lerp( accumSample, currentRenderSample, maskSample.a );\n" "}\n" - + }, - + { "renderprogs/bloodorb1_capture.vs.hlsl", "/*\n" @@ -14331,9 +14331,9 @@ static const cgShaderDef_t cg_renderprogs[] = " // pass through texcoords\n" " result.texcoord1 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/bloodorb2_capture.ps.hlsl", "/*\n" @@ -14398,9 +14398,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = lerp( accumSample, currentRenderSample, maskSample.a );\n" "}\n" - + }, - + { "renderprogs/bloodorb2_capture.vs.hlsl", "/*\n" @@ -14476,9 +14476,9 @@ static const cgShaderDef_t cg_renderprogs[] = " // pass through for currentrender\n" " result.texcoord2 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/bloodorb3_capture.ps.hlsl", "/*\n" @@ -14555,9 +14555,9 @@ static const cgShaderDef_t cg_renderprogs[] = " accumColor = lerp( accumColor, currentRenderSample, maskSample.a );\n" " result.color = accumColor;\n" "}\n" - + }, - + { "renderprogs/bloodorb3_capture.vs.hlsl", "/*\n" @@ -14640,9 +14640,9 @@ static const cgShaderDef_t cg_renderprogs[] = " const float4 colorFactor = rpUser2;\n" " result.texcoord4 = colorFactor.xx;\n" "}\n" - + }, - + { "renderprogs/bloodorb_draw.ps.hlsl", "/*\n" @@ -14700,9 +14700,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = lerp( accumSample, currentRenderSample, maskSample.a );\n" "}\n" - + }, - + { "renderprogs/bloodorb_draw.vs.hlsl", "/*\n" @@ -14761,9 +14761,9 @@ static const cgShaderDef_t cg_renderprogs[] = " // pass through texcoords\n" " result.texcoord0 = vertex.texcoord;\n" "}\n" - + }, - + { "renderprogs/colorProcess.ps.hlsl", "/*\n" @@ -14818,9 +14818,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = lerp( src, target, fragment.texcoord0.z );\n" "}\n" "\n" - + }, - + { "renderprogs/colorProcess.vs.hlsl", "/*\n" @@ -14890,9 +14890,9 @@ static const cgShaderDef_t cg_renderprogs[] = "}\n" "\n" "\n" - + }, - + { "renderprogs/enviroSuit.ps.hlsl", "/*\n" @@ -14956,9 +14956,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.color = tex2D( samp0, screenTexCoord );\n" "\n" "}\n" - + }, - + { "renderprogs/enviroSuit.vs.hlsl", "/*\n" @@ -15026,9 +15026,9 @@ static const cgShaderDef_t cg_renderprogs[] = " const float4 deformMagnitude = rpUser1;\n" " result.color = deformMagnitude;\n" "}\n" - + }, - + { "renderprogs/heatHazeWithMask.ps.hlsl", "/*\n" @@ -15101,9 +15101,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = ( tex2D( samp0, screenTexCoord ) );\n" "}\n" - + }, - + { "renderprogs/heatHazeWithMask.vs.hlsl", "/*\n" @@ -15200,9 +15200,9 @@ static const cgShaderDef_t cg_renderprogs[] = " const float4 deformMagnitude = rpUser1;\n" " result.texcoord2 = x * deformMagnitude;\n" "}\n" - + }, - + { "renderprogs/heatHazeWithMaskAndVertex.ps.hlsl", "/*\n" @@ -15277,9 +15277,9 @@ static const cgShaderDef_t cg_renderprogs[] = "\n" " result.color = ( tex2D( samp0, screenTexCoord ) );\n" "}\n" - + }, - + { "renderprogs/heatHazeWithMaskAndVertex.vs.hlsl", "/*\n" @@ -15378,9 +15378,9 @@ static const cgShaderDef_t cg_renderprogs[] = " result.texcoord2 = x * deformMagnitude;\n" " result.color = swizzleColor( vertex.color );\n" "}\n" - + }, - + { "renderprogs/heathaze.ps.hlsl", "/*\n" @@ -15445,9 +15445,9 @@ static const cgShaderDef_t cg_renderprogs[] = " // load the screen render\n" " result.color = ( tex2D( samp0, screenTexCoord.xy ) );\n" "}\n" - + }, - + { "renderprogs/heathaze.vs.hlsl", "/*\n" @@ -15542,9 +15542,9 @@ static const cgShaderDef_t cg_renderprogs[] = " const float4 deformMagnitude = rpUser1;\n" " result.texcoord1 = x * deformMagnitude;\n" "}\n" - + }, - + {0, 0}, - + }; diff --git a/neo/renderer/RenderWorld_lightgrid.cpp b/neo/renderer/RenderWorld_lightgrid.cpp index 60e260b0..760640a0 100644 --- a/neo/renderer/RenderWorld_lightgrid.cpp +++ b/neo/renderer/RenderWorld_lightgrid.cpp @@ -405,8 +405,16 @@ void idRenderWorldLocal::LoadLightGridImages() for( int i = 0; i < numPortalAreas; i++ ) { portalArea_t* area = &portalAreas[i]; - filename.Format( "env/%s/area%i_lightgrid_amb", baseName.c_str(), i ); - area->lightGrid.irradianceImage = globalImages->ImageFromFile( filename, TF_LINEAR, TR_CLAMP, TD_R11G11B10F, CF_2D ); + + if( !area->lightGrid.irradianceImage ) + { + filename.Format( "env/%s/area%i_lightgrid_amb", baseName.c_str(), i ); + area->lightGrid.irradianceImage = globalImages->ImageFromFile( filename, TF_LINEAR, TR_CLAMP, TD_R11G11B10F, CF_2D ); + } + else + { + area->lightGrid.irradianceImage->Reload( false ); + } } } @@ -452,6 +460,8 @@ void idRenderWorldLocal::WriteLightGridsToFile( const char* filename ) void idRenderWorldLocal::WriteLightGrid( idFile* fp, const LightGrid& lightGrid ) { + // TODO write used irradiance resolution + fp->WriteFloatString( "lightGridPoints { /* area = */ %i /* numLightGridPoints = */ %i\n", lightGrid.area, lightGrid.lightGridPoints.Num() ); fp->WriteFloatString( "/* gridMins */ " );