1
0
Fork 0

Merge branch 'ehofman/normal'

This commit is contained in:
Tim Moore 2010-05-06 11:00:01 +02:00
commit ca2afa9e51
2 changed files with 15 additions and 9 deletions

View file

@ -35,11 +35,6 @@ int parse_option(char **args, int n) {
} }
sz = strlen(opt); sz = strlen(opt);
if (!strncmp(opt, "-help", sz)) {
printf("usage:\n normalmap [-c=contrast] [-b=brightness]");
printf(" --t=file [--o=file]\n");
exit(0);
}
if (!strncmp(opt, "-contrast", sz)) { if (!strncmp(opt, "-contrast", sz)) {
contrast = atof(arg); contrast = atof(arg);
return ret; return ret;
@ -58,6 +53,11 @@ int parse_option(char **args, int n) {
normalmap_file = strdup(arg); normalmap_file = strdup(arg);
return ret; return ret;
} }
if (!strncmp(opt, "-help", sz)) {
printf("usage:\n normalmap [-c=contrast] [-b=brightness]");
printf(" --i=file [--o=file]\n\n");
exit(0);
}
return 1; return 1;
} }
@ -71,7 +71,9 @@ int main (int argc, char **argv)
if ( !texture_file ) if ( !texture_file )
{ {
printf("Error: texture file not specified\n"); printf("Error: texture file not specified.\n");
printf("usage:\n normalmap [-c=contrast] [-b=brightness]");
printf(" --i=file [--o=file]\n\n");
return -1; return -1;
} }
@ -79,7 +81,7 @@ int main (int argc, char **argv)
if ( !texture.texture() ) if ( !texture.texture() )
{ {
printf("Error: unable to process input file: %s\n", texture_file); printf("Error: unable to process input file: %s\n", texture_file);
printf(" (%s)\n", texture.err_str()); printf(" (%s)\n\n", texture.err_str());
return -2; return -2;
} }

View file

@ -901,6 +901,7 @@ SGTexture::make_normalmap(float brightness, float contrast) {
int yp1 = (y < (texture_height-1)) ? y+1 : 0; int yp1 = (y < (texture_height-1)) ? y+1 : 0;
int posxp1 = (xp1 + ytw)*num_colors; int posxp1 = (xp1 + ytw)*num_colors;
int posyp1 = (x + yp1*texture_width)*num_colors; int posyp1 = (x + yp1*texture_width)*num_colors;
float fx,fy;
GLubyte c = texture_data[dpos]; GLubyte c = texture_data[dpos];
GLubyte cx1 = texture_data[posxp1]; GLubyte cx1 = texture_data[posxp1];
@ -918,8 +919,11 @@ SGTexture::make_normalmap(float brightness, float contrast) {
map[mpos+3] = a; map[mpos+3] = a;
} }
map[mpos+0] = (128+(cx1-c)/2); fx = asin((c/256.0-cx1/256.0))/1.57079633;
map[mpos+1] = (128+(cy1-c)/2); fy = asin((cy1/256.0-c/256.0))/1.57079633;
map[mpos+0] = (GLuint)(fx*256.0)-128;
map[mpos+1] = (GLuint)(fy*256.0)-128;
map[mpos+2] = 127+int(brightness*128); // 255-c/2; map[mpos+2] = 127+int(brightness*128); // 255-c/2;
mpos += colors; mpos += colors;