Ember

Shader.cg

Dec 23rd, 2012
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. struct VIn
  2. {
  3. float4 p : POSITION;
  4. float2 uv : TEXCOORD0;
  5. };
  6.  
  7. struct VOut
  8. {
  9. float4 p : POSITION;
  10. float c : CLP0;
  11. float2 uv : TEXCOORD0;
  12. };
  13.  
  14. struct PIn
  15. {
  16. float2 uv : TEXCOORD0;
  17. };
  18.  
  19. VOut LightVS(VIn IN,
  20. uniform float4x4 wMat,
  21. uniform float4x4 wvpMat,
  22. uniform float4 clipPlane)
  23. {
  24. VOut OUT;
  25. OUT.p = mul(wvpMat, IN.p);
  26. OUT.c = dot(mul(wMat, IN.p), clipPlane);
  27. OUT.uv = IN.uv;
  28. return OUT;
  29. }
  30.  
  31. float4 LightPS(PIn IN,
  32. uniform float4 colorPrimary,
  33. uniform float4 colorSecondary,
  34. uniform float4 colorOptional,
  35. uniform sampler2D diffuseMap : TEXUNIT0):COLOR
  36. {
  37. float4 colorDiffuse = tex2D(diffuseMap, IN.uv);
  38. float3 colorBlack = float3(0, 0, 0);
  39. float3 primaryContrib = lerp(colorBlack, colorPrimary, colorDiffuse.r/127);
  40. float3 secondaryContrib = lerp(colorBlack, colorSecondary, colorDiffuse.g/127);
  41. float3 optionalContrib = lerp(colorBlack, colorOptional, colorDiffuse.b/127);
  42. float3 finalContrib = primaryContrib + secondaryContrib + optionalContrib;
  43. return float4(finalContrib, colorDiffuse.a);
  44. }
Advertisement
Add Comment
Please, Sign In to add comment