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