Advertisement
Guest User

pixel_program/a_envmask_specmap_ps11.psh

a guest
May 11th, 2016
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. //hlsl ps_1_1
  2.  
  3. #include "pixel_program/include/pixel_shader_constants.inc"
  4. #include "pixel_program/include/functions.inc"
  5.  
  6. sampler diffuseMap  : register(s0);
  7. sampler specularMap     : register(s1);
  8. sampler envMap      : register(s2);
  9.  
  10. float4 main
  11. (
  12.     in float3 vertexDiffuse     : COLOR0,
  13.     in float3 vertexSpecular    : COLOR1,
  14.     in float2 tcs_MAIN      : TEXCOORD0,
  15.     in float2 tcs_SPEC      : TEXCOORD1,
  16.     in float2 tcs_ENVM      : TEXCOORD2
  17. )
  18. : COLOR
  19. {
  20.     float4 result; 
  21.  
  22.     // Sample color map and env mask
  23.     float3 diffuseColor;
  24.     float envMask;
  25.     {
  26.         float4 sample = tex2D(diffuseMap, tcs_MAIN);
  27.         diffuseColor = sample.rgb;
  28.         envMask = sample.a;
  29.     }
  30.     float specularMask = tex2D(specularMap, tcs_SPEC).a;
  31.  
  32.     // sample environment map
  33.     float3 envColor = tex2D(envMap, tcs_ENVM);
  34.    
  35.     // apply lighting
  36.     float3 diffuseLitSurface = diffuseColor * vertexDiffuse;
  37.  
  38.     // lerp masked environment back on after lighting and add specular
  39.     result.rgb = lerp(diffuseLitSurface, envColor, envMask) + (vertexSpecular * specularMask);
  40.     result.a = alphaFadeOpacity;
  41.  
  42.     return result;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement