r702 - trunk
lordhavoc at icculus.org
lordhavoc at icculus.org
Thu May 4 19:09:55 EDT 2006
Author: lordhavoc
Date: 2006-05-04 19:09:55 -0400 (Thu, 04 May 2006)
New Revision: 702
Modified:
trunk/material.c
Log:
added a hack to detect skybox at load and use texture clamping on it,
this hack will be removed when a material language is implemented someday
Modified: trunk/material.c
===================================================================
--- trunk/material.c 2006-04-18 11:01:00 UTC (rev 701)
+++ trunk/material.c 2006-05-04 23:09:55 UTC (rev 702)
@@ -9,53 +9,60 @@
char *filename;
r->data = material = Mem_Alloc(r->memzone, sizeof(Material));
filename = String_APrintf(r->memzone, "%s.tga", r->name);
- material->texture_color = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- String_Free(&filename);
- filename = String_APrintf(r->memzone, "%s_norm.tga", r->name);
- material->texture_normal = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- String_Free(&filename);
- if (!Resource_GetData(material->texture_normal))
+ // TODO: eventually add a material language, until then this skybox hack is needed
+ if (strstr(r->name, "sky"))
{
- filename = String_APrintf(r->memzone, "%s_bump.tga", r->name);
- material->texture_normal = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP | RESOURCEFLAG_BUMPMAPASNORMALMAP, 4);
+ material->texture_color = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP | RESOURCEFLAG_CLAMP, 0);
String_Free(&filename);
}
- filename = String_APrintf(r->memzone, "%s_gloss.tga", r->name);
- material->texture_gloss = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- String_Free(&filename);
- filename = String_APrintf(r->memzone, "%s_glow.tga", r->name);
- material->texture_glow = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- String_Free(&filename);
- filename = String_APrintf(r->memzone, "%s_back.tga", r->name);
- material->texture_background = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- String_Free(&filename);
- material->specularpower = 8;
- // these can be used for High Dynamic Range (HDR), boosting a material's
- // specular intensity to allow a gloss texture to have the RGB range 0-4
- // instead of 0-1.
- // ambient can be used instead of diffuse and specular to make soft-shaded
- // materials like snow which react very little to light direction.
- material->ambientintensity = 1;
- material->diffuseintensity = 1;
- material->specularintensity = 1;
- // offset mapping is off by default,
- // example values: scale 0.04, bias -0.02
- material->offsetmapping_scale = 0;
- material->offsetmapping_bias = 0;
+ else
+ {
+ material->texture_color = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ String_Free(&filename);
+ filename = String_APrintf(r->memzone, "%s_norm.tga", r->name);
+ material->texture_normal = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ String_Free(&filename);
+ if (!Resource_GetData(material->texture_normal))
+ {
+ filename = String_APrintf(r->memzone, "%s_bump.tga", r->name);
+ material->texture_normal = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP | RESOURCEFLAG_BUMPMAPASNORMALMAP, 4);
+ String_Free(&filename);
+ }
+ filename = String_APrintf(r->memzone, "%s_gloss.tga", r->name);
+ material->texture_gloss = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ String_Free(&filename);
+ filename = String_APrintf(r->memzone, "%s_glow.tga", r->name);
+ material->texture_glow = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ String_Free(&filename);
+ filename = String_APrintf(r->memzone, "%s_back.tga", r->name);
+ material->texture_background = Resource_IndexForName(filename, RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ String_Free(&filename);
+ material->specularpower = 8;
+ // these can be used for High Dynamic Range (HDR), boosting a material's
+ // specular intensity to allow a gloss texture to have the RGB range 0-4
+ // instead of 0-1.
+ // ambient can be used instead of diffuse and specular to make soft-shaded
+ // materials like snow which react very little to light direction.
+ material->ambientintensity = 1;
+ material->diffuseintensity = 1;
+ material->specularintensity = 1;
+ // offset mapping is off by default,
+ // example values: scale 0.04, bias -0.02
+ material->offsetmapping_scale = 0;
+ material->offsetmapping_bias = 0;
- // if some textures are missing, load default
- if (!Resource_GetData(material->texture_color))
- material->texture_color = Resource_IndexForName("engine/default.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- if (!Resource_GetData(material->texture_normal))
- material->texture_normal = Resource_IndexForName("engine/default_norm.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- if (!Resource_GetData(material->texture_gloss))
- material->texture_gloss = 0;//Resource_IndexForName("engine/default_gloss.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- if (!Resource_GetData(material->texture_glow))
- material->texture_glow = Resource_IndexForName("engine/default_glow.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
- if (!Resource_GetData(material->texture_background))
- material->texture_background = 0;//Resource_IndexForName("engine/default_back.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
-
- // TODO: eventually add a material language
+ // if some textures are missing, load default
+ if (!Resource_GetData(material->texture_color))
+ material->texture_color = Resource_IndexForName("engine/default.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ if (!Resource_GetData(material->texture_normal))
+ material->texture_normal = Resource_IndexForName("engine/default_norm.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ if (!Resource_GetData(material->texture_gloss))
+ material->texture_gloss = 0;//Resource_IndexForName("engine/default_gloss.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ if (!Resource_GetData(material->texture_glow))
+ material->texture_glow = Resource_IndexForName("engine/default_glow.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ if (!Resource_GetData(material->texture_background))
+ material->texture_background = 0;//Resource_IndexForName("engine/default_back.tga", RESOURCETYPE_TEXTURE, RESOURCEFLAG_MIPMAP, 0);
+ }
}
void Material_Unload(UNUSED ResourceEntry *r)
More information about the neither-commits
mailing list