additive. When the color isn't specified, it defaults to white (full\r
reflection). If only one color component is specified, it counts as a grey\r
value.\r
-- dp_refract <reflectmin> <reflectmax> <distort> <r> <g> <b>\r
+- dp_refract <refractmin> <refractmax> <distort> <r> <g> <b>\r
Marks a surface as "water" for r_glsl_water, that is, add a refraction\r
- component too. The reflection amount (see dp_reflect) is at least reflectmin\r
- (when looking straight into it) and at most reflectmax (when looking parallel\r
- to thhe surface). The default distort is multiplied by distort. The color\r
- modulates the refraction component. reflectmin defaults to 0 when unspecified,\r
+ component too. The refraction amount (see dp_reflect) is at most refractmax\r
+ (when looking straight into it) and at least refractmin (when looking parallel\r
+ to the surface). The default distort is multiplied by distort. The color\r
+ modulates the refraction component. refractmin defaults to 0 when unspecified,\r
all others default to 1. If only one color component is specified, it counts\r
as a grey value.\r
if (r_glsl_permutation->loc_ScreenCenterRefractReflect >= 0) qglUniform4fARB(r_glsl_permutation->loc_ScreenCenterRefractReflect, r_waterstate.screencenter[0], r_waterstate.screencenter[1], r_waterstate.screencenter[0], r_waterstate.screencenter[1]);
if (r_glsl_permutation->loc_RefractColor >= 0) qglUniform3fvARB(r_glsl_permutation->loc_RefractColor, 1, rsurface.texture->refractcolor);
if (r_glsl_permutation->loc_ReflectColor >= 0) qglUniform3fvARB(r_glsl_permutation->loc_ReflectColor, 1, rsurface.texture->reflectcolor);
- if (r_glsl_permutation->loc_ReflectFactor >= 0) qglUniform1fARB(r_glsl_permutation->loc_ReflectFactor, rsurface.texture->reflectmax - rsurface.texture->reflectmin);
- if (r_glsl_permutation->loc_ReflectOffset >= 0) qglUniform1fARB(r_glsl_permutation->loc_ReflectOffset, rsurface.texture->reflectmin);
+ if (r_glsl_permutation->loc_ReflectFactor >= 0) qglUniform1fARB(r_glsl_permutation->loc_ReflectFactor, rsurface.texture->refractmax - rsurface.texture->refractmin);
+ if (r_glsl_permutation->loc_ReflectOffset >= 0) qglUniform1fARB(r_glsl_permutation->loc_ReflectOffset, 1 - rsurface.texture->refractmax);
CHECKGLERROR
return permutation;
}
tx->basematerialflags |= MATERIALFLAG_WATERALPHA | MATERIALFLAG_NOSHADOW | MATERIALFLAG_WATERSHADER;
VectorSet(tx->reflectcolor, 1, 1, 1);
VectorSet(tx->refractcolor, 1, 1, 1);
- tx->reflectmin = 0;
- tx->reflectmax = 1;
+ tx->refractmin = 0;
+ tx->refractmax = 1;
tx->refractfactor = 1;
}
tx->basematerialflags |= MATERIALFLAG_WATER | MATERIALFLAG_LIGHTBOTHSIDES | MATERIALFLAG_NOSHADOW;
memset(shader, 0, sizeof(*shader));
VectorSet(shader->reflectcolor, 1, 1, 1);
VectorSet(shader->refractcolor, 1, 1, 1);
- shader->reflectmin = 0;
- shader->reflectmax = 1;
+ shader->refractmin = 0;
+ shader->refractmax = 1;
shader->refractfactor = 1;
strlcpy(shader->name, com_token, sizeof(shader->name));
{
shader->textureflags |= Q3TEXTUREFLAG_WATERSHADER;
if(numparameters >= 2)
- shader->reflectmin = atof(parameter[1]);
+ shader->refractmin = atof(parameter[1]);
if(numparameters >= 3)
- shader->reflectmax = atof(parameter[2]);
+ shader->refractmax = atof(parameter[2]);
if(numparameters >= 4)
shader->refractfactor = atof(parameter[3]);
if(numparameters >= 5)
}
}
memcpy(texture->deforms, shader->deforms, sizeof(texture->deforms));
- texture->reflectmin = shader->reflectmin;
- texture->reflectmax = shader->reflectmax;
+ texture->refractmin = shader->refractmin;
+ texture->refractmax = shader->refractmax;
texture->refractfactor = shader->refractfactor;
VectorCopy(shader->reflectcolor, texture->reflectcolor);
VectorCopy(shader->refractcolor, texture->refractcolor);
q3shaderinfo_deform_t deforms[Q3MAXDEFORMS];
vec3_t reflectcolor, refractcolor;
- float reflectmin; // when refraction is used, minimum amount of reflection (when looking straight down)
- float reflectmax; // when refraction is used, maximum amount of reflection (when looking parallel to water)
+ float refractmin; // when refraction is used, minimum amount of reflection (when looking straight down)
+ float refractmax; // when refraction is used, maximum amount of reflection (when looking parallel to water)
float refractfactor; // amount of refraction distort (1.0 = like the cvar specifies; note that reflection distort is not configurable because that's what the bumpmap should do)
}
q3shaderinfo_t;
// reflection
vec3_t reflectcolor, refractcolor;
- float reflectmin; // when refraction is used, minimum amount of reflection (when looking straight down)
- float reflectmax; // when refraction is used, maximum amount of reflection (when looking parallel to water)
+ float refractmin; // when refraction is used, minimum amount of reflection (when looking straight down)
+ float refractmax; // when refraction is used, maximum amount of reflection (when looking parallel to water)
float refractfactor; // amount of refraction distort (1.0 = like the cvar specifies; note that reflection distort is not configurable because that's what the bumpmap should do)
}
texture_t;