Jump to content
The Dark Mod Forums

TDM Building with Blender


Sotha

Recommended Posts

Cool tutorial, thanks!

Incidentally, I was thinking the other thing than custom textures and objects mappers should be open to dabbling in is custom shaders, for which I recently found an interesting site -- http://shadertoy.com/

 

I think we should also make some tutorials about shader creation & a pipeline for getting things from that site in-game (if possible), and then borrow like crazy, as well as start making our own

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

  • 3 weeks later...

Very cool. What a pity it is just an animation, and not true ingame cloth-physics.

 

Anyhow: that could be used to make impressive looking wind-beaten flags or banners: very good stuff for those outdoor missions.

  • Like 1

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Has the phyics model been imported into TDM..?

All those animations are non solid.

Very cool. What a pity it is just an animation, and not true ingame cloth-physics.

You can make rag doll carpets if you want but as we know TDM physics are wonky. You can check rag doll saddle I made.

It's only a model...

Link to comment
Share on other sites

  • 1 month later...

Never thought of that, very neat.

FM's: Builder Roads, Old Habits, Old Habits Rebuild

Mapping and Scripting: Apples and Peaches

Sculptris Models and Tutorials: Obsttortes Models

My wiki articles: Obstipedia

Texture Blending in DR: DR ASE Blend Exporter

Link to comment
Share on other sites

Thanks. I tried it long time ago and it didn't work. After seeing pools of water in Thief I experimented with it a little more. Material:

 

 

vertex_blend_street
{
surftype15
description "stone"

{
   blend    diffusemap
   map	  textures\darkmod\stone\cobblestones\blocks_uneven06_grey
   vertexColor
}
{
   blend    bumpmap
   map	  textures\darkmod\stone\cobblestones\blocks_uneven06_grey_local
   vertexColor
}
{
    blend add
    mirrorRenderMap 128 128
    translate	   0.5, 0.5
    scale		   0.5, 0.5
       inverseVertexColor
}

    // TDM Ambient Method Related
    {													   
		    if (global5 == 1)			   
		    blend add
		    map					 textures\darkmod\stone\cobblestones\blocks_uneven06_grey
		    scale				   1, 1		    
		    red					 global2
		    green				   global3
		    blue				    global4
		    vertexColor						     
    }													   
    {													   
		    if (global5 == 1)			   
		    blend add
               mirrorRenderMap 128 128
               translate	   0.5, 0.5
               scale		   0.5, 0.5
		    inverseVertexColor
    }													   
    {													   
		    if (global5 == 2)			   
		    blend add
		    program ambientEnvVertexBlend.vfp	   
		    vertexParm			  0			   1, 1, 1, 1			  // UV Scales for Diffuse1 and Bump1	 resp.   
		    vertexParm			  1			   1, 1, 1, 1			  // UV Scale for specular1 and Diffuse2 resp.
		    vertexParm			  2			   1, 1, 1, 1			  // UV Scale for Bump2 and specular2 resp.	   
		    vertexParm			  3			   global2, global3, global4, 1    
		    //----------- VertexColored -------------------			     
		    fragmentMap			 0			   cubeMap env/gen1							    
		    fragmentMap			 1			   textures\darkmod\stone\cobblestones\blocks_uneven06_grey_local				  // Bump1					    
		    fragmentMap			 2			   textures\darkmod\stone\cobblestones\blocks_uneven06_grey			 // Diffuse1				     
		    fragmentMap			 3			   _black				  // Specular1		    
		    //----------- InverseVertexColored ------------			     
		    fragmentMap			 4			   textures\darkmod\stone\cobblestones\blocks_uneven06_grey_local			 // Bump2					    
		    fragmentMap			 5			   textures\darkmod\stone\cobblestones\blocks_uneven06_grey		  // Diffuse2				     
		    fragmentMap			 6			   _black				  // Specular2		    
    }
}

 

It's only a model...

Link to comment
Share on other sites

I think that would work Biker. Just create a grey texture that fades to black on the edges and

multiply the mirror render with the image. You might need to include water shader stages to make it

blend seamlessly with an example like the one above?

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

I'll tinker a bit with this. It's gonna be a pain because Doom3world is down but I'm pretty sure I know the pertinent stages and keywords.

 

Edit:

 

I think this would work:

 

textures/common/reflection_patch
{
  DECAL_MACRO
  translucent
  nonsolid
  noimpact

  {
  mirrorRenderMap 512 512
  blend blend
  alpha 0.1
  translate 0.5, 0.5
  scale 0.5, 0.5
  }

  {
 blend blend
 map /example.tga
  }

}

 

The example.tga would need the grey faded to black image I referred to.

Edited by nbohr1more

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

I nearly took a screenshot of it while playing Thi4f but didn't, though I'm sure many of you saw the water cascading down the tile rooftops in-game while it was raining. This was a really cool effect coupled with their feet-on-loose-clay-tile sound for rooftops.

 

Can we do a cascading water shader decal for rooftops?

Edited by Lux
Link to comment
Share on other sites

If we could apply the same logic to decal patches it would then allow mappers to place the "puddles of water" where they felt like.

I found two ways of doing it. First patch blends mirror with grass:

 

post-2001-0-01751100-1394757999_thumb.jpg

 

If you look closely you will notice that uv doesn't match but it's not bad.

Material:

 

blend_grass_water
{
surftype15
description "water"

{
blend	   diffusemap
map	  textures/darkmod/nature/grass/short_patchy_grass01
vertexColor
}
{
blend	  bumpmap
map	  textures/darkmod/nature/grass/short_patchy_grass01_local
vertexColor
}
{
blend add
mirrorRenderMap 128 128
translate	   0.5, 0.5
scale		   0.5, 0.5
inverseVertexColor
}

	// TDM Ambient Method Related
	{													  
			if (global5 == 1)			  
			blend add
			map							 textures/darkmod/nature/grass/short_patchy_grass01
			scale				   1, 1			
			red					 global2
			green				   global3
			blue					global4
			vertexColor							
	}													  
	{													  
			if (global5 == 1)			  
			blend add
			mirrorRenderMap 128 128
			translate	   0.5, 0.5
			scale		   0.5, 0.5
			inverseVertexColor			  
	}													  
	{													  
			if (global5 == 2)			  
			blend add
			program ambientEnvVertexBlend.vfp	  
			vertexParm			  0			   1, 1, 1, 1			  // UV Scales for Diffuse1 and Bump1	 resp.  
			vertexParm			  1			   1, 1, 1, 1			  // UV Scale for specular1 and Diffuse2 resp.
			vertexParm			  2			   1, 1, 1, 1			  // UV Scale for Bump2 and specular2 resp.	  
			vertexParm			  3			   global2, global3, global4, 1	
			//----------- VertexColored -------------------				
			fragmentMap			 0			   cubeMap env/gen1								
			fragmentMap			 1			   textures/darkmod/nature/grass/short_patchy_grass01_local				  // Bump1						
			fragmentMap			 2			   textures/darkmod/nature/grass/short_patchy_grass01			 // Diffuse1					
			fragmentMap			 3			   _black				  // Specular1			
			//----------- InverseVertexColored ------------				
			fragmentMap			 4			   textures/darkmod/nature/grass/short_patchy_grass01_local			 // Bump2						
			fragmentMap			 5			   textures/darkmod/nature/grass/short_patchy_grass01		 // Diffuse2					
			fragmentMap			 6			   _black				  // Specular2			
	}
}

 

 

ASE model:

 

 

*3DSMAX_ASCIIEXPORT	200
*COMMENT "Exported from Blender 249 - Wed Mar 12 23:00:20 2014"
*SCENE {
*SCENE_FILENAME "vertex_blend_test.blend"
*SCENE_FIRSTFRAME 1
*SCENE_LASTFRAME 250
*SCENE_FRAMESPEED 24
*SCENE_TICKSPERFRAME 160
*SCENE_BACKGROUND_STATIC 0.0509 0.0509 0.0509
*SCENE_AMBIENT_STATIC 0.0000 0.0000 0.0000
}
*MATERIAL_LIST {
*MATERIAL_COUNT 1
*MATERIAL 0 {
	*MATERIAL_NAME "Untitled"
	*MATERIAL_CLASS "Standard"
	*MATERIAL_AMBIENT 0.0000   0.0000   0.0000
	*MATERIAL_DIFFUSE 0.5882   0.5882   0.5882
	*MATERIAL_SPECULAR 0.9000   0.9000   0.9000
	*MATERIAL_SHINE 0.1000
	*MATERIAL_SHINESTRENGTH 0.0000
	*MATERIAL_TRANSPARENCY 0.0000
	*MATERIAL_WIRESIZE 1.0000
	*MATERIAL_SHADING Blinn
	*MATERIAL_XP_FALLOFF 0.0000
	*MATERIAL_SELFILLUM 0.0000
	*MATERIAL_FALLOFF In
	*MATERIAL_XP_TYPE Filter
	*MAP_DIFFUSE {
		*MAP_NAME "Untitled"
		*MAP_CLASS "Bitmap"
		*MAP_SUBNO 1
		*MAP_AMOUNT 1.0000
		*BITMAP "//base/blend_grass_water"
		*MAP_TYPE Screen
		*UVW_U_OFFSET 0.0000
		*UVW_V_OFFSET 0.0000
		*UVW_U_TILING 1.0000
		*UVW_V_TILING 1.0000
		*UVW_ANGLE 0.0000
		*UVW_BLUR 1.0000
		*UVW_BLUR_OFFSET 0.0000
		*UVW_NOUSE_AMT 1.0000
		*UVW_NOISE_SIZE 1.0000
		*UVW_NOISE_LEVEL 1
		*UVW_NOISE_PHASE 0.0000
		*BITMAP_FILTER Pyramidal
	}
}
}
*GEOMOBJECT {
*NODE_NAME "BezierCircle.001"
*NODE_TM {
	*NODE_NAME "Mesh"
	*INHERIT_POS 0 0 0
	*INHERIT_ROT 0 0 0
	*INHERIT_SCL 0 0 0
	*TM_ROW0 1.0000 0.0000 -0.0000
	*TM_ROW1 -0.0000 1.0000 -0.0000
	*TM_ROW2 0.0000 -0.0000 1.0000
	*TM_ROW3 0.0000 0.0000 -0.0000
	*TM_POS 0.0000 0.0000 0.0000
	*TM_ROTAXIS 1.0000 0.0000 0.0000
	*TM_ROTANGLE 0.0000
	*TM_SCALE 1.0000 1.0000 1.0000
	*TM_SCALEAXIS 1.0000 0.0000 0.0000
	*TM_SCALEAXISANG 0.0000
}
*MESH {
	*TIMEVALUE 0
	*MESH_NUMVERTEX 32
	*MESH_NUMFACES 46
	*MESH_VERTEX_LIST {
		*MESH_VERTEX 0   -45.5756   3.3348   -0.0000
		*MESH_VERTEX 1   -39.5344   -4.1351   0.0000
		*MESH_VERTEX 2   -23.8442   -6.7742   0.0000
		*MESH_VERTEX 3   -17.4749   -28.4495   0.0000
		*MESH_VERTEX 4   -4.7226   -37.8425   0.0000
		*MESH_VERTEX 5   6.8506   -32.8757   0.0000
		*MESH_VERTEX 6   14.5703   -14.2969   0.0000
		*MESH_VERTEX 7   34.7707   -9.0000   0.0000
		*MESH_VERTEX 8   42.4123   -0.7911   0.0000
		*MESH_VERTEX 9   40.4643   16.4143   -0.0000
		*MESH_VERTEX 10   25.6240   19.2253   -0.0000
		*MESH_VERTEX 11   6.9861   19.4944   -0.0000
		*MESH_VERTEX 12   -15.6581   10.8171   -0.0000
		*MESH_VERTEX 13   -28.8067   19.0009   -0.0000
		*MESH_VERTEX 14   -38.3523   20.2428   -0.0000
		*MESH_VERTEX 15   -47.0553   12.8236   -0.0000
		*MESH_VERTEX 16   12.2091   -40.2463   0.0000
		*MESH_VERTEX 17   20.4469   -21.0079   0.0000
		*MESH_VERTEX 18   27.8432   28.2337   -0.0000
		*MESH_VERTEX 19   5.3667   28.1493   -0.0000
		*MESH_VERTEX 20   -53.5905   -2.1667   0.0000
		*MESH_VERTEX 21   -56.4876   16.4114   -0.0000
		*MESH_VERTEX 22   52.3067   -3.0289   0.0000
		*MESH_VERTEX 23   47.8801   22.0557   -0.0000
		*MESH_VERTEX 24   -43.3908   -12.0310   0.0000
		*MESH_VERTEX 25   -30.3649   -13.5866   0.0000
		*MESH_VERTEX 26   -15.5948   19.9524   -0.0000
		*MESH_VERTEX 27   -26.8798   27.5761   -0.0000
		*MESH_VERTEX 28   40.3224   -15.9029   0.0000
		*MESH_VERTEX 29   -40.9085   29.4960   -0.0000
		*MESH_VERTEX 30   -7.4533   -48.1871   0.0000
		*MESH_VERTEX 31   -24.9430   -33.1960   0.0000
	}
	*MESH_FACE_LIST {
		*MESH_FACE	0:	A:   10 B:	8 C:	9 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	1:	A:	6 B:	5 C:   17 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	2:	A:   11 B:   10 C:   19 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	3:	A:	0 B:   15 C:   20 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	4:	A:	9 B:	8 C:   22 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	5:	A:	2 B:	1 C:   25 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	6:	A:   13 B:   12 C:   26 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	7:	A:	8 B:	7 C:   28 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	8:	A:   10 B:	9 C:   18 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE	9:	A:   14 B:   13 C:   27 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   10:	A:	7 B:	6 C:   17 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   11:	A:	5 B:	4 C:   16 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   12:	A:   12 B:   11 C:   26 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   13:	A:	3 B:	2 C:   25 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   14:	A:	1 B:	0 C:   20 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   15:	A:	4 B:	3 C:   31 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   16:	A:   15 B:   14 C:   29 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   17:	A:	0 B:   14 C:   15 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   18:	A:	3 B:	4 C:	5 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   19:	A:	3 B:	5 C:	6 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   20:	A:	2 B:	3 C:	6 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   21:	A:	0 B:   13 C:   14 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   22:	A:	5 B:   16 C:   17 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   23:	A:   10 B:	7 C:	8 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   24:	A:   10 B:	6 C:	7 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   25:	A:   13 B:	0 C:	1 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   26:	A:	2 B:   12 C:   13 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   27:	A:	1 B:	2 C:   13 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   28:	A:   12 B:	2 C:	6 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   29:	A:   11 B:   12 C:	6 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   30:	A:	6 B:   10 C:   11 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   31:	A:   10 B:   18 C:   19 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   32:	A:   15 B:   21 C:   20 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   33:	A:   23 B:	9 C:   22 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   34:	A:	1 B:   24 C:   25 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   35:	A:   27 B:   13 C:   26 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   36:	A:   22 B:	8 C:   28 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   37:	A:	9 B:   23 C:   18 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   38:	A:   29 B:   14 C:   27 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   39:	A:   28 B:	7 C:   17 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   40:	A:	4 B:   30 C:   16 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   41:	A:   11 B:   19 C:   26 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   42:	A:   31 B:	3 C:   25 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   43:	A:   24 B:	1 C:   20 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   44:	A:   30 B:	4 C:   31 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
		*MESH_FACE   45:	A:   21 B:   15 C:   29 AB:	1 BC:	1 CA:	1	*MESH_SMOOTHING	*MESH_MTLID 0
	}
	*MESH_NUMTVERTEX 32
	*MESH_TVERTLIST {
		*MESH_TVERT 0	0.7848	0.5823	0.0000
		*MESH_TVERT 1	0.9102	0.3650	0.0000
		*MESH_TVERT 2	0.9205	0.5310	0.0000
		*MESH_TVERT 3	0.6243	0.2837	0.0000
		*MESH_TVERT 4	0.5203	0.1209	0.0000
		*MESH_TVERT 5	0.6687	0.2105	0.0000
		*MESH_TVERT 6	0.6090	0.6159	0.0000
		*MESH_TVERT 7	0.6081	0.7005	0.0000
		*MESH_TVERT 8	0.0850	0.5508	0.0000
		*MESH_TVERT 9	0.0868	0.6430	0.0000
		*MESH_TVERT 10	0.0000	0.5122	0.0000
		*MESH_TVERT 11	1.0000	0.3273	0.0000
		*MESH_TVERT 12	0.2736	0.4190	0.0000
		*MESH_TVERT 13	0.1296	0.4701	0.0000
		*MESH_TVERT 14	0.2006	0.3654	0.0000
		*MESH_TVERT 15	0.2697	0.6710	0.0000
		*MESH_TVERT 16	0.3804	0.5717	0.0000
		*MESH_TVERT 17	0.3962	0.6580	0.0000
		*MESH_TVERT 18	0.8242	0.3001	0.0000
		*MESH_TVERT 19	0.8652	0.2256	0.0000
		*MESH_TVERT 20	0.8208	0.6638	0.0000
		*MESH_TVERT 21	0.1815	0.6987	0.0000
		*MESH_TVERT 22	0.3022	0.7489	0.0000
		*MESH_TVERT 23	0.4026	0.0933	0.0000
		*MESH_TVERT 24	0.5587	0.0423	0.0000
		*MESH_TVERT 25	0.2977	0.2034	0.0000
		*MESH_TVERT 26	0.2191	0.1710	0.0000
		*MESH_TVERT 27	0.1728	0.7905	0.0000
		*MESH_TVERT 28	0.0036	0.6927	0.0000
		*MESH_TVERT 29	1.0000	0.5719	0.0000
		*MESH_TVERT 30	0.0800	0.4019	0.0000
		*MESH_TVERT 31	0.3595	0.0000	0.0000
	}
	*MESH_NUMTVFACES 46
	*MESH_TFACELIST {
		*MESH_TFACE 0   0   1   2
		*MESH_TFACE 1   3   4   5
		*MESH_TFACE 2   6   0   7
		*MESH_TFACE 3   8   9   10
		*MESH_TFACE 4   2   1   11
		*MESH_TFACE 5   12   13   14
		*MESH_TFACE 6   15   16   17
		*MESH_TFACE 7   1   18   19
		*MESH_TFACE 8   0   2   20
		*MESH_TFACE 9   21   15   22
		*MESH_TFACE 10   18   3   5
		*MESH_TFACE 11   4   23   24
		*MESH_TFACE 12   16   6   17
		*MESH_TFACE 13   25   12   14
		*MESH_TFACE 14   13   8   10
		*MESH_TFACE 15   23   25   26
		*MESH_TFACE 16   9   21   27
		*MESH_TFACE 17   8   21   9
		*MESH_TFACE 18   25   23   4
		*MESH_TFACE 19   25   4   3
		*MESH_TFACE 20   12   25   3
		*MESH_TFACE 21   8   15   21
		*MESH_TFACE 22   4   24   5
		*MESH_TFACE 23   0   18   1
		*MESH_TFACE 24   0   3   18
		*MESH_TFACE 25   15   8   13
		*MESH_TFACE 26   12   16   15
		*MESH_TFACE 27   13   12   15
		*MESH_TFACE 28   16   12   3
		*MESH_TFACE 29   6   16   3
		*MESH_TFACE 30   3   0   6
		*MESH_TFACE 31   0   20   7
		*MESH_TFACE 32   9   28   10
		*MESH_TFACE 33   29   2   11
		*MESH_TFACE 34   13   30   14
		*MESH_TFACE 35   22   15   17
		*MESH_TFACE 36   11   1   19
		*MESH_TFACE 37   2   29   20
		*MESH_TFACE 38   27   21   22
		*MESH_TFACE 39   19   18   5
		*MESH_TFACE 40   23   31   24
		*MESH_TFACE 41   6   7   17
		*MESH_TFACE 42   26   25   14
		*MESH_TFACE 43   30   13   10
		*MESH_TFACE 44   31   23   26
		*MESH_TFACE 45   28   9   27
	}
	*MESH_NUMCVERTEX 2
	*MESH_CVERTLIST {
		*MESH_VERTCOL 0   0.0000   0.0000   0.0000
		*MESH_VERTCOL 1   0.9961   0.9961   0.9961
	}
	*MESH_NUMCFACES 46
	*MESH_CFACELIST {
		*MESH_CFACE 0   0   0   0
		*MESH_CFACE 1   0   0   1
		*MESH_CFACE 2   0   0   1
		*MESH_CFACE 3   0   0   1
		*MESH_CFACE 4   0   0   1
		*MESH_CFACE 5   0   0   1
		*MESH_CFACE 6   0   0   1
		*MESH_CFACE 7   0   0   1
		*MESH_CFACE 8   0   0   1
		*MESH_CFACE 9   0   0   1
		*MESH_CFACE 10   0   0   1
		*MESH_CFACE 11   0   0   1
		*MESH_CFACE 12   0   0   1
		*MESH_CFACE 13   0   0   1
		*MESH_CFACE 14   0   0   1
		*MESH_CFACE 15   0   0   1
		*MESH_CFACE 16   0   0   1
		*MESH_CFACE 17   0   0   0
		*MESH_CFACE 18   0   0   0
		*MESH_CFACE 19   0   0   0
		*MESH_CFACE 20   0   0   0
		*MESH_CFACE 21   0   0   0
		*MESH_CFACE 22   0   1   1
		*MESH_CFACE 23   0   0   0
		*MESH_CFACE 24   0   0   0
		*MESH_CFACE 25   0   0   0
		*MESH_CFACE 26   0   0   0
		*MESH_CFACE 27   0   0   0
		*MESH_CFACE 28   0   0   0
		*MESH_CFACE 29   0   0   0
		*MESH_CFACE 30   0   0   0
		*MESH_CFACE 31   0   1   1
		*MESH_CFACE 32   0   1   1
		*MESH_CFACE 33   1   0   1
		*MESH_CFACE 34   0   1   1
		*MESH_CFACE 35   1   0   1
		*MESH_CFACE 36   1   0   1
		*MESH_CFACE 37   0   1   1
		*MESH_CFACE 38   1   0   1
		*MESH_CFACE 39   1   0   1
		*MESH_CFACE 40   0   1   1
		*MESH_CFACE 41   0   1   1
		*MESH_CFACE 42   1   0   1
		*MESH_CFACE 43   1   0   1
		*MESH_CFACE 44   1   0   1
		*MESH_CFACE 45   1   0   1
	}
	*MESH_NORMALS {
		*MESH_FACENORMAL 0   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 10   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 8   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 9   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 1   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 6   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 5   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 17   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 2   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 11   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 10   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 19   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 3   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 0   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 15   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 20   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 4   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 9   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 8   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 22   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 5   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 2   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 1   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 25   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 6   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 13   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 12   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 26   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 7   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 8   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 7   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 28   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 8   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 10   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 9   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 18   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 9   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 14   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 13   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 27   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 10   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 7   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 6   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 17   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 11   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 5   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 4   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 16   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 12   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 12   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 11   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 26   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 13   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 3   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 2   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 25   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 14   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 1   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 0   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 20   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 15   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 4   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 3   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 31   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 16   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 15   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 14   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 29   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 17   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 0   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 14   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 15   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 18   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 3   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 4   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 5   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 19   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 3   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 5   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 6   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 20   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 2   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 3   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 6   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 21   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 0   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 13   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 14   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 22   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 5   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 16   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 17   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 23   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 10   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 7   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 8   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 24   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 10   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 6   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 7   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 25   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 13   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 0   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 1   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 26   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 2   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 12   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 13   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 27   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 1   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 2   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 13   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 28   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 12   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 2   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 6   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 29   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 11   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 12   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 6   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 30   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 6   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 10   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 11   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 31   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 10   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 18   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 19   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 32   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 15   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 21   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 20   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 33   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 23   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 9   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 22   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 34   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 1   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 24   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 25   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 35   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 27   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 13   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 26   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 36   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 22   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 8   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 28   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 37   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 9   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 23   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 18   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 38   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 29   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 14   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 27   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 39   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 28   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 7   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 17   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 40   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 4   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 30   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 16   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 41   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 11   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 19   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 26   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 42   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 31   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 3   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 25   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 43   0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 24   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 1   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 20   0.0000   0.0000   1.0000
		*MESH_FACENORMAL 44   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 30   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 4   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 31   -0.0000   0.0000   1.0000
		*MESH_FACENORMAL 45   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 21   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 15   -0.0000   0.0000   1.0000
			*MESH_VERTEXNORMAL 29   -0.0000   0.0000   1.0000
	}
}
*PROP_MOTIONBLUR 0
*PROP_CASTSHADOW 1
*PROP_RECVSHADOW 1
*MATERIAL_REF 0
}

 

 

But of course you need new material for every kind of floor. So I thought why not make material on the edges transparent. That way the patch would be universal. The only combination that worked was this semi transparent material. it shoiuld be good for wet floor:

 

post-2001-0-79553600-1394758001_thumb.jpg

 

Material:

 

mirror_patch
{
surftype15
description "water"

noshadows
noselfshadow

{
blend add
mirrorRenderMap 128 128
rgb 1
translate	   0.5, 0.5
scale		   0.5, 0.5
inverseVertexColor
}
}

 

 

For comparison without soft edges:

 

post-2001-0-37024700-1394758000_thumb.jpg

With more polygons that should look good too.

 

Wireframe:

 

post-2001-0-95140700-1394759178_thumb.jpg

 

http://www.youtube.com/watch?v=pPBx08kjXJ4

  • Like 3

It's only a model...

Link to comment
Share on other sites

But of course you need new material for every kind of floor. So I thought why not make material on the edges transparent. That way the patch would be universal. The only combination that worked was this semi transparent material. it shoiuld be good for wet floor:

post-2001-0-79553600-1394758001_thumb.jpg

This is perfect and easily as good as the puddle in T4, but using real reflections will kill perf, so a cubemap is the way to go - well done mister!

Link to comment
Share on other sites

This is perfect and easily as good as the puddle in T4, but using real reflections will kill perf, so a cubemap is the way to go - well done mister!

hopefully better cubemaps than used in T4. some of those look god-awful and completely out of place. i remember being in a small room with a glass cabinet or something and it reflected back a huge room with a red-carpeted staircase. everything in the level used the same cubemap. looked outrageously lazy and terrible, and thats not the only example.

 

can't wait for the day we get vertex painting on worldspawn. Should be possible if you can assign it to the individual primitive nodes somehow. would require rewriting d3 code for void sealing though, which I bet would suck a lot. also having to rerelease all existing FM's after re-dmapping (after you rewrite the dmap code). *sigh*, probably will never happen

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • Petike the Taffer

      I've finally managed to log in to The Dark Mod Wiki. I'm back in the saddle and before the holidays start in full, I'll be adding a few new FM articles and doing other updates. Written in Stone is already done.
      · 1 reply
    • nbohr1more

      TDM 15th Anniversary Contest is now active! Please declare your participation: https://forums.thedarkmod.com/index.php?/topic/22413-the-dark-mod-15th-anniversary-contest-entry-thread/
       
      · 0 replies
    • JackFarmer

      @TheUnbeholden
      You cannot receive PMs. Could you please be so kind and check your mailbox if it is full (or maybe you switched off the function)?
      · 1 reply
    • OrbWeaver

      I like the new frob highlight but it would nice if it was less "flickery" while moving over objects (especially barred metal doors).
      · 4 replies
    • nbohr1more

      Please vote in the 15th Anniversary Contest Theme Poll
       
      · 0 replies
×
×
  • Create New...