home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2005 April / Gamestar_72_2005-04_dvd.iso / Dema / Liquidator / Liquidator.tma / data / materials / lava.fx < prev    next >
Text File  |  2004-12-16  |  1KB  |  56 lines

  1. sampler2D NoiseTexture: register(s0);
  2. sampler1D RampTexture: register(s1);
  3. sampler2D StoneTexture: register(s2);
  4. sampler1D AlphaTexture: register(s3);
  5.  
  6. float4 LavaColor1 : register(c0);
  7.  
  8. float4 lava(float2 TexCoord  : TEXCOORD0,
  9.             float2 TexCoord1 : TEXCOORD1,
  10.             float2 TexCoord2 : TEXCOORD2) : COLOR
  11. {
  12.  float4 fnoise = tex2D(NoiseTexture, TexCoord);
  13.  
  14.  fnoise = (fnoise + tex2D(NoiseTexture, TexCoord1))/2;
  15.  
  16.  fnoise = tex2D(NoiseTexture, fnoise);
  17.  
  18.  float4 tex = tex1D(RampTexture, fnoise);
  19.  
  20.  float2 TexCoord3 = lerp(TexCoord2, fnoise, 0.175*fnoise);
  21.  
  22.  float4 stone = tex2D(StoneTexture, TexCoord3);
  23.  
  24.  tex = lerp(tex*1.25, stone*0.5, tex.w);
  25.  
  26.  tex = (tex-0.5) *(3-tex.w)*stone + (LavaColor1-0.125)*(tex.w*3);
  27.  
  28.  return tex;
  29. }
  30.  
  31. float4 lava_alpha(float2 TexCoord  : TEXCOORD0,
  32.             float2 TexCoord1 : TEXCOORD1,
  33.             float2 TexCoord2 : TEXCOORD2,
  34.             float2 TexCoord3 : TEXCOORD3) : COLOR
  35. {
  36.  float4 fnoise = tex2D(NoiseTexture, TexCoord);
  37.  
  38.  fnoise = (fnoise + tex2D(NoiseTexture, TexCoord1))/2;
  39.  
  40.  fnoise = tex2D(NoiseTexture, fnoise);
  41.  
  42.  float4 tex = tex1D(RampTexture, fnoise);
  43.  
  44.  float2 TexCoord4 = lerp(TexCoord2, fnoise, 0.175*fnoise);
  45.  
  46.  float4 stone = tex2D(StoneTexture, TexCoord4);
  47.  
  48.  tex = lerp(tex*1.25, stone*0.5, tex.w);
  49.  
  50.  tex = (tex-0.5) *(3-tex.w)*stone + (LavaColor1-0.125)*(tex.w*3);
  51.  
  52.  tex.a = tex1D(AlphaTexture, TexCoord3).a;
  53.  
  54.  return tex;
  55. }
  56.