Page 1 of 1

Shader help (Darkplaces)

Posted: Thu Oct 16, 2008 8:56 pm
by SusanMDK
I need some help. I want to make a shader for windows in a texture. I want the window part in the texture to reflect stuff. Everything I've done so far, has not worked.

I've not even been able to get a texture overlay another. Like this here:

Code: Select all

textures/test/window_basic_one_00
{
	{
		map textures/test/window_basic_one_00.png
		rgbGen identity
	}
	{
		map $lightmap
		blendfunc filter
		tcGen lightmap
	}
	{
		map textures/liquid/blood.png
		blendfunc add
	}
}
The blood texture is not displayed at all (not that I really want additive blood on walls, but it just don't work!). Is Darkplaces shader support limited to only allow one texture in a shader?

Posted: Fri Oct 31, 2008 6:01 am
by VorteX
Currently darkplaces do not allow more than 2 stages for shader, one of stages is lightmap.

But there is a semi-hacky way to do layers, it works just fine. Use q3map_cloneShader <shadername> - this is compiler directive that lets q3map2 to place cloned surface infront of current with different shader (doubling total triangles count of a surface).

Code: Select all

textures/test/window_basic_one_00-additive
{ 
    surfaceparm trans
    surfaceparm nolightmap
    surfaceparm nonsolid
    surfaceparm trans
    surfaceparm nomarks
    surfaceparm noimpact

    { 
       map textures/liquid/blood.png 
       blendfunc add 
    } 
}

textures/test/window_basic_one_00 
{ 
   q3map_cloneShader  textures/test/window_basic_one_00-additive 
   { 
      map textures/test/window_basic_one_00.png 
      rgbGen identity 
   } 
   { 
      map $lightmap 
      blendfunc filter 
   } 
}
Since this is compiler feature, you can see additional layers only when you recompile your map with q3map2.

Posted: Sat Nov 01, 2008 12:56 am
by SusanMDK
Haa, great, thanks for this! I hope the triangle count doubling don't have too much performance hit though...