diff --git a/src/engine/renderer/gl_shader.cpp b/src/engine/renderer/gl_shader.cpp index ca637ff625..a4825e8729 100644 --- a/src/engine/renderer/gl_shader.cpp +++ b/src/engine/renderer/gl_shader.cpp @@ -694,7 +694,6 @@ std::string GLShaderManager::BuildGPUShaderText( Str::StringRef mainShaderNa AddDefine( env, "r_AmbientScale", r_ambientScale->value ); AddDefine( env, "r_SpecularScale", r_specularScale->value ); - AddDefine( env, "r_NormalScale", r_normalScale->value ); AddDefine( env, "r_zNear", r_znear->value ); AddDefine( env, "M_PI", static_cast( M_PI ) ); diff --git a/src/engine/renderer/glsl_source/reliefMapping_fp.glsl b/src/engine/renderer/glsl_source/reliefMapping_fp.glsl index db8c355dc0..64950ee3d4 100644 --- a/src/engine/renderer/glsl_source/reliefMapping_fp.glsl +++ b/src/engine/renderer/glsl_source/reliefMapping_fp.glsl @@ -68,10 +68,6 @@ vec3 NormalInTangentSpace(vec2 texNormal) { normal *= u_NormalScale; } - -#if defined(r_NormalScale) - normal.z *= r_NormalScale; -#endif #else // !r_normalMapping normal = vec3(0.5, 0.5, 1.0); #endif // !r_normalMapping diff --git a/src/engine/renderer/tr_shade.cpp b/src/engine/renderer/tr_shade.cpp index ad8d840231..a6e73d60e9 100644 --- a/src/engine/renderer/tr_shade.cpp +++ b/src/engine/renderer/tr_shade.cpp @@ -598,6 +598,12 @@ void SetNormalScale( shaderStage_t *pStage, vec3_t normalScale) normalScale[ 1 ] *= pStage->normalScale[ 1 ]; normalScale[ 2 ] *= pStage->normalScale[ 2 ]; } + + // never multiply normal Z by zero, it's wrong + if ( r_normalScale->integer ) + { + normalScale[ 2 ] *= r_normalScale->integer; + } } // *INDENT-ON*