Example.bsl 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #include "$ENGINE$\BasePass.bslinc"
  2. Parameters =
  3. {
  4. Sampler2D samp : alias("tex");
  5. Texture2D tex;
  6. };
  7. Technique : base("Surface") =
  8. {
  9. Language = "HLSL11";
  10. Pass =
  11. {
  12. Fragment =
  13. {
  14. SamplerState samp : register(s0);
  15. Texture2D tex : register(t0);
  16. void main(
  17. in VStoFS input,
  18. out float4 OutGBufferA : SV_Target0,
  19. out float4 OutGBufferB : SV_Target1,
  20. out float2 OutGBufferC : SV_Target2)
  21. {
  22. SurfaceData surfaceData;
  23. surfaceData.albedo = float4(tex.Sample(samp, input.uv0).xyz, 1.0f);
  24. surfaceData.worldNormal.xyz = input.tangentToWorldZ;
  25. surfaceData.roughness = 1.0f;
  26. surfaceData.metalness = 0.0f;
  27. encodeGBuffer(surfaceData, OutGBufferA, OutGBufferB, OutGBufferC);
  28. }
  29. };
  30. };
  31. };
  32. Technique : base("Surface") =
  33. {
  34. Language = "GLSL";
  35. Pass =
  36. {
  37. Fragment =
  38. {
  39. layout(location = 0) in vec2 uv0;
  40. layout(location = 1) in vec3 worldPosition;
  41. layout(location = 2) in vec3 tangentToWorldZ;
  42. layout(location = 3) in vec4 tangentToWorldX;
  43. layout(binding = 4) uniform sampler2D tex;
  44. layout(location = 0) out vec4 fragColor[3];
  45. void main()
  46. {
  47. SurfaceData surfaceData;
  48. surfaceData.albedo = texture(tex, uv0);
  49. surfaceData.worldNormal.xyz = tangentToWorldZ;
  50. surfaceData.roughness = 1.0f;
  51. surfaceData.metalness = 0.0f;
  52. encodeGBuffer(surfaceData, fragColor[0], fragColor[1], fragColor[2]);
  53. }
  54. };
  55. };
  56. };
  57. #include "$ENGINE$\Surface.bslinc"