]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - shader_hlsl.h
remove PRECACHE_PIC_NOCLAMP because it currently has no chance to work
[xonotic/darkplaces.git] / shader_hlsl.h
index d09307cfcf57e671e6f6a2c61fecd2cb607533f1..8e9ee06405cc3f3e2def9e9b553b12096fa57337 100644 (file)
 "      float i;\n"
 "      // distance-based LOD\n"
 "#ifdef USEOFFSETMAPPING_LOD\n"
-"      float LODFactor = min(1.0, OffsetMapping_LodDistance / EyeVectorFogDepth.z);\n"
-"      mediump vec4 ScaleSteps = float4(OffsetMapping_ScaleSteps.x, OffsetMapping_ScaleSteps.y * LODFactor, OffsetMapping_ScaleSteps.z / LODFactor, OffsetMapping_ScaleSteps.w * LODFactor);\n"
+"      //float LODFactor = min(1.0, OffsetMapping_LodDistance / EyeVectorFogDepth.z);\n"
+"      //float4 ScaleSteps = float4(OffsetMapping_ScaleSteps.x, OffsetMapping_ScaleSteps.y * LODFactor, OffsetMapping_ScaleSteps.z / LODFactor, OffsetMapping_ScaleSteps.w * LODFactor);\n"
+"      float GuessLODFactor = min(1.0, OffsetMapping_LodDistance / EyeVectorFogDepth.z);\n"
+"#ifdef USEOFFSETMAPPING_RELIEFMAPPING\n"
+"      // stupid workaround because 1-step and 2-step reliefmapping is void\n"
+"      float LODSteps = max(3.0, ceil(GuessLODFactor * OffsetMapping_ScaleSteps.y));\n"
+"#else\n"
+"      float LODSteps = ceil(GuessLODFactor * OffsetMapping_ScaleSteps.y);\n"
+"#endif\n"
+"      float LODFactor = LODSteps / OffsetMapping_ScaleSteps.y;\n"
+"      float4 ScaleSteps = float4(OffsetMapping_ScaleSteps.x, LODSteps, 1.0 / LODSteps, OffsetMapping_ScaleSteps.w * LODFactor);\n"
 "#else\n"
 "      #define ScaleSteps OffsetMapping_ScaleSteps\n"
 "#endif\n"