fs_vt_mip.sc 688 B

123456789101112131415161718192021222324
  1. $input v_texcoord0
  2. /*
  3. * Copyright 2011-2026 Branimir Karadzic. All rights reserved.
  4. * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
  5. */
  6. /*
  7. * Reference(s):
  8. * - Based on Virtual Texture Demo by Brad Blanchard
  9. * http://web.archive.org/web/20190103162638/http://linedef.com/virtual-texture-demo.html
  10. */
  11. #include "../common/common.sh"
  12. #include "virtualtexture.sh"
  13. void main()
  14. {
  15. float mipCount = log2(PageTableSize);
  16. float mip = floor(MipLevel(v_texcoord0.xy, VirtualTextureSize) - MipBias);
  17. mip = clamp(mip, 0, mipCount);
  18. vec2 offset = floor(v_texcoord0.xy * PageTableSize);
  19. gl_FragColor = vec4(floor(vec3(offset / exp2(mip), mip)) / 255.0, 1.0);
  20. }