]> git.rm.cloudns.org Git - xonotic/netradiant.git/commitdiff
minimap: -boost = contrast boost (like in darkplaces)
authordivverent <divverent@61c419a2-8eb2-4b30-bcec-8cead039b335>
Mon, 27 Apr 2009 17:20:32 +0000 (17:20 +0000)
committerdivverent <divverent@61c419a2-8eb2-4b30-bcec-8cead039b335>
Mon, 27 Apr 2009 17:20:32 +0000 (17:20 +0000)
git-svn-id: svn://svn.icculus.org/netradiant/trunk@348 61c419a2-8eb2-4b30-bcec-8cead039b335

tools/quake3/q3map2/main.c

index 057a549ace85e1787d9a9d88fd0193793182f92c..d7d77538ac23329bf24478b658ad4a2479a57188 100644 (file)
@@ -75,6 +75,7 @@ typedef struct minimap_s
        float *sample_offsets;
        float sharpen_boxmult;
        float sharpen_centermult;
+       float boost;
        float *data1f;
        float *sharpendata1f;
        vec3_t mins, size;
@@ -291,6 +292,17 @@ static void MiniMapSharpen(int y)
        }
 }
 
+static void MiniMapContrastBoost(int y)
+{
+       int x;
+       float *q = &minimap.data1f[y * minimap.width];
+       for(x = 0; x < minimap.width; ++x)
+       {
+               *q = *q * minimap.boost / ((minimap.boost - 1) * *q + 1);
+               ++q;
+       }
+}
+
 void MiniMapMakeMinsMaxs(vec3_t mins_in, vec3_t maxs_in, float border, qboolean keepaspect)
 {
        vec3_t mins, maxs, extend;
@@ -567,6 +579,7 @@ int MiniMapBSPMain( int argc, char **argv )
 
        minimap.samples = 1;
        minimap.sample_offsets = NULL;
+       minimap.boost = 1.0;
 
        /* process arguments */
        for( i = 1; i < (argc - 1); i++ )
@@ -650,6 +663,12 @@ int MiniMapBSPMain( int argc, char **argv )
                        mode = MINIMAP_MODE_WHITE;
                        Sys_Printf( "Writing as white alpha image\n" );
                }
+               else if( !strcmp( argv[ i ],  "-boost" ) )
+               {
+                       minimap.boost = atof(argv[i + 1]);
+                       i++;
+                       Sys_Printf( "Contrast boost set to %f\n", minimap.boost );
+               }
        }
 
        MiniMapMakeMinsMaxs(mins, maxs, border, keepaspect);
@@ -697,6 +716,12 @@ int MiniMapBSPMain( int argc, char **argv )
                }
        }
 
+       if(minimap.boost != 1.0)
+       {
+               Sys_Printf( "\n--- MiniMapContrastBoost (%d) ---\n", minimap.height );
+               RunThreadsOnIndividual(minimap.height, qtrue, MiniMapContrastBoost);
+       }
+
        if(minimap.sharpendata1f)
        {
                Sys_Printf( "\n--- MiniMapSharpen (%d) ---\n", minimap.height );