Guest User

Untitled

a guest
Feb 20th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. static func compute_uv(atlas_texture):
  2. var uv_array_region = atlas_texture.get_region()
  3. var uv_array_size = atlas_texture.get_atlas().get_size()
  4.  
  5. # 0.5 is used to get a margin (remove blank pixel due to round)
  6. var uv_array_00 = (uv_array_region.pos + Vector2(0.5, 0.5)) / uv_array_size
  7. var uv_array_01 = (uv_array_region.pos + Vector2(0.5, uv_array_region.size.y - 0.5)) / uv_array_size
  8. var uv_array_11 = (uv_array_region.pos + uv_array_region.size + Vector2(-0.5, -0.5)) / uv_array_size
  9. var uv_array_10 = (uv_array_region.pos + Vector2(uv_array_region.size.x -0.5, 0.5)) / uv_array_size
  10.  
  11. return [uv_array_00, uv_array_10, uv_array_11, uv_array_01]
  12.  
  13. # Used for shader (when we use atlas texture in shaders)
  14. static func compute_uv_decal(atlas_texture_from, atlas_texture_to):
  15. var atlas_texture_size = atlas_texture_from.get_atlas().get_size()
  16. var atlas_texture_from_region = atlas_texture_from.get_region().pos
  17. var atlas_texture_to_region = atlas_texture_to.get_region().pos
  18.  
  19. return (atlas_texture_to_region - atlas_texture_from_region) / atlas_texture_size
Add Comment
Please, Sign In to add comment