}
turb = (surf->flags & SURF_DRAWTURB) && r_waterscroll.value;
- fullbright = (ent->effects & EF_FULLBRIGHT) || (surf->flags & SURF_DRAWFULLBRIGHT) || !surf->samples;
+ fullbright = !(ent->flags & RENDER_LIGHT) || (surf->flags & SURF_DRAWFULLBRIGHT) || !surf->samples;
base = fullbright ? 2.0f : r_ambient.value * (1.0f / 64.0f);
if (surf->flags & SURF_DRAWTURB)
base *= 0.5f;
m.tex[3] = R_GetTexture(texture->skin.glow);
m.texcombinergb[3] = GL_ADD;
}
- if (r_shadow_realtime_world.integer)
- GL_Color(r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, 1);
- else
- GL_Color(1, 1, 1, 1);
+ GL_Color(r_lightmapintensity, r_lightmapintensity, r_lightmapintensity, 1);
while((surf = *surfchain++) != NULL)
{
m.texrgbscale[1] = 2;
m.tex[2] = R_GetTexture(texture->skin.detail);
m.texrgbscale[2] = 2;
- if (r_shadow_realtime_world.integer)
- GL_Color(r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, 1);
- else
- GL_Color(1, 1, 1, 1);
+ GL_Color(r_lightmapintensity, r_lightmapintensity, r_lightmapintensity, 1);
while((surf = *surfchain++) != NULL)
{
m.tex[0] = R_GetTexture(texture->skin.base);
m.tex[1] = R_GetTexture((**surfchain).lightmaptexture);
m.texrgbscale[1] = 2;
- if (r_shadow_realtime_world.integer)
- GL_Color(r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, 1);
- else
- GL_Color(1, 1, 1, 1);
+ GL_Color(r_lightmapintensity, r_lightmapintensity, r_lightmapintensity, 1);
while((surf = *surfchain++) != NULL)
{
if (surf->visframe == r_framecount)
GL_DepthTest(true);
GL_BlendFunc(GL_ONE, GL_ZERO);
m.tex[0] = R_GetTexture(texture->skin.base);
- if (r_shadow_realtime_world.integer)
- GL_Color(r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, 1);
- else
- GL_Color(1, 1, 1, 1);
+ GL_Color(r_lightmapintensity, r_lightmapintensity, r_lightmapintensity, 1);
while((surf = *surfchain++) != NULL)
{
if (surf->visframe == r_framecount)
GL_DepthMask(true);
GL_DepthTest(true);
m.tex[0] = R_GetTexture((**surfchain).lightmaptexture);
- if (r_shadow_realtime_world.integer)
- GL_Color(r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, 1);
- else
- GL_Color(1, 1, 1, 1);
+ GL_Color(r_lightmapintensity, r_lightmapintensity, r_lightmapintensity, 1);
while((surf = *surfchain++) != NULL)
{
if (surf->visframe == r_framecount)
model_t *model = ent->model;
if (!model)
return;
- if (r_dynamic.integer && !r_shadow_realtime_dlight.integer)
+ if (r_dynamic.integer && !r_rtdlight)
R_MarkLights(ent);
for (i = 0;i < model->brushq1.light_styles;i++)
{
}
else
{
- if (ent->effects & EF_FULLBRIGHT || r_fullbright.integer)
+ if (!(ent->flags & RENDER_LIGHT))
{
RSurfShader_OpaqueWall_Pass_BaseTexture(ent, texture, surfchain);
if (r_detailtextures.integer)
else if (ent != &cl_entities[0].render || surface->visframe == r_framecount)
{
t = surface->texinfo->texture->currentframe;
- if (t->flags & SURF_LIGHTMAP && t->rendertype == SURFRENDER_OPAQUE)
+ if (t->flags & SURF_LIGHTMAP)
R_Shadow_RenderLighting(surface->mesh.num_vertices, surface->mesh.num_triangles, surface->mesh.data_element3i, surface->mesh.data_vertex3f, surface->mesh.data_svector3f, surface->mesh.data_tvector3f, surface->mesh.data_normal3f, surface->mesh.data_texcoordtexture2f, relativelightorigin, relativeeyeorigin, lightcolor, matrix_modeltolight, matrix_modeltoattenuationxyz, matrix_modeltoattenuationz, t->skin.base, t->skin.nmap, t->skin.gloss, lightcubemap, LIGHTING_DIFFUSE | LIGHTING_SPECULAR);
}
}
GL_DepthTest(true);
m.tex[0] = R_GetTexture(face->lightmaptexture);
m.pointer_texcoord[0] = face->data_texcoordlightmap2f;
- if (r_shadow_realtime_world.integer)
- GL_Color(r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, r_shadow_realtime_world_lightmaps.value, 1);
- else
- GL_Color(1, 1, 1, 1);
+ GL_Color(r_lightmapintensity, r_lightmapintensity, r_lightmapintensity, 1);
m.pointer_vertex = face->data_vertex3f;
R_Mesh_State(&m);
GL_LockArrays(0, face->num_vertices);
GL_DepthTest(true);
m.tex[0] = R_GetTexture(face->texture->skin.base);
m.pointer_texcoord[0] = face->data_texcoordtexture2f;
- mul = 2.0f;
- if (r_shadow_realtime_world.integer && r_shadow_realtime_world_lightmaps.value != 1)
- mul *= r_shadow_realtime_world_lightmaps.value;
+ mul = 2.0f * r_lightmapintensity;
if (mul == 2 && gl_combine.integer)
{
m.texrgbscale[0] = 2;
GL_BlendFunc(GL_ONE, GL_ZERO);
GL_DepthMask(true);
GL_DepthTest(true);
- mul = 2.0f;
- if (r_shadow_realtime_world.integer && r_shadow_realtime_world_lightmaps.value != 1)
- mul *= r_shadow_realtime_world_lightmaps.value;
+ mul = 2.0f * r_lightmapintensity;
if (mul == 1)
m.pointer_color = face->data_color4f;
else
void R_Q3BSP_DrawFace_TransparentCallback(const void *voident, int facenumber)
{
+ int i;
+ float colorscale;
const entity_render_t *ent = voident;
q3msurface_t *face = ent->model->brushq3.data_faces + facenumber;
rmeshstate_t m;
GL_DepthTest(true);
m.tex[0] = R_GetTexture(face->texture->skin.base);
m.pointer_texcoord[0] = face->data_texcoordtexture2f;
- // LordHavoc: quake3 was not able to do this; lit transparent surfaces
+ colorscale = r_lightmapintensity;
if (gl_combine.integer)
- {
m.texrgbscale[0] = 2;
- if (r_textureunits.integer >= 2)
- {
- m.tex[1] = R_GetTexture(face->lightmaptexture);
- m.pointer_texcoord[1] = face->data_texcoordlightmap2f;
- GL_Color(1, 1, 1, ent->alpha);
- }
- else
- {
- if (ent->alpha == 1)
- m.pointer_color = face->data_color4f;
- else
- {
- int i;
- for (i = 0;i < face->num_vertices;i++)
- {
- varray_color4f[i*4+0] = face->data_color4f[i*4+0];
- varray_color4f[i*4+1] = face->data_color4f[i*4+1];
- varray_color4f[i*4+2] = face->data_color4f[i*4+2];
- varray_color4f[i*4+3] = face->data_color4f[i*4+3] * ent->alpha;
- }
- m.pointer_color = varray_color4f;
- }
- }
- }
else
+ colorscale *= 2.0f;
+ for (i = 0;i < face->num_vertices;i++)
{
- int i;
- for (i = 0;i < face->num_vertices;i++)
- {
- varray_color4f[i*4+0] = face->data_color4f[i*4+0] * 2.0f;
- varray_color4f[i*4+1] = face->data_color4f[i*4+1] * 2.0f;
- varray_color4f[i*4+2] = face->data_color4f[i*4+2] * 2.0f;
- varray_color4f[i*4+3] = face->data_color4f[i*4+3] * ent->alpha;
- }
- m.pointer_color = varray_color4f;
+ varray_color4f[i*4+0] = face->data_color4f[i*4+0] * colorscale;
+ varray_color4f[i*4+1] = face->data_color4f[i*4+1] * colorscale;
+ varray_color4f[i*4+2] = face->data_color4f[i*4+2] * colorscale;
+ varray_color4f[i*4+3] = face->data_color4f[i*4+3] * ent->alpha;
}
+ m.pointer_color = varray_color4f;
m.pointer_vertex = face->data_vertex3f;
R_Mesh_State(&m);
qglDisable(GL_CULL_FACE);
return;
}
R_Mesh_Matrix(&ent->matrix);
- if (r_shadow_realtime_world.integer && r_shadow_realtime_world_lightmaps.value <= 0)
+ if (r_lightmapintensity <= 0)
R_Q3BSP_DrawFace_OpaqueWall_Pass_OpaqueGlow(ent, face);
- else if ((ent->effects & EF_FULLBRIGHT) || r_fullbright.integer)
+ else if (!(ent->flags & RENDER_LIGHT))
{
R_Q3BSP_DrawFace_OpaqueWall_Pass_Texture(ent, face);
if (face->texture->skin.glow)