X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=gl_models.c;h=c727b5f988c8c222dfcd4b2c1842fbd4a7a23fc1;hp=7e78b2e1e236cb72d0423ea34e928575b1f89080;hb=1091005ba34f5f584ac6064e14566e73dfa5dba3;hpb=baa29902049951543f6b9114ab5cf0f8ab6edeac diff --git a/gl_models.c b/gl_models.c index 7e78b2e1..c727b5f9 100644 --- a/gl_models.c +++ b/gl_models.c @@ -142,7 +142,7 @@ static void R_DrawAliasModelCallback (const void *calldata1, int calldata2) if (normal3f == NULL) { normal3f = varray_normal3f; - Mod_BuildNormals(mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_element3i, normal3f); + Mod_BuildNormals(0, mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_element3i, normal3f); } R_LightModel_CalcVertexColors(ambientcolor4f, diffusecolor, diffusenormal, mesh->num_vertices, vertex3f, normal3f, varray_color4f); } @@ -158,7 +158,7 @@ static void R_DrawAliasModelCallback (const void *calldata1, int calldata2) R_Mesh_State(&m); c_alias_polys += mesh->num_triangles; GL_LockArrays(0, mesh->num_vertices); - R_Mesh_Draw(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); + R_Mesh_Draw(0, mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); GL_LockArrays(0, 0); m.tex[1] = 0; m.pointer_texcoord[1] = NULL; @@ -179,7 +179,7 @@ static void R_DrawAliasModelCallback (const void *calldata1, int calldata2) if (normal3f == NULL) { normal3f = varray_normal3f; - Mod_BuildNormals(mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_element3i, normal3f); + Mod_BuildNormals(0, mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_element3i, normal3f); } R_LightModel_CalcVertexColors(ambientcolor4f, diffusecolor, diffusenormal, mesh->num_vertices, vertex3f, normal3f, varray_color4f); } @@ -188,7 +188,7 @@ static void R_DrawAliasModelCallback (const void *calldata1, int calldata2) R_Mesh_State(&m); c_alias_polys += mesh->num_triangles; GL_LockArrays(0, mesh->num_vertices); - R_Mesh_Draw(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); + R_Mesh_Draw(0, mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); GL_LockArrays(0, 0); } @@ -207,7 +207,7 @@ static void R_DrawAliasModelCallback (const void *calldata1, int calldata2) if (normal3f == NULL) { normal3f = varray_normal3f; - Mod_BuildNormals(mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_element3i, normal3f); + Mod_BuildNormals(0, mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_element3i, normal3f); } R_LightModel_CalcVertexColors(ambientcolor4f, diffusecolor, diffusenormal, mesh->num_vertices, vertex3f, normal3f, varray_color4f); } @@ -216,24 +216,24 @@ static void R_DrawAliasModelCallback (const void *calldata1, int calldata2) R_Mesh_State(&m); c_alias_polys += mesh->num_triangles; GL_LockArrays(0, mesh->num_vertices); - R_Mesh_Draw(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); + R_Mesh_Draw(0, mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); GL_LockArrays(0, 0); } colorscale = 1; m.texrgbscale[0] = 0; + m.pointer_color = NULL; - if (texture->skin.glow) + if (doglow) { GL_BlendFunc(GL_SRC_ALPHA, GL_ONE); GL_DepthMask(false); m.tex[0] = R_GetTexture(texture->skin.glow); - m.pointer_color = NULL; GL_Color(1, 1, 1, ent->alpha); R_Mesh_State(&m); c_alias_polys += mesh->num_triangles; GL_LockArrays(0, mesh->num_vertices); - R_Mesh_Draw(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); + R_Mesh_Draw(0, mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); GL_LockArrays(0, 0); } @@ -242,12 +242,11 @@ static void R_DrawAliasModelCallback (const void *calldata1, int calldata2) GL_BlendFunc(GL_SRC_ALPHA, GL_ONE); GL_DepthMask(false); m.tex[0] = R_GetTexture(texture->skin.fog); - m.pointer_color = NULL; GL_Color(fogcolor[0], fogcolor[1], fogcolor[2], fog * ent->alpha); R_Mesh_State(&m); c_alias_polys += mesh->num_triangles; GL_LockArrays(0, mesh->num_vertices); - R_Mesh_Draw(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); + R_Mesh_Draw(0, mesh->num_vertices, mesh->num_triangles, mesh->data_element3i); GL_LockArrays(0, 0); } } @@ -305,7 +304,7 @@ void R_Model_Alias_DrawShadowVolume(entity_render_t *ent, vec3_t relativelightor } } -void R_Model_Alias_DrawLight(entity_render_t *ent, vec3_t relativelightorigin, vec3_t relativeeyeorigin, float lightradius, float *lightcolor, const matrix4x4_t *matrix_modeltolight, const matrix4x4_t *matrix_modeltoattenuationxyz, const matrix4x4_t *matrix_modeltoattenuationz, rtexture_t *lightcubemap, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int numsurfaces, const int *surfacelist) +void R_Model_Alias_DrawLight(entity_render_t *ent, vec3_t relativelightorigin, vec3_t relativeeyeorigin, float lightradius, float *lightcolor, const matrix4x4_t *matrix_modeltolight, const matrix4x4_t *matrix_modeltoattenuationxyz, const matrix4x4_t *matrix_modeltoattenuationz, rtexture_t *lightcubemap, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int numsurfaces, const int *surfacelist, int visiblelighting) { int c, meshnum; float fog, ifog, lightcolorbase[3], lightcolorpants[3], lightcolorshirt[3]; @@ -384,17 +383,10 @@ void R_Model_Alias_DrawLight(entity_render_t *ent, vec3_t relativelightorigin, v tvector3f = varray_tvector3f; normal3f = varray_normal3f; Mod_Alias_GetMesh_Vertex3f(ent->model, ent->frameblend, mesh, vertex3f); - Mod_BuildTextureVectorsAndNormals(mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_texcoord2f, mesh->data_element3i, svector3f, tvector3f, normal3f); + Mod_BuildTextureVectorsAndNormals(0, mesh->num_vertices, mesh->num_triangles, vertex3f, mesh->data_texcoord2f, mesh->data_element3i, svector3f, tvector3f, normal3f); } c_alias_polys += mesh->num_triangles; - R_Shadow_RenderLighting(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i, vertex3f, svector3f, tvector3f, normal3f, mesh->data_texcoord2f, relativelightorigin, relativeeyeorigin, lightcolorbase, matrix_modeltolight, matrix_modeltoattenuationxyz, matrix_modeltoattenuationz, (ent->colormap >= 0 || !texture->skin.merged) ? texture->skin.base : texture->skin.merged, texture->skin.nmap, texture->skin.gloss, lightcubemap, ambientscale, diffusescale, specularscale); - if (ent->colormap >= 0) - { - if (texture->skin.pants && VectorLength2(lightcolorpants) >= 0.001) - R_Shadow_RenderLighting(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i, vertex3f, svector3f, tvector3f, normal3f, mesh->data_texcoord2f, relativelightorigin, relativeeyeorigin, lightcolorpants, matrix_modeltolight, matrix_modeltoattenuationxyz, matrix_modeltoattenuationz, texture->skin.pants, texture->skin.nmap, NULL, lightcubemap, ambientscale, diffusescale, 0); - if (texture->skin.shirt && VectorLength2(lightcolorshirt) >= 0.001) - R_Shadow_RenderLighting(mesh->num_vertices, mesh->num_triangles, mesh->data_element3i, vertex3f, svector3f, tvector3f, normal3f, mesh->data_texcoord2f, relativelightorigin, relativeeyeorigin, lightcolorshirt, matrix_modeltolight, matrix_modeltoattenuationxyz, matrix_modeltoattenuationz, texture->skin.shirt, texture->skin.nmap, NULL, lightcubemap, ambientscale, diffusescale, 0); - } + R_Shadow_RenderLighting(0, mesh->num_vertices, mesh->num_triangles, mesh->data_element3i, vertex3f, svector3f, tvector3f, normal3f, mesh->data_texcoord2f, relativelightorigin, relativeeyeorigin, lightcolorbase, lightcolorpants, lightcolorshirt, matrix_modeltolight, matrix_modeltoattenuationxyz, matrix_modeltoattenuationz, (ent->colormap >= 0 || !texture->skin.merged) ? texture->skin.base : texture->skin.merged, ent->colormap >= 0 ? texture->skin.pants : 0, ent->colormap >= 0 ? texture->skin.shirt : 0, texture->skin.nmap, texture->skin.gloss, lightcubemap, ambientscale, diffusescale, specularscale, visiblelighting); } }