atlas_generator.cpp 537 B

1234567891011121314151617181920212223
  1. #include "atlas_generator.h"
  2. #include "voxel_data.h"
  3. const float atlas_generator::tile_size_{ 1.f / blocks_per_row_ };
  4. void atlas_generator::calculate_uvs(Block& block)
  5. {
  6. for (auto& face : block.faces)
  7. {
  8. for (auto& vertex : face.vertices)
  9. {
  10. const float u{ (static_cast<int>(face.type) % blocks_per_row_) * tile_size_ };
  11. const float v{ (static_cast<int>(face.type) / blocks_per_row_) * tile_size_ };
  12. vertex.tex_coord =
  13. {
  14. vertex.tex_coord.x * tile_size_ + u,
  15. vertex.tex_coord.y * tile_size_ + v
  16. };
  17. }
  18. }
  19. }