bug fix, sorry, mikeeusa... but make dotproduct*scale actually behave the intended way.

In existing shaders, replace

dotProduct2scale ( x y z min max )

by

dotProduct2scale ( x y z max 0 )

because that's what the old code actually caused


git-svn-id: svn://svn.icculus.org/netradiant/trunk@139 61c419a2-8eb2-4b30-bcec-8cead039b335
This commit is contained in:
divverent 2008-12-10 15:21:33 +00:00
parent 75284d96b8
commit 17a441b49d

View File

@ -100,7 +100,7 @@ void ColorMod( colorMod_t *cm, int numVerts, bspDrawVert_t *drawVerts )
case CM_COLOR_DOT_PRODUCT_SCALE: case CM_COLOR_DOT_PRODUCT_SCALE:
c = DotProduct( dv->normal, cm2->data ); c = DotProduct( dv->normal, cm2->data );
c = cm2->data[4] + c * (cm2->data[5] - cm2->data[4]); c = (c - cm2->data[3]) / (cm2->data[4] - cm2->data[3]);
VectorSet( mult, c, c, c ); VectorSet( mult, c, c, c );
break; break;
@ -110,7 +110,7 @@ void ColorMod( colorMod_t *cm, int numVerts, bspDrawVert_t *drawVerts )
case CM_ALPHA_DOT_PRODUCT_SCALE: case CM_ALPHA_DOT_PRODUCT_SCALE:
c = DotProduct( dv->normal, cm2->data ); c = DotProduct( dv->normal, cm2->data );
c = cm2->data[4] + c * (cm2->data[5] - cm2->data[4]); c = (c - cm2->data[3]) / (cm2->data[4] - cm2->data[3]);
mult[ 3 ] = c; mult[ 3 ] = c;
break; break;
@ -123,7 +123,7 @@ void ColorMod( colorMod_t *cm, int numVerts, bspDrawVert_t *drawVerts )
case CM_COLOR_DOT_PRODUCT_2_SCALE: case CM_COLOR_DOT_PRODUCT_2_SCALE:
c = DotProduct( dv->normal, cm2->data ); c = DotProduct( dv->normal, cm2->data );
c *= c; c *= c;
c = (c - cm2->data[4]) / (cm2->data[5] - cm2->data[4]); c = (c - cm2->data[3]) / (cm2->data[4] - cm2->data[3]);
VectorSet( mult, c, c, c ); VectorSet( mult, c, c, c );
break; break;
@ -135,7 +135,7 @@ void ColorMod( colorMod_t *cm, int numVerts, bspDrawVert_t *drawVerts )
case CM_ALPHA_DOT_PRODUCT_2_SCALE: case CM_ALPHA_DOT_PRODUCT_2_SCALE:
c = DotProduct( dv->normal, cm2->data ); c = DotProduct( dv->normal, cm2->data );
c *= c; c *= c;
c = (c - cm2->data[4]) / (cm2->data[5] - cm2->data[4]); c = (c - cm2->data[3]) / (cm2->data[4] - cm2->data[3]);
mult[ 3 ] = c; mult[ 3 ] = c;
break; break;
@ -1776,7 +1776,7 @@ static void ParseShaderFile( const char *filename )
else if( !Q_stricmp( token, "dotProductScale" ) ) else if( !Q_stricmp( token, "dotProductScale" ) )
{ {
cm->type = CM_COLOR_DOT_PRODUCT_SCALE + alpha; cm->type = CM_COLOR_DOT_PRODUCT_SCALE + alpha;
Parse1DMatrixAppend( shaderText, 3, cm->data ); Parse1DMatrixAppend( shaderText, 5, cm->data );
} }
/* dotProduct2 ( X Y Z ) */ /* dotProduct2 ( X Y Z ) */