Diffuse.bsl 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include "$ENGINE$\DeferredBasePass.bslinc"
  2. Parameters =
  3. {
  4. Sampler2D gAlbedoSamp : alias("gAlbedoTex");
  5. Sampler2D gNormalSamp : alias("gNormalTex");
  6. Texture2D gAlbedoTex;
  7. Texture2D gNormalTex = "normal";
  8. };
  9. Technique : base("DiffuseCommon") =
  10. {
  11. Language = "HLSL11";
  12. Pass =
  13. {
  14. Fragment =
  15. {
  16. SamplerState gAlbedoSamp : register(s0);
  17. SamplerState gNormalSamp : register(s1);
  18. Texture2D gAlbedoTex : register(t0);
  19. Texture2D gNormalTex : register(t1);
  20. float4 main(
  21. in VStoFS input,
  22. out float4 OutGBufferA : SV_Target1,
  23. out float4 OutGBufferB : SV_Target2) : SV_Target0
  24. {
  25. float3 normal = normalize(gNormalTex.Sample(gNormalSamp, input.uv0) * 2.0f - float3(1, 1, 1));
  26. float3 worldNormal = calcWorldNormal(input, normal);
  27. GBufferData gbufferData;
  28. gbufferData.albedo = gAlbedoTex.Sample(gAlbedoSamp, input.uv0);
  29. gbufferData.worldNormal.xyz = worldNormal;
  30. encodeGBuffer(gbufferData, OutGBufferA, OutGBufferB);
  31. // TODO - Just returning a simple ambient term, use better environment lighting later
  32. return float4(gbufferData.albedo.rgb, 1.0f) * 0.01f;
  33. }
  34. };
  35. };
  36. };
  37. Technique
  38. : inherits("DeferredBasePass")
  39. : inherits("DiffuseCommon") =
  40. {
  41. Language = "HLSL11";
  42. };
  43. Technique
  44. : inherits("DeferredBasePassSkinned")
  45. : inherits("DiffuseCommon") =
  46. {
  47. Language = "HLSL11";
  48. Tags = { "Animated" };
  49. };
  50. Technique : base("DiffuseCommon") =
  51. {
  52. Language = "GLSL";
  53. Pass =
  54. {
  55. Fragment =
  56. {
  57. uniform sampler2D gAlbedoTex;
  58. uniform sampler2D gNormalTex;
  59. out vec4[3] fragColor;
  60. void main()
  61. {
  62. vec3 normal = normalize(texture2D(gNormalTex, uv0).xyz * 2.0f - vec3(1, 1, 1));
  63. vec3 worldNormal = calcWorldNormal(tangentToWorldZ, tangentToWorldX, normal);
  64. GBufferData gbufferData;
  65. gbufferData.albedo = texture2D(gAlbedoTex, uv0);
  66. gbufferData.worldNormal.xyz = worldNormal;
  67. encodeGBuffer(gbufferData, fragColor[1], fragColor[2]);
  68. // TODO - Just returning a simple ambient term, use better environment lighting later
  69. fragColor[0] = vec4(gbufferData.albedo.rgb, 1.0f) * 0.01f;
  70. }
  71. };
  72. };
  73. };
  74. Technique
  75. : inherits("DeferredBasePass")
  76. : inherits("DiffuseCommon") =
  77. {
  78. Language = "GLSL";
  79. };
  80. Technique
  81. : inherits("DeferredBasePassSkinned")
  82. : inherits("DiffuseCommon") =
  83. {
  84. Language = "GLSL";
  85. Tags = { "Animated" };
  86. };