fs_deferred_geom.sc 766 B

12345678910111213141516171819202122232425262728293031
  1. $input v_wpos, v_view, v_normal, v_tangent, v_bitangent, v_texcoord0
  2. /*
  3. * Copyright 2011-2025 Branimir Karadzic. All rights reserved.
  4. * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
  5. */
  6. #include "../common/common.sh"
  7. SAMPLER2D(s_texColor, 0);
  8. SAMPLER2D(s_texNormal, 1);
  9. void main()
  10. {
  11. vec3 normal;
  12. normal.xy = texture2D(s_texNormal, v_texcoord0).xy * 2.0 - 1.0;
  13. normal.z = sqrt(1.0 - dot(normal.xy, normal.xy) );
  14. mat3 tbn = mat3(
  15. normalize(v_tangent),
  16. normalize(v_bitangent),
  17. normalize(v_normal)
  18. );
  19. normal = normalize(mul(tbn, normal) );
  20. vec3 wnormal = normalize(mul(u_invView, vec4(normal, 0.0) ).xyz);
  21. gl_FragData[0] = texture2D(s_texColor, v_texcoord0);
  22. gl_FragData[1] = vec4(encodeNormalUint(wnormal), 1.0);
  23. }