diff --git a/README.txt b/README.txt index e6059dea..33979412 100644 --- a/README.txt +++ b/README.txt @@ -218,6 +218,22 @@ Fortunately, you can run Steam in Wine to install Doom3 BFG and afterwards copy game data somewhere else to use it with native executables. Winetricks ( http://winetricks.org/ ) makes installing Windows Steam on Linux really easy. +If using the Linux version of Steam, you can open the console (launch steam with -console or try steam://open/console in a web browser) and enter the following: + download_depot 208200 208202 +This will download the base game files to a path similar to (the path cannot be configured): + ~/.steam/root/ubuntu12_32/steamapps/content/app_208200/depot_208202/ +Steam will not provide feedback on the download progress so you will have to watch the folder. +You will also have to run download_depot for your language: + download_depot 208200 + Where is: + English: 208203 + German: 208204 + French: 208205 + Italian: 208206 + Spanish: 208207 + Japanese: 208208 +Combining the contents of both depots will provide the necessary game files for the engine. + Anyway: 1. Install Doom 3 BFG in Steam (Windows version), make sure it's getting diff --git a/base/renderprogs/interactionSM.pixel b/base/renderprogs/interactionSM.pixel index db40f3ac..e261dc06 100644 --- a/base/renderprogs/interactionSM.pixel +++ b/base/renderprogs/interactionSM.pixel @@ -196,8 +196,10 @@ void main( PS_IN fragment, out PS_OUT result ) float bias = 0.001; shadowTexcoord.xyz /= shadowTexcoord.w; - //shadowTexcoord.z = shadowTexcoord.z * 0.9991; - shadowTexcoord.z = shadowTexcoord.z - bias; + + shadowTexcoord.z = shadowTexcoord.z * rpScreenCorrectionFactor.w; + //shadowTexcoord.z = shadowTexcoord.z * 0.999991; + //shadowTexcoord.z = shadowTexcoord.z - bias; shadowTexcoord.w = float(shadowIndex); #if 0 @@ -216,7 +218,7 @@ void main( PS_IN fragment, out PS_OUT result ) float shadow = 0.0; //float stepSize = 1.0 / 16.0; - float numSamples = rpScreenCorrectionFactor.w; + float numSamples = 16; float stepSize = 1.0 / numSamples; float4 jitterTC = ( fragment.position * rpScreenCorrectionFactor ) + rpJitterTexOffset; diff --git a/neo/renderer/RenderProgs_embedded.h b/neo/renderer/RenderProgs_embedded.h index e690693d..cecce404 100644 --- a/neo/renderer/RenderProgs_embedded.h +++ b/neo/renderer/RenderProgs_embedded.h @@ -4389,8 +4389,10 @@ static const cgShaderDef_t cg_renderprogs[] = " float bias = 0.001;\n" " \n" " shadowTexcoord.xyz /= shadowTexcoord.w;\n" - " //shadowTexcoord.z = shadowTexcoord.z * 0.9991;\n" - " shadowTexcoord.z = shadowTexcoord.z - bias;\n" + " \n" + " shadowTexcoord.z = shadowTexcoord.z * rpScreenCorrectionFactor.w;\n" + " //shadowTexcoord.z = shadowTexcoord.z * 0.999991;\n" + " //shadowTexcoord.z = shadowTexcoord.z - bias;\n" " shadowTexcoord.w = float(shadowIndex);\n" "\n" "#if 0\n" @@ -4409,7 +4411,7 @@ static const cgShaderDef_t cg_renderprogs[] = " float shadow = 0.0;\n" " \n" " //float stepSize = 1.0 / 16.0;\n" - " float numSamples = rpScreenCorrectionFactor.w;\n" + " float numSamples = 16;\n" " float stepSize = 1.0 / numSamples;\n" " \n" " float4 jitterTC = ( fragment.position * rpScreenCorrectionFactor ) + rpJitterTexOffset;\n" diff --git a/neo/renderer/RenderSystem_init.cpp b/neo/renderer/RenderSystem_init.cpp index b4f12cba..150ca363 100644 --- a/neo/renderer/RenderSystem_init.cpp +++ b/neo/renderer/RenderSystem_init.cpp @@ -235,6 +235,8 @@ idCVar r_shadowMapLodBias( "r_shadowMapLodBias", "0", CVAR_RENDERER | CVAR_INTEG idCVar r_shadowMapPolygonFactor( "r_shadowMapPolygonFactor", "2", CVAR_RENDERER | CVAR_FLOAT, "polygonOffset factor for drawing shadow buffer" ); idCVar r_shadowMapPolygonOffset( "r_shadowMapPolygonOffset", "3000", CVAR_RENDERER | CVAR_FLOAT, "polygonOffset units for drawing shadow buffer" ); idCVar r_shadowMapOccluderFacing( "r_shadowMapOccluderFacing", "2", CVAR_RENDERER | CVAR_INTEGER, "0 = front faces, 1 = back faces, 2 = twosided" ); +idCVar r_shadowMapRegularDepthBiasScale( "r_shadowMapRegularDepthBiasScale", "0.999", CVAR_RENDERER | CVAR_FLOAT, "shadowmap bias to fight shadow acne for point and spot lights" ); +idCVar r_shadowMapSunDepthBiasScale( "r_shadowMapSunDepthBiasScale", "0.999991", CVAR_RENDERER | CVAR_FLOAT, "shadowmap bias to fight shadow acne for cascaded shadow mapping with parallel lights" ); // RB end const char* fileExten[3] = { "tga", "png", "jpg" }; diff --git a/neo/renderer/tr_backend_draw.cpp b/neo/renderer/tr_backend_draw.cpp index 81a57ea8..83dccf30 100644 --- a/neo/renderer/tr_backend_draw.cpp +++ b/neo/renderer/tr_backend_draw.cpp @@ -1302,7 +1302,7 @@ static void RB_RenderInteractions( const drawSurf_t* surfList, const viewLight_t screenCorrectionParm[0] = 1.0f / ( JITTER_SIZE * shadowMapSamples ) ; screenCorrectionParm[1] = 1.0f / JITTER_SIZE; screenCorrectionParm[2] = 1.0f / shadowMapResolutions[vLight->shadowLOD]; - screenCorrectionParm[3] = shadowMapSamples; + screenCorrectionParm[3] = vLight->parallel ? r_shadowMapSunDepthBiasScale.GetFloat() : r_shadowMapRegularDepthBiasScale.GetFloat(); SetFragmentParm( RENDERPARM_SCREENCORRECTIONFACTOR, screenCorrectionParm ); // rpScreenCorrectionFactor float jitterTexScale[4]; diff --git a/neo/renderer/tr_local.h b/neo/renderer/tr_local.h index 26c0d89d..01b7b5c2 100644 --- a/neo/renderer/tr_local.h +++ b/neo/renderer/tr_local.h @@ -1070,6 +1070,8 @@ extern idCVar r_shadowMapLodBias; extern idCVar r_shadowMapPolygonFactor; extern idCVar r_shadowMapPolygonOffset; extern idCVar r_shadowMapOccluderFacing; +extern idCVar r_shadowMapRegularDepthBiasScale; +extern idCVar r_shadowMapSunDepthBiasScale; // RB end /*