memset(shader, 0, sizeof(*shader));
VectorSet(shader->reflectcolor, 1, 1, 1);
VectorSet(shader->refractcolor, 1, 1, 1);
- shader->reflectfactor = 1;
+ shader->refractmin = 0;
+ shader->refractmax = 1;
shader->refractfactor = 1;
strlcpy(shader->name, com_token, sizeof(shader->name));
{
shader->textureflags |= Q3TEXTUREFLAG_REFLECTION;
if(numparameters >= 2)
- shader->reflectfactor = atof(parameter[1]);
- if(numparameters >= 5)
- VectorSet(shader->reflectcolor, atof(parameter[2]), atof(parameter[3]), atof(parameter[4]));
+ VectorSet(shader->reflectcolor, atof(parameter[1]), atof(parameter[1]), atof(parameter[1])); // grey
+ if(numparameters >= 4)
+ VectorSet(shader->reflectcolor, atof(parameter[1]), atof(parameter[2]), atof(parameter[3]));
}
else if (!strcasecmp(parameter[0], "dp_refract"))
{
shader->textureflags |= Q3TEXTUREFLAG_WATERSHADER;
if(numparameters >= 2)
- shader->refractfactor = atof(parameter[1]);
+ shader->refractmin = atof(parameter[1]);
+ if(numparameters >= 3)
+ shader->refractmax = atof(parameter[2]);
+ if(numparameters >= 4)
+ shader->refractfactor = atof(parameter[3]);
if(numparameters >= 5)
- VectorSet(shader->refractcolor, atof(parameter[2]), atof(parameter[3]), atof(parameter[4]));
+ VectorSet(shader->refractcolor, atof(parameter[4]), atof(parameter[4]), atof(parameter[4])); // grey
+ if(numparameters >= 7)
+ VectorSet(shader->refractcolor, atof(parameter[4]), atof(parameter[5]), atof(parameter[6]));
}
else if (!strcasecmp(parameter[0], "deformvertexes") && numparameters >= 2)
{
}
}
memcpy(texture->deforms, shader->deforms, sizeof(texture->deforms));
- texture->reflectfactor = shader->reflectfactor;
+ texture->refractmin = shader->refractmin;
+ texture->refractmax = shader->refractmax;
texture->refractfactor = shader->refractfactor;
VectorCopy(shader->reflectcolor, texture->reflectcolor);
VectorCopy(shader->refractcolor, texture->refractcolor);