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
case CM_COLOR_DOT_PRODUCT_SCALE:
c = DotProduct( dv->normal, cm2->data );
case CM_COLOR_DOT_PRODUCT_SCALE:
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 );
break;
VectorSet( mult, c, c, c );
break;
case CM_ALPHA_DOT_PRODUCT_SCALE:
c = DotProduct( dv->normal, cm2->data );
case CM_ALPHA_DOT_PRODUCT_SCALE:
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]);
case CM_COLOR_DOT_PRODUCT_2_SCALE:
c = DotProduct( dv->normal, cm2->data );
c *= c;
case CM_COLOR_DOT_PRODUCT_2_SCALE:
c = DotProduct( dv->normal, cm2->data );
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 );
break;
VectorSet( mult, c, c, c );
break;
case CM_ALPHA_DOT_PRODUCT_2_SCALE:
c = DotProduct( dv->normal, cm2->data );
c *= c;
case CM_ALPHA_DOT_PRODUCT_2_SCALE:
c = DotProduct( dv->normal, cm2->data );
c *= c;
- c = (c - cm2->data[4]) / (cm2->data[5] - cm2->data[4]);
+ c = (c - cm2->data[3]) / (cm2->data[4] - cm2->data[3]);
else if( !Q_stricmp( token, "dotProductScale" ) )
{
cm->type = CM_COLOR_DOT_PRODUCT_SCALE + alpha;
else if( !Q_stricmp( token, "dotProductScale" ) )
{
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 ) */