home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / demowot_english.exe / InfDX / Shaders / sprite-gradient-1-pixel.hlsl < prev    next >
Text File  |  2005-10-06  |  828b  |  43 lines

  1. struct VS_OUTPUT
  2. {
  3. #if TDX_SHADERFLAG_VERTEXCOLOR
  4.     float4 Diffuse        : COLOR0;
  5. #endif
  6. #if TDX_SHADERFLAG_VERTEXUV
  7.     float2 UV        : TEXCOORD0;
  8. #endif
  9. };
  10.  
  11. half4 TDX_CONST_MODELCOLOR;
  12. sampler s_diff : register(s0);
  13. sampler s_spec : register(s1);
  14.  
  15. half4 main(VS_OUTPUT In) : COLOR
  16. {
  17.     half4 FinalColor;
  18.  
  19. #if TDX_SHADERFLAG_VERTEXUV
  20.     half4 Diff = tex2D(s_diff, In.UV);
  21.     half4 Spec = tex2D(s_spec, In.UV);
  22. #else
  23.     half4 Diff = 1;
  24.     half4 Spec = 1;
  25. #endif
  26.  
  27.     if ( In.Diffuse.r == 1.0f && In.Diffuse.g == 1.0f && In.Diffuse.b == 1.0f )
  28.     {
  29.         FinalColor = Diff;
  30.     }
  31.     else
  32.     {
  33.         half4 r1 = dot(Diff.rgb, half3(0.299,0.587,0.114));        //fekete feher
  34.         float spec = In.Diffuse.a+Spec.a;
  35.         half4 r0 = r1*In.Diffuse;
  36.         
  37.         FinalColor.rgb = spec>1 ? r0 : Diff;
  38.         FinalColor.a =Diff.a;
  39.     }
  40.  
  41.     return FinalColor;
  42. }  
  43.