Browse Source

Restructured code & added atlas generator

Restructured the chunk and block logic and tidied up voxel_data class.

Added atlas_generator class. This class has a method to generate the correct atlas UV's for a block, based of its face types.
Jef Belmans 2 years ago
parent
commit
0efeb491a3
36 changed files with 380 additions and 234 deletions
  1. BIN
      assets/textures/atlas_texture.png
  2. 2 2
      coral_renderer/coral_texture.cpp
  3. 1 1
      minecraft_clone/CMakeLists.txt
  4. 21 0
      minecraft_clone/atlas_generator.cpp
  5. 14 0
      minecraft_clone/atlas_generator.h
  6. 25 16
      minecraft_clone/chunk.cpp
  7. 5 2
      minecraft_clone/chunk.h
  8. 1 1
      minecraft_clone/first_app.cpp
  9. 85 1
      minecraft_clone/voxel_data.cpp
  10. 56 80
      minecraft_clone/voxel_data.h
  11. 2 2
      out/build/x64-Debug/.cmake/api/v1/reply/codemodel-v2-ade9ee4f812ef8de95f9.json
  12. 2 2
      out/build/x64-Debug/.cmake/api/v1/reply/index-2023-07-10T22-23-48-0836.json
  13. 2 2
      out/build/x64-Debug/.cmake/api/v1/reply/target-coral_renderer-Debug-f68ad7c60295d6fafcd5.json
  14. 19 5
      out/build/x64-Debug/.cmake/api/v1/reply/target-minecraft_clone-Debug-894fd5e578102454ca3b.json
  15. BIN
      out/build/x64-Debug/.ninja_deps
  16. 75 58
      out/build/x64-Debug/.ninja_log
  17. 2 2
      out/build/x64-Debug/Testing/Temporary/LastTest.log
  18. 9 1
      out/build/x64-Debug/build.ninja
  19. BIN
      out/build/x64-Debug/coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.pdb
  20. BIN
      out/build/x64-Debug/minecraft_clone/CMakeFiles/minecraft_clone.dir/vc140.pdb
  21. BIN
      out/build/x64-Debug/minecraft_clone/assets/textures/atlas_texture.png
  22. BIN
      out/build/x64-Debug/minecraft_clone/minecraft_clone.ilk
  23. BIN
      out/build/x64-Debug/minecraft_clone/minecraft_clone.pdb
  24. BIN
      out/build/x64-Debug/third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader.pdb
  25. BIN
      out/build/x64-Debug/third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap.pdb
  26. BIN
      out/build/x64-Debug/third_party/GLFW/src/CMakeFiles/glfw.dir/glfw.pdb
  27. 2 2
      out/build/x64-Release/.cmake/api/v1/reply/codemodel-v2-6a83d8e304eaf36038d2.json
  28. 2 2
      out/build/x64-Release/.cmake/api/v1/reply/index-2023-07-10T22-10-26-0698.json
  29. 2 2
      out/build/x64-Release/.cmake/api/v1/reply/target-coral_renderer-Release-35afe71d3bed2eaf279e.json
  30. 19 5
      out/build/x64-Release/.cmake/api/v1/reply/target-minecraft_clone-Release-b76b69cea564da5a6bda.json
  31. BIN
      out/build/x64-Release/.ninja_deps
  32. 23 45
      out/build/x64-Release/.ninja_log
  33. 2 2
      out/build/x64-Release/Testing/Temporary/LastTest.log
  34. 9 1
      out/build/x64-Release/build.ninja
  35. BIN
      out/build/x64-Release/minecraft_clone/assets/textures/atlas_texture.dds
  36. BIN
      out/build/x64-Release/minecraft_clone/assets/textures/atlas_texture.png

BIN
assets/textures/atlas_texture.png


+ 2 - 2
coral_renderer/coral_texture.cpp

@@ -188,9 +188,9 @@ void coral_texture::create_image_view(VkFormat format)
 
 
 void coral_texture::create_texture_sampler()
 void coral_texture::create_texture_sampler()
 {
 {
-	VkSamplerCreateInfo sampler_info{ vkinit::sampler_ci(VK_FILTER_LINEAR, device_.properties.limits.maxSamplerAnisotropy) };
+	VkSamplerCreateInfo sampler_info{ vkinit::sampler_ci(VK_FILTER_NEAREST, device_.properties.limits.maxSamplerAnisotropy) };
 	sampler_info.maxLod = static_cast<float>(mip_levels_);
 	sampler_info.maxLod = static_cast<float>(mip_levels_);
 
 
 	if (vkCreateSampler(device_.device(), &sampler_info, nullptr, &sampler_) != VK_SUCCESS)
 	if (vkCreateSampler(device_.device(), &sampler_info, nullptr, &sampler_) != VK_SUCCESS)
 		throw std::runtime_error("ERROR! coral_texture::create_texture_sampler() >> Failed to create texture sampler!");
 		throw std::runtime_error("ERROR! coral_texture::create_texture_sampler() >> Failed to create texture sampler!");
-}
+}

+ 1 - 1
minecraft_clone/CMakeLists.txt

@@ -8,7 +8,7 @@ add_executable(minecraft_clone
     "chunk.cpp"
     "chunk.cpp"
     "voxel_renderer.h"
     "voxel_renderer.h"
     "voxel_renderer.cpp"
     "voxel_renderer.cpp"
-)
+ "atlas_generator.h" "atlas_generator.cpp")
 
 
 set_property(TARGET coral_renderer PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "$<TARGET_FILE_DIR:minecraft_clone>")
 set_property(TARGET coral_renderer PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "$<TARGET_FILE_DIR:minecraft_clone>")
 
 

+ 21 - 0
minecraft_clone/atlas_generator.cpp

@@ -0,0 +1,21 @@
+#include "atlas_generator.h"
+
+#include "voxel_data.h"
+
+void atlas_generator::calculate_uvs(Block& block)
+{
+	for (auto& face : block.faces)
+	{
+		for (auto& vertex : face.vertices)
+		{
+			const float u{ (static_cast<int>(face.type) % blocks_per_row_) * tile_size_ };
+			const float v{ (static_cast<int>(face.type) / blocks_per_row_) * tile_size_ };
+
+			vertex.tex_coord =
+			{
+				vertex.tex_coord.x * tile_size_ + u,
+				vertex.tex_coord.y * tile_size_ + v
+			};
+		}
+	}
+}

+ 14 - 0
minecraft_clone/atlas_generator.h

@@ -0,0 +1,14 @@
+#pragma once
+
+#include <cstdint>
+
+struct Block;
+class atlas_generator final
+{
+public:
+	void calculate_uvs(Block& block);
+
+private:
+	const uint8_t blocks_per_row_{ 16 };
+	const float tile_size_{ 1.f / blocks_per_row_ };
+};

+ 25 - 16
minecraft_clone/chunk.cpp

@@ -23,33 +23,36 @@ void chunk::load(coral_device& device)
 	for (int y = 0; y < chunk_height_; y++)
 	for (int y = 0; y < chunk_height_; y++)
 		for (int x = 0; x < chunk_width_; x++)
 		for (int x = 0; x < chunk_width_; x++)
 			for (int z = 0; z < chunk_width_; z++)
 			for (int z = 0; z < chunk_width_; z++)
-				add_voxel({ x,y,z });
+				add_block({ x,y,z });
+
+	build_mesh(device);
 
 
 	std::cout << "Built chunk with:\n\t"
 	std::cout << "Built chunk with:\n\t"
-		<< faces_.size() << " faces\n\t"
-		<< chunk_width_ * chunk_width_ * chunk_height_ << " voxels\n\t"
-		<< faces_.size() * 2 << " triangles\n";
+		<< num_faces_ << " faces\n\t"
+		<< num_faces_ * 2 << " triangles\n\t"
+		<< blocks_.size() << " blocks\n";
 
 
-	build_mesh(device);
 	position_ = glm::vec3{ 0.f };
 	position_ = glm::vec3{ 0.f };
 }
 }
 
 
-void chunk::add_voxel(glm::vec3 position)
+void chunk::add_block(glm::vec3 position)
 {
 {
-	auto faces = voxel_data::get_faces();
-
+	auto block = voxel_data::get_block();
 	int num_deleted_faces{ 0 };
 	int num_deleted_faces{ 0 };
 
 
-	std::vector<voxel_data::VoxelFace>::iterator it = faces.begin();
-	while (it != faces.end())
+	auto it = block.faces.begin();
+	while (it != block.faces.end())
 	{
 	{
+		// Check if there is a voxel adjecent to this face
 		if (voxel_map_.contains(position + it->vertices[0].normal))
 		if (voxel_map_.contains(position + it->vertices[0].normal))
 		{
 		{
-			it = faces.erase(it);
+			// If there is, delete this face
+			it = block.faces.erase(it);
 			num_deleted_faces++;
 			num_deleted_faces++;
 			continue;
 			continue;
 		}
 		}
 
 
+		// Else, add this face to the chunk
 		for (auto& vertex : it->vertices)
 		for (auto& vertex : it->vertices)
 		{
 		{
 			vertex.position += position;
 			vertex.position += position;
@@ -57,12 +60,15 @@ void chunk::add_voxel(glm::vec3 position)
 
 
 		for (auto& index : it->indices)
 		for (auto& index : it->indices)
 		{
 		{
-			index += (faces_.size() * 4) - (num_deleted_faces * 4);
+			index += (num_faces_ * 4) - (num_deleted_faces * 4);
 		}
 		}
 		++it;
 		++it;
 	}
 	}
 
 
-	faces_.insert(faces_.end(), faces.begin(), faces.end());
+	atlas_generator_.calculate_uvs(block);
+
+	num_faces_ += block.faces.size();
+	blocks_.emplace_back(block);
 }
 }
 
 
 void chunk::build_mesh(coral_device& device)
 void chunk::build_mesh(coral_device& device)
@@ -70,10 +76,13 @@ void chunk::build_mesh(coral_device& device)
 	std::vector<Vertex> vertices;
 	std::vector<Vertex> vertices;
 	std::vector<uint32_t> indices;
 	std::vector<uint32_t> indices;
 
 
-	for (const auto& face : faces_)
+	for (const auto& block : blocks_)
 	{
 	{
-		vertices.insert(vertices.end(), face.vertices.begin(), face.vertices.end());
-		indices.insert(indices.end(), face.indices.begin(), face.indices.end());
+		for (const auto& face : block.faces)
+		{
+			vertices.insert(vertices.end(), face.vertices.begin(), face.vertices.end());
+			indices.insert(indices.end(), face.indices.begin(), face.indices.end());
+		}
 	}
 	}
 
 
 	mesh_ = coral_mesh::create_mesh_from_vertices(device, vertices, indices);
 	mesh_ = coral_mesh::create_mesh_from_vertices(device, vertices, indices);

+ 5 - 2
minecraft_clone/chunk.h

@@ -8,6 +8,7 @@
 
 
 #include "coral_mesh.h"
 #include "coral_mesh.h"
 #include "voxel_data.h"
 #include "voxel_data.h"
+#include "atlas_generator.h"
 
 
 class coral_3d::coral_device;
 class coral_3d::coral_device;
 class chunk final
 class chunk final
@@ -22,10 +23,12 @@ public:
 	glm::vec3 get_position() const { return position_; }
 	glm::vec3 get_position() const { return position_; }
 
 
 private:
 private:
-	void add_voxel(glm::vec3 position);
+	void add_block(glm::vec3 position);
 	void build_mesh(coral_3d::coral_device& device);
 	void build_mesh(coral_3d::coral_device& device);
 
 
-	std::vector<voxel_data::VoxelFace> faces_{};
+	atlas_generator atlas_generator_{};
+	std::vector<Block> blocks_{};
+	uint32_t num_faces_{};
 
 
 	std::unordered_map<glm::vec3, bool> voxel_map_;
 	std::unordered_map<glm::vec3, bool> voxel_map_;
 
 

+ 1 - 1
minecraft_clone/first_app.cpp

@@ -125,7 +125,7 @@ void first_app::load_chunks()
 
 
     atlas_texture_ = coral_texture::create_texture_from_file(
     atlas_texture_ = coral_texture::create_texture_from_file(
         device_,
         device_,
-        "assets/textures/uv_checker.jpg",
+        "assets/textures/atlas_texture.png",
         VK_FORMAT_R8G8B8A8_SRGB
         VK_FORMAT_R8G8B8A8_SRGB
     ); 
     ); 
 }
 }

+ 85 - 1
minecraft_clone/voxel_data.cpp

@@ -1 +1,85 @@
-#include "voxel_data.h"
+#include "voxel_data.h"
+
+Block voxel_data::get_block()
+{
+	Block block;
+	block.faces = get_faces(FaceType::DIRT);
+	block.type = BlockType::STONE;
+	return block;
+}
+
+std::vector<coral_3d::Vertex> voxel_data::get_vertices()
+{
+	return
+	{
+		// FRONT FACE
+		{ {0.f, 0.f, 0.f}, {0.f, 0.f}, {0.f, 0.f, -1.f} },
+		{ {1.f, 0.f, 0.f}, {1.f, 0.f}, {0.f, 0.f, -1.f} },
+		{ {1.f, 1.f, 0.f}, {1.f, 1.f}, {0.f, 0.f, -1.f} },
+		{ {0.f, 1.f, 0.f}, {0.f, 1.f}, {0.f, 0.f, -1.f} },
+
+		// BACK FACE
+		{ {1.f, 0.f, 1.f}, {0.f, 0.f}, {0.f, 0.f, 1.f} },
+		{ {0.f, 0.f, 1.f}, {1.f, 0.f}, {0.f, 0.f, 1.f} },
+		{ {0.f, 1.f, 1.f}, {1.f, 1.f}, {0.f, 0.f, 1.f} },
+		{ {1.f, 1.f, 1.f}, {0.f, 1.f}, {0.f, 0.f, 1.f} },
+
+		// LEFT FACE
+		{ {0.f, 0.f, 1.f}, {0.f, 0.f}, {-1.f, 0.f, 0.f} },
+		{ {0.f, 0.f, 0.f}, {1.f, 0.f}, {-1.f, 0.f, 0.f} },
+		{ {0.f, 1.f, 0.f}, {1.f, 1.f}, {-1.f, 0.f, 0.f} },
+		{ {0.f, 1.f, 1.f}, {0.f, 1.f}, {-1.f, 0.f, 0.f} },
+
+		// RIGHT FACE
+		{ {1.f, 0.f, 0.f}, {0.f, 0.f}, {1.f, 0.f, 0.f} },
+		{ {1.f, 0.f, 1.f}, {1.f, 0.f}, {1.f, 0.f, 0.f} },
+		{ {1.f, 1.f, 1.f}, {1.f, 1.f}, {1.f, 0.f, 0.f} },
+		{ {1.f, 1.f, 0.f}, {0.f, 1.f}, {1.f, 0.f, 0.f} },
+
+		// TOP FACE
+		{ {0.f, 1.f, 0.f}, {0.f, 0.f}, {0.f, 1.f, 0.f} },
+		{ {1.f, 1.f, 0.f}, {1.f, 0.f}, {0.f, 1.f, 0.f} },
+		{ {1.f, 1.f, 1.f}, {1.f, 1.f}, {0.f, 1.f, 0.f} },
+		{ {0.f, 1.f, 1.f}, {0.f, 1.f}, {0.f, 1.f, 0.f} },
+
+		// BOTTOM FACE
+		{ {0.f, 0.f, 1.f}, {0.f, 0.f}, {0.f, -1.f, 0.f} },
+		{ {1.f, 0.f, 1.f}, {1.f, 0.f}, {0.f, -1.f, 0.f} },
+		{ {1.f, 0.f, 0.f}, {1.f, 1.f}, {0.f, -1.f, 0.f} },
+		{ {0.f, 0.f, 0.f}, {0.f, 1.f}, {0.f, -1.f, 0.f} },
+	};
+}
+
+std::vector<uint32_t> voxel_data::get_indices()
+{
+	return
+	{
+		{
+			0, 1, 2, 2, 3, 0, // FRONT FACE
+			4, 5, 6, 6, 7, 4, // BACK FACE
+			8, 9, 10, 10, 11, 8, // LEFT FACE
+			12, 13, 14, 14, 15, 12, // RIGHT FACE
+			16, 17, 18, 18, 19, 16, // TOP FACE
+			20, 21, 22, 22, 23, 20 // BOTTOM FACE
+		}
+	};
+}
+
+std::vector<VoxelFace> voxel_data::get_faces(FaceType face_type)
+{
+	auto verts = get_vertices();
+	auto indices = get_indices();
+
+	std::vector<VoxelFace> faces{6};
+	for (int i = 0; i < 6; i++)
+	{
+		faces[i].vertices =
+			std::vector<coral_3d::Vertex>(verts.begin() + (i * 4), verts.begin() + (i * 4) + 4);
+
+		faces[i].indices =
+			std::vector<uint32_t>(indices.begin() + (i * 6), indices.begin() + (i * 6) + 6);
+
+		faces[i].type = face_type;
+	}
+	return faces;
+}

+ 56 - 80
minecraft_clone/voxel_data.h

@@ -3,92 +3,68 @@
 #include <vector>
 #include <vector>
 #include "coral_mesh.h"
 #include "coral_mesh.h"
 
 
-class voxel_data final
+enum class BlockType : uint8_t
 {
 {
-public:
-	struct VoxelFace
-	{
-		std::vector<coral_3d::Vertex> vertices;
-		std::vector<uint32_t> indices;
-
-		bool operator==(const VoxelFace& other) const
-		{
-			return vertices == other.vertices && indices == other.indices;
-		}
-	};
-
-	static std::vector<coral_3d::Vertex> get_vertices()
-	{
-		return
-		{ 
-			// FRONT FACE
-			{ {0.f, 0.f, 0.f}, {0.f, 0.f}, {0.f, 0.f, -1.f} },
-			{ {1.f, 0.f, 0.f}, {1.f, 0.f}, {0.f, 0.f, -1.f} },
-			{ {1.f, 1.f, 0.f}, {1.f, 1.f}, {0.f, 0.f, -1.f} },
-			{ {0.f, 1.f, 0.f}, {0.f, 1.f}, {0.f, 0.f, -1.f} },
-
-			// BACK FACE
-			{ {1.f, 0.f, 1.f}, {0.f, 0.f}, {0.f, 0.f, 1.f} },
-			{ {0.f, 0.f, 1.f}, {1.f, 0.f}, {0.f, 0.f, 1.f} },
-			{ {0.f, 1.f, 1.f}, {1.f, 1.f}, {0.f, 0.f, 1.f} },
-			{ {1.f, 1.f, 1.f}, {0.f, 1.f}, {0.f, 0.f, 1.f} },
-
-			// LEFT FACE
-			{ {0.f, 0.f, 1.f}, {0.f, 0.f}, {-1.f, 0.f, 0.f} },
-			{ {0.f, 0.f, 0.f}, {1.f, 0.f}, {-1.f, 0.f, 0.f} },
-			{ {0.f, 1.f, 0.f}, {1.f, 1.f}, {-1.f, 0.f, 0.f} },
-			{ {0.f, 1.f, 1.f}, {0.f, 1.f}, {-1.f, 0.f, 0.f} },
-
-			// RIGHT FACE
-			{ {1.f, 0.f, 0.f}, {0.f, 0.f}, {1.f, 0.f, 0.f} },
-			{ {1.f, 0.f, 1.f}, {1.f, 0.f}, {1.f, 0.f, 0.f} },
-			{ {1.f, 1.f, 1.f}, {1.f, 1.f}, {1.f, 0.f, 0.f} },
-			{ {1.f, 1.f, 0.f}, {0.f, 1.f}, {1.f, 0.f, 0.f} },
+	AIR,
+	DIRT,
+	GRASS_BLOCK,
+	SAND,
+	WATER,
+	BEDROCK,
+	STONE,
+	COBBLESTONE,
+	SANDSTONE,
+	OAK_LOG,
+	OAK_LEAVES,
+	GRASS,
+	WOOL
+};
 
 
-			// TOP FACE
-			{ {0.f, 1.f, 0.f}, {0.f, 0.f}, {0.f, 1.f, 0.f} },
-			{ {1.f, 1.f, 0.f}, {1.f, 0.f}, {0.f, 1.f, 0.f} },
-			{ {1.f, 1.f, 1.f}, {1.f, 1.f}, {0.f, 1.f, 0.f} },
-			{ {0.f, 1.f, 1.f}, {0.f, 1.f}, {0.f, 1.f, 0.f} },
+enum class FaceType : uint8_t
+{
+	AIR,
+	DIRT,
+	GRASS_TOP,
+	GRASS_SIDE,
+	SAND,
+	WATER,
+	BEDROCK,
+	STONE,
+	COBBLESTONE,
+	SANDSTONE_SIDE,
+	SANDSTONE_BOTTOM,
+	SANDSTONE_TOP,
+	OAK_LOG_SIDE,
+	OAK_LOG_TOP,
+	OAK_LEAVES
+};
 
 
-			// BOTTOM FACE
-			{ {0.f, 0.f, 1.f}, {0.f, 0.f}, {0.f, -1.f, 0.f} },
-			{ {1.f, 0.f, 1.f}, {1.f, 0.f}, {0.f, -1.f, 0.f} },
-			{ {1.f, 0.f, 0.f}, {1.f, 1.f}, {0.f, -1.f, 0.f} },
-			{ {0.f, 0.f, 0.f}, {0.f, 1.f}, {0.f, -1.f, 0.f} },
-		};
-	}
+struct VoxelFace
+{
+	std::vector<coral_3d::Vertex> vertices;
+	std::vector<uint32_t> indices;
+	FaceType type{ FaceType::STONE };
 
 
-	static std::vector<uint32_t> get_indices()
+	bool operator==(const VoxelFace& other) const
 	{
 	{
-		return
-		{
-			{
-				0, 1, 2, 2, 3, 0, // FRONT FACE
-				4, 5, 6, 6, 7, 4, // BACK FACE
-				8, 9, 10, 10, 11, 8, // LEFT FACE
-				12, 13, 14, 14, 15, 12, // RIGHT FACE
-				16, 17, 18, 18, 19, 16, // TOP FACE
-				20, 21, 22, 22, 23, 20 // BOTTOM FACE
-			}
-		};
+		return vertices == other.vertices && indices == other.indices;
 	}
 	}
+};
 
 
-	static std::vector<VoxelFace> get_faces()
-	{
-		auto verts = get_vertices();
-		auto indices = get_indices();
-
-		std::vector<VoxelFace> faces{6};
-		for (int i = 0; i < 6; i++)
-		{
-			faces[i].vertices =
-				std::vector<coral_3d::Vertex>(verts.begin() + (i * 4), verts.begin() + (i * 4) + 4);
+struct Block
+{
+	BlockType type{ BlockType::STONE };
+	std::vector<VoxelFace> faces;
+	bool is_transparent;
+};
 
 
-			faces[i].indices =
-				std::vector<uint32_t>(indices.begin() + (i * 6), indices.begin() + (i * 6) + 6);
-		}
+class voxel_data final
+{
+public:
+	static Block get_block();
 
 
-		return faces;
-	}
-};
+private:
+	static std::vector<coral_3d::Vertex> get_vertices();
+	static std::vector<uint32_t> get_indices();
+	static std::vector<VoxelFace> get_faces(FaceType face_type);
+};

+ 2 - 2
out/build/x64-Debug/.cmake/api/v1/reply/codemodel-v2-6d4832cd4c9888edf584.json → out/build/x64-Debug/.cmake/api/v1/reply/codemodel-v2-ade9ee4f812ef8de95f9.json

@@ -164,7 +164,7 @@
 				{
 				{
 					"directoryIndex" : 1,
 					"directoryIndex" : 1,
 					"id" : "coral_renderer::@189d46817749ee15bd40",
 					"id" : "coral_renderer::@189d46817749ee15bd40",
-					"jsonFile" : "target-coral_renderer-Debug-03cce6e0f82ddabac0e3.json",
+					"jsonFile" : "target-coral_renderer-Debug-f68ad7c60295d6fafcd5.json",
 					"name" : "coral_renderer",
 					"name" : "coral_renderer",
 					"projectIndex" : 0
 					"projectIndex" : 0
 				},
 				},
@@ -178,7 +178,7 @@
 				{
 				{
 					"directoryIndex" : 2,
 					"directoryIndex" : 2,
 					"id" : "minecraft_clone::@c307b48454f3344e687f",
 					"id" : "minecraft_clone::@c307b48454f3344e687f",
-					"jsonFile" : "target-minecraft_clone-Debug-66d96dba3256297a0e2b.json",
+					"jsonFile" : "target-minecraft_clone-Debug-894fd5e578102454ca3b.json",
 					"name" : "minecraft_clone",
 					"name" : "minecraft_clone",
 					"projectIndex" : 0
 					"projectIndex" : 0
 				},
 				},

+ 2 - 2
out/build/x64-Debug/.cmake/api/v1/reply/index-2023-07-10T13-54-01-0813.json → out/build/x64-Debug/.cmake/api/v1/reply/index-2023-07-10T22-23-48-0836.json

@@ -26,7 +26,7 @@
 	"objects" : 
 	"objects" : 
 	[
 	[
 		{
 		{
-			"jsonFile" : "codemodel-v2-6d4832cd4c9888edf584.json",
+			"jsonFile" : "codemodel-v2-ade9ee4f812ef8de95f9.json",
 			"kind" : "codemodel",
 			"kind" : "codemodel",
 			"version" : 
 			"version" : 
 			{
 			{
@@ -108,7 +108,7 @@
 						}
 						}
 					},
 					},
 					{
 					{
-						"jsonFile" : "codemodel-v2-6d4832cd4c9888edf584.json",
+						"jsonFile" : "codemodel-v2-ade9ee4f812ef8de95f9.json",
 						"kind" : "codemodel",
 						"kind" : "codemodel",
 						"version" : 
 						"version" : 
 						{
 						{

+ 2 - 2
out/build/x64-Debug/.cmake/api/v1/reply/target-coral_renderer-Debug-03cce6e0f82ddabac0e3.json → out/build/x64-Debug/.cmake/api/v1/reply/target-coral_renderer-Debug-f68ad7c60295d6fafcd5.json

@@ -154,11 +154,11 @@
 		},
 		},
 		{
 		{
 			"backtrace" : 4,
 			"backtrace" : 4,
-			"id" : "vkbootstrap::@037116246cbfaaeb5504"
+			"id" : "tinyobjloader::@037116246cbfaaeb5504"
 		},
 		},
 		{
 		{
 			"backtrace" : 4,
 			"backtrace" : 4,
-			"id" : "tinyobjloader::@037116246cbfaaeb5504"
+			"id" : "vkbootstrap::@037116246cbfaaeb5504"
 		},
 		},
 		{
 		{
 			"backtrace" : 4,
 			"backtrace" : 4,

+ 19 - 5
out/build/x64-Debug/.cmake/api/v1/reply/target-minecraft_clone-Debug-66d96dba3256297a0e2b.json → out/build/x64-Debug/.cmake/api/v1/reply/target-minecraft_clone-Debug-894fd5e578102454ca3b.json

@@ -135,7 +135,8 @@
 				2,
 				2,
 				4,
 				4,
 				6,
 				6,
-				8
+				8,
+				10
 			]
 			]
 		}
 		}
 	],
 	],
@@ -147,11 +148,11 @@
 		},
 		},
 		{
 		{
 			"backtrace" : 3,
 			"backtrace" : 3,
-			"id" : "vkbootstrap::@037116246cbfaaeb5504"
+			"id" : "tinyobjloader::@037116246cbfaaeb5504"
 		},
 		},
 		{
 		{
 			"backtrace" : 3,
 			"backtrace" : 3,
-			"id" : "tinyobjloader::@037116246cbfaaeb5504"
+			"id" : "vkbootstrap::@037116246cbfaaeb5504"
 		},
 		},
 		{
 		{
 			"backtrace" : 3,
 			"backtrace" : 3,
@@ -220,7 +221,8 @@
 				2,
 				2,
 				4,
 				4,
 				6,
 				6,
-				8
+				8,
+				10
 			]
 			]
 		},
 		},
 		{
 		{
@@ -230,7 +232,8 @@
 				1,
 				1,
 				3,
 				3,
 				5,
 				5,
-				7
+				7,
+				9
 			]
 			]
 		}
 		}
 	],
 	],
@@ -285,6 +288,17 @@
 			"compileGroupIndex" : 0,
 			"compileGroupIndex" : 0,
 			"path" : "minecraft_clone/voxel_renderer.cpp",
 			"path" : "minecraft_clone/voxel_renderer.cpp",
 			"sourceGroupIndex" : 0
 			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 1,
+			"path" : "minecraft_clone/atlas_generator.h",
+			"sourceGroupIndex" : 1
+		},
+		{
+			"backtrace" : 1,
+			"compileGroupIndex" : 0,
+			"path" : "minecraft_clone/atlas_generator.cpp",
+			"sourceGroupIndex" : 0
 		}
 		}
 	],
 	],
 	"type" : "EXECUTABLE"
 	"type" : "EXECUTABLE"

BIN
out/build/x64-Debug/.ninja_deps


+ 75 - 58
out/build/x64-Debug/.ninja_log

@@ -1,61 +1,78 @@
 # ninja log v5
 # ninja log v5
-65	461	7106873835679722	third_party/GLFW/src/CMakeFiles/glfw.dir/wgl_context.c.obj	3afd0e43a8a16dc7
-13	159	7106873832651373	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.vert.spv	9a4b34331b5d0f2
-9	147	7106873832513277	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.frag.spv	ba83fc1d44361fa5
-15	111	7107004432761100	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/voxel_shader.vert.spv	16847f469f0def3c
-167	1622	7106867895721270	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	5b91ae9e0709491
-59	444	7106873835403360	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	bff58b93f2a56d1b
+12	161	7107288537240059	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.vert.spv	9a4b34331b5d0f2
+79	503	7107288540659696	third_party/GLFW/src/CMakeFiles/glfw.dir/wgl_context.c.obj	3afd0e43a8a16dc7
+9	149	7107288537088261	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.frag.spv	ba83fc1d44361fa5
 2285	2793	7106867905360948	coral_renderer/coral_renderer.exe	92864a5f2f7c8346
 2285	2793	7106867905360948	coral_renderer/coral_renderer.exe	92864a5f2f7c8346
-71	442	7106873835433406	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	c429fa4f29a15e5f
-15	113	7106883634974401	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	319095c1d4500e9c
-11	111	7106883634949393	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	182e19d82932b3f8
-56	465	7106873835720319	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	406eae6337b59224
-47	457	7106873835573883	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	aee4bdf0f24be977
-38	475	7106873835755383	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	c00f6f9bbf18e104
-8	1681	7107060063878665	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	e1882e4a9647373b
-28	467	7106873835694786	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	1ba1283f035e00a8
-31	488	7106873835942108	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	5f4a50f3267d8484
-53	473	7106873835735340	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	e5281a6601c9ad8f
-203	1193	7106873843024082	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	c662391e5a2d5cb6
-41	474	7106873835730328	third_party/GLFW/src/CMakeFiles/glfw.dir/vulkan.c.obj	d687613254603224
-44	478	7106873835765868	third_party/GLFW/src/CMakeFiles/glfw.dir/window.c.obj	b83095e4b715bc19
-68	492	7106873836027688	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	720789878af83506
-50	490	7106873835992216	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	155a4d402b926fee
-493	547	7106873836521219	third_party/GLFW/src/glfw3.lib	72cb3f0d3bdbe8a5
-34	488	7106873835922095	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	ad4c648576f9cac1
-115	846	7107004440106489	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	eb8072b4ba836b9d
-62	487	7106873835927119	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_window.c.obj	b606f65291c42a2c
-11	111	7107004432761100	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/voxel_shader.frag.spv	c206f4c21516b9b
-191	774	7106873838839511	coral_renderer/CMakeFiles/coral_renderer.dir/coral_utils.cpp.obj	ad940dc42cf88241
-161	839	7106873839493842	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	64bd5f7418955876
-194	1419	7106873845271209	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	794b98674d4a018b
-182	1138	7106873842460186	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	b604da246ced7299
-188	1087	7106873841959988	coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj	614c49925260397
-12	1058	7107076961273571	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	785a504661cf292a
-14	869	7107060055781675	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	51e1bcde404a6192
-120	1547	7107004447127943	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	e91c1daf7373c0cf
-22	1560	7106873846680141	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	90b228a58cfb5773
-127	1594	7107004447604242	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	fca11dbf4e05b9f0
-174	1367	7106873844749053	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	4b8d23051f1c25e2
-124	1629	7107004447946552	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	4e458661fcddbdb1
-1058	1352	7107076962311414	minecraft_clone/minecraft_clone.exe	460837c13bca11c9
-25	1447	7106873845564210	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	cc3766067532a1e2
-2188	2263	7107004454020049	coral_renderer/coral_renderer.lib	22d45a2543ff0fdf
-197	1505	7106873846126476	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	465bd8d331e5d360
-1447	1501	7106873846012140	third_party/tinyobjloader.lib	49f56a18b656ab21
-168	1542	7106873846512945	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	83f3a71b3d1f619b
-2	15	0	clean	21a4d0550fd2b6b1
-112	1720	7107004448846566	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	2ad3b241ec9556b6
-1560	1603	7106873847053153	third_party/vkbootstrap.lib	70c0e9f308a489de
-117	2187	7107004453509938	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	1dd7ba116b7c3ece
+86	477	7107288540382786	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	c429fa4f29a15e5f
+25	208	7107288537738902	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/voxel_shader.vert.spv	16847f469f0def3c
+167	1622	7106867895721270	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	5b91ae9e0709491
+73	502	7107288540573430	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	bff58b93f2a56d1b
+18	174	7107288537381042	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	319095c1d4500e9c
+16	169	7107288537340967	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	182e19d82932b3f8
+58	487	7107288540423196	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	aee4bdf0f24be977
+69	501	7107288540372733	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	406eae6337b59224
+48	504	7107288540664690	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	c00f6f9bbf18e104
+37	510	7107288540797296	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	1ba1283f035e00a8
+258	2814	7107288563802728	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	e1882e4a9647373b
+65	507	7107288540725523	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	e5281a6601c9ad8f
+40	495	7107288540573430	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	5f4a50f3267d8484
+51	508	7107288540755549	third_party/GLFW/src/CMakeFiles/glfw.dir/vulkan.c.obj	d687613254603224
+252	1532	7107288551019040	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	c662391e5a2d5cb6
+54	506	7107288540669694	third_party/GLFW/src/CMakeFiles/glfw.dir/window.c.obj	b83095e4b715bc19
+62	509	7107288540765554	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	155a4d402b926fee
+83	509	7107288540785908	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	720789878af83506
+44	505	7107288540649678	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	ad4c648576f9cac1
+510	562	7107288541269874	third_party/GLFW/src/glfw3.lib	72cb3f0d3bdbe8a5
+76	507	7107288540674702	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_window.c.obj	b606f65291c42a2c
+218	988	7107288545567689	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	eb8072b4ba836b9d
+240	824	7107288543940361	coral_renderer/CMakeFiles/coral_renderer.dir/coral_utils.cpp.obj	ad940dc42cf88241
+22	184	7107288537509478	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/voxel_shader.frag.spv	c206f4c21516b9b
+208	960	7107288545286906	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	64bd5f7418955876
+231	1453	7107288550216125	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	b604da246ced7299
+243	1806	7107288553738257	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	794b98674d4a018b
+237	1361	7107288549301268	coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj	614c49925260397
+228	1848	7107288554126990	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	e91c1daf7373c0cf
+495	2064	7107288556344285	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	51e1bcde404a6192
+4	1096	7107289336984598	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	785a504661cf292a
+249	1810	7107288553801995	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	fca11dbf4e05b9f0
+29	1996	7107288555648430	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	90b228a58cfb5773
+221	1813	7107288553827021	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	4b8d23051f1c25e2
+234	1917	7107288554871224	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	4e458661fcddbdb1
+32	1842	7107288554091961	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	cc3766067532a1e2
+1096	1381	7107289338007391	minecraft_clone/minecraft_clone.exe	460837c13bca11c9
+246	1903	7107288554724973	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	465bd8d331e5d360
+2495	2569	7107288561127295	coral_renderer/coral_renderer.lib	22d45a2543ff0fdf
+1842	1893	7107288554544902	third_party/tinyobjloader.lib	49f56a18b656ab21
+215	1990	7107288555597969	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	83f3a71b3d1f619b
+212	2036	7107288556063384	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	2ad3b241ec9556b6
+9	25	0	clean	21a4d0550fd2b6b1
+1996	2040	7107288556038040	third_party/vkbootstrap.lib	70c0e9f308a489de
+225	2495	7107288560624438	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	1dd7ba116b7c3ece
 174	2285	7106867902328919	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	8a161ac1b163f960
 174	2285	7106867902328919	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	8a161ac1b163f960
-5	1032	7107060057418415	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	838eede5482a47f8
-17	911	7107057878183817	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_data.cpp.obj	c95e59058c69337d
-13	934	7107077071629002	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	785a504661cf292a
-934	1222	7107077072651982	minecraft_clone/minecraft_clone.exe	460837c13bca11c9
-4	934	7107079413307576	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	785a504661cf292a
-934	1222	7107079414348089	minecraft_clone/minecraft_clone.exe	460837c13bca11c9
-12	958	7107079721677759	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	785a504661cf292a
-958	1247	7107079722718995	minecraft_clone/minecraft_clone.exe	460837c13bca11c9
-12	1046	7107079994429230	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	785a504661cf292a
-1046	1342	7107079995525286	minecraft_clone/minecraft_clone.exe	460837c13bca11c9
+255	2156	7107288557266742	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	838eede5482a47f8
+477	1970	7107288555405988	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_data.cpp.obj	c95e59058c69337d
+31	1183	7107310309297224	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+28	1189	7107310309362811	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	51e1bcde404a6192
+22	1191	7107310309405719	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_data.cpp.obj	c95e59058c69337d
+12	1200	7107310309471718	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	794b98674d4a018b
+1200	1283	7107310309995961	coral_renderer/coral_renderer.lib	22d45a2543ff0fdf
+15	1321	7107310310694988	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	838eede5482a47f8
+25	1441	7107310311887125	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	785a504661cf292a
+19	1978	7107310317247033	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	e1882e4a9647373b
+1978	2322	7107310318725198	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b
+12	706	7107311061913934	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+707	983	7107311062809042	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b
+19	743	7107315874668665	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+743	1107	7107315875619558	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b
+12	709	7107316621833973	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+710	984	7107316622712774	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b
+4	707	7107318368774359	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+707	992	7107318369736678	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b
+13	724	7107318571352924	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+725	1009	7107318572252060	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b
+11	821	7107318746307527	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+821	1115	7107318747312207	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b
+12	723	7107319171122319	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+723	1009	7107319172021208	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b
+12	700	7107319460038087	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	8a773b33d95615c3
+700	960	7107319460894853	minecraft_clone/minecraft_clone.exe	9271f52edfef5f8b

+ 2 - 2
out/build/x64-Debug/Testing/Temporary/LastTest.log

@@ -1,3 +1,3 @@
-Start testing: Jul 10 15:54 Romance Daylight Time
+Start testing: Jul 11 00:23 Romance Daylight Time
 ----------------------------------------------------------
 ----------------------------------------------------------
-End testing: Jul 10 15:54 Romance Daylight Time
+End testing: Jul 11 00:23 Romance Daylight Time

+ 9 - 1
out/build/x64-Debug/build.ninja

@@ -418,6 +418,14 @@ build minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_renderer.cpp.obj: CXX
   TARGET_COMPILE_PDB = minecraft_clone\CMakeFiles\minecraft_clone.dir\
   TARGET_COMPILE_PDB = minecraft_clone\CMakeFiles\minecraft_clone.dir\
   TARGET_PDB = minecraft_clone\minecraft_clone.pdb
   TARGET_PDB = minecraft_clone\minecraft_clone.pdb
 
 
+build minecraft_clone\CMakeFiles\minecraft_clone.dir\atlas_generator.cpp.obj: CXX_COMPILER__minecraft_clone_unscanned_Debug E$:\Game$ Development\Visual$ Studio$ Solutions\Coral3D\minecraft_clone\atlas_generator.cpp || cmake_object_order_depends_target_minecraft_clone
+  FLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -std:c++latest -MDd /W4 /WX /w
+  INCLUDES = -I"E:\Game Development\Visual Studio Solutions\Coral3D\coral_renderer" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\GLFW\include" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\glm" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\vkbootstrap" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\tinyobjloader" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\vma" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\stb_image" -external:IC:\VulkanSDK\1.3.250.0\Include -external:W0
+  OBJECT_DIR = minecraft_clone\CMakeFiles\minecraft_clone.dir
+  OBJECT_FILE_DIR = minecraft_clone\CMakeFiles\minecraft_clone.dir
+  TARGET_COMPILE_PDB = minecraft_clone\CMakeFiles\minecraft_clone.dir\
+  TARGET_PDB = minecraft_clone\minecraft_clone.pdb
+
 
 
 # =============================================================================
 # =============================================================================
 # Link build statements for EXECUTABLE target minecraft_clone
 # Link build statements for EXECUTABLE target minecraft_clone
@@ -426,7 +434,7 @@ build minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_renderer.cpp.obj: CXX
 #############################################
 #############################################
 # Link the executable minecraft_clone\minecraft_clone.exe
 # Link the executable minecraft_clone\minecraft_clone.exe
 
 
-build minecraft_clone\minecraft_clone.exe: CXX_EXECUTABLE_LINKER__minecraft_clone_Debug minecraft_clone\CMakeFiles\minecraft_clone.dir\main.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\first_app.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_data.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\chunk.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_renderer.cpp.obj | coral_renderer\coral_renderer.lib third_party\GLFW\src\glfw3.lib third_party\vkbootstrap.lib C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib third_party\tinyobjloader.lib || coral_renderer\coral_renderer.lib third_party\GLFW\src\glfw3.lib third_party\tinyobjloader.lib third_party\vkbootstrap.lib
+build minecraft_clone\minecraft_clone.exe: CXX_EXECUTABLE_LINKER__minecraft_clone_Debug minecraft_clone\CMakeFiles\minecraft_clone.dir\main.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\first_app.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_data.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\chunk.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_renderer.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\atlas_generator.cpp.obj | coral_renderer\coral_renderer.lib third_party\GLFW\src\glfw3.lib third_party\vkbootstrap.lib C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib third_party\tinyobjloader.lib || coral_renderer\coral_renderer.lib third_party\GLFW\src\glfw3.lib third_party\tinyobjloader.lib third_party\vkbootstrap.lib
   FLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd
   FLAGS = /DWIN32 /D_WINDOWS /EHsc /Zi /Ob0 /Od /RTC1 -MDd
   LINK_FLAGS = /machine:x64 /debug /INCREMENTAL /subsystem:console
   LINK_FLAGS = /machine:x64 /debug /INCREMENTAL /subsystem:console
   LINK_LIBRARIES = coral_renderer\coral_renderer.lib  third_party\GLFW\src\glfw3.lib  third_party\vkbootstrap.lib  C:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib  third_party\tinyobjloader.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
   LINK_LIBRARIES = coral_renderer\coral_renderer.lib  third_party\GLFW\src\glfw3.lib  third_party\vkbootstrap.lib  C:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib  third_party\tinyobjloader.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib

BIN
out/build/x64-Debug/coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.pdb


BIN
out/build/x64-Debug/minecraft_clone/CMakeFiles/minecraft_clone.dir/vc140.pdb


BIN
out/build/x64-Debug/minecraft_clone/assets/textures/atlas_texture.png


BIN
out/build/x64-Debug/minecraft_clone/minecraft_clone.ilk


BIN
out/build/x64-Debug/minecraft_clone/minecraft_clone.pdb


BIN
out/build/x64-Debug/third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader.pdb


BIN
out/build/x64-Debug/third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap.pdb


BIN
out/build/x64-Debug/third_party/GLFW/src/CMakeFiles/glfw.dir/glfw.pdb


+ 2 - 2
out/build/x64-Release/.cmake/api/v1/reply/codemodel-v2-f3a17738723ec8caac43.json → out/build/x64-Release/.cmake/api/v1/reply/codemodel-v2-6a83d8e304eaf36038d2.json

@@ -164,7 +164,7 @@
 				{
 				{
 					"directoryIndex" : 1,
 					"directoryIndex" : 1,
 					"id" : "coral_renderer::@189d46817749ee15bd40",
 					"id" : "coral_renderer::@189d46817749ee15bd40",
-					"jsonFile" : "target-coral_renderer-Release-50efa119b4f0c302455f.json",
+					"jsonFile" : "target-coral_renderer-Release-35afe71d3bed2eaf279e.json",
 					"name" : "coral_renderer",
 					"name" : "coral_renderer",
 					"projectIndex" : 0
 					"projectIndex" : 0
 				},
 				},
@@ -178,7 +178,7 @@
 				{
 				{
 					"directoryIndex" : 2,
 					"directoryIndex" : 2,
 					"id" : "minecraft_clone::@c307b48454f3344e687f",
 					"id" : "minecraft_clone::@c307b48454f3344e687f",
-					"jsonFile" : "target-minecraft_clone-Release-4f8c08d747befa93158e.json",
+					"jsonFile" : "target-minecraft_clone-Release-b76b69cea564da5a6bda.json",
 					"name" : "minecraft_clone",
 					"name" : "minecraft_clone",
 					"projectIndex" : 0
 					"projectIndex" : 0
 				},
 				},

+ 2 - 2
out/build/x64-Release/.cmake/api/v1/reply/index-2023-07-10T12-58-44-0805.json → out/build/x64-Release/.cmake/api/v1/reply/index-2023-07-10T22-10-26-0698.json

@@ -26,7 +26,7 @@
 	"objects" : 
 	"objects" : 
 	[
 	[
 		{
 		{
-			"jsonFile" : "codemodel-v2-f3a17738723ec8caac43.json",
+			"jsonFile" : "codemodel-v2-6a83d8e304eaf36038d2.json",
 			"kind" : "codemodel",
 			"kind" : "codemodel",
 			"version" : 
 			"version" : 
 			{
 			{
@@ -108,7 +108,7 @@
 						}
 						}
 					},
 					},
 					{
 					{
-						"jsonFile" : "codemodel-v2-f3a17738723ec8caac43.json",
+						"jsonFile" : "codemodel-v2-6a83d8e304eaf36038d2.json",
 						"kind" : "codemodel",
 						"kind" : "codemodel",
 						"version" : 
 						"version" : 
 						{
 						{

+ 2 - 2
out/build/x64-Release/.cmake/api/v1/reply/target-coral_renderer-Release-50efa119b4f0c302455f.json → out/build/x64-Release/.cmake/api/v1/reply/target-coral_renderer-Release-35afe71d3bed2eaf279e.json

@@ -154,11 +154,11 @@
 		},
 		},
 		{
 		{
 			"backtrace" : 4,
 			"backtrace" : 4,
-			"id" : "vkbootstrap::@037116246cbfaaeb5504"
+			"id" : "tinyobjloader::@037116246cbfaaeb5504"
 		},
 		},
 		{
 		{
 			"backtrace" : 4,
 			"backtrace" : 4,
-			"id" : "tinyobjloader::@037116246cbfaaeb5504"
+			"id" : "vkbootstrap::@037116246cbfaaeb5504"
 		},
 		},
 		{
 		{
 			"backtrace" : 4,
 			"backtrace" : 4,

+ 19 - 5
out/build/x64-Release/.cmake/api/v1/reply/target-minecraft_clone-Release-4f8c08d747befa93158e.json → out/build/x64-Release/.cmake/api/v1/reply/target-minecraft_clone-Release-b76b69cea564da5a6bda.json

@@ -135,7 +135,8 @@
 				2,
 				2,
 				4,
 				4,
 				6,
 				6,
-				8
+				8,
+				10
 			]
 			]
 		}
 		}
 	],
 	],
@@ -147,11 +148,11 @@
 		},
 		},
 		{
 		{
 			"backtrace" : 3,
 			"backtrace" : 3,
-			"id" : "vkbootstrap::@037116246cbfaaeb5504"
+			"id" : "tinyobjloader::@037116246cbfaaeb5504"
 		},
 		},
 		{
 		{
 			"backtrace" : 3,
 			"backtrace" : 3,
-			"id" : "tinyobjloader::@037116246cbfaaeb5504"
+			"id" : "vkbootstrap::@037116246cbfaaeb5504"
 		},
 		},
 		{
 		{
 			"backtrace" : 3,
 			"backtrace" : 3,
@@ -220,7 +221,8 @@
 				2,
 				2,
 				4,
 				4,
 				6,
 				6,
-				8
+				8,
+				10
 			]
 			]
 		},
 		},
 		{
 		{
@@ -230,7 +232,8 @@
 				1,
 				1,
 				3,
 				3,
 				5,
 				5,
-				7
+				7,
+				9
 			]
 			]
 		}
 		}
 	],
 	],
@@ -285,6 +288,17 @@
 			"compileGroupIndex" : 0,
 			"compileGroupIndex" : 0,
 			"path" : "minecraft_clone/voxel_renderer.cpp",
 			"path" : "minecraft_clone/voxel_renderer.cpp",
 			"sourceGroupIndex" : 0
 			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 1,
+			"path" : "minecraft_clone/atlas_generator.h",
+			"sourceGroupIndex" : 1
+		},
+		{
+			"backtrace" : 1,
+			"compileGroupIndex" : 0,
+			"path" : "minecraft_clone/atlas_generator.cpp",
+			"sourceGroupIndex" : 0
 		}
 		}
 	],
 	],
 	"type" : "EXECUTABLE"
 	"type" : "EXECUTABLE"

BIN
out/build/x64-Release/.ninja_deps


+ 23 - 45
out/build/x64-Release/.ninja_log

@@ -17,7 +17,7 @@
 92	774	7106973070963880	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	a0bf0e9de6ce9e23
 92	774	7106973070963880	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	a0bf0e9de6ce9e23
 68	796	7106973071228757	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	f4448c998c46664c
 68	796	7106973071228757	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	f4448c998c46664c
 40	761	7106973070782220	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	caf4694f76bba58d
 40	761	7106973070782220	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	caf4694f76bba58d
-8	1735	7107057616276595	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	3a8e8f25ac5a3595
+17	1847	7107297639392144	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	3a8e8f25ac5a3595
 48	797	7106973071223748	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	fdab6c055128488
 48	797	7106973071223748	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	fdab6c055128488
 832	893	7106973072169671	third_party/GLFW/src/glfw3.lib	72cb3f0d3bdbe8a5
 832	893	7106973072169671	third_party/GLFW/src/glfw3.lib	72cb3f0d3bdbe8a5
 88	769	7106973070923843	third_party/GLFW/src/CMakeFiles/glfw.dir/wgl_context.c.obj	82f0c3e97c492c8b
 88	769	7106973070923843	third_party/GLFW/src/CMakeFiles/glfw.dir/wgl_context.c.obj	82f0c3e97c492c8b
@@ -28,60 +28,38 @@
 222	1046	7106973073716601	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	9322b9a51b9da23b
 222	1046	7106973073716601	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	9322b9a51b9da23b
 251	1426	7106973077526035	coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj	ccb6ec365f85f624
 251	1426	7106973077526035	coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj	ccb6ec365f85f624
 245	1439	7106973077656535	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	68d39b4a661c7765
 245	1439	7106973077656535	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	68d39b4a661c7765
-257	2221	7106973085346225	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	22d76ed5186f4695
+12	1054	7107273711999189	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	22d76ed5186f4695
 242	1768	7106973080921237	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	9e9fbf41d3abfc6c
 242	1768	7106973080921237	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	9e9fbf41d3abfc6c
-14	1062	7107057609554238	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-17	878	7107057607723868	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	ea894ddbb51e986f
+23	1275	7107297633685650	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
+25	966	7107297630602310	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	ea894ddbb51e986f
 263	1844	7106973081701002	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	c44799d01941a134
 263	1844	7106973081701002	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	c44799d01941a134
 33	2413	7106973087368130	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	af5f1ea9e4fd4598
 33	2413	7106973087368130	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	af5f1ea9e4fd4598
 235	1814	7106973081339709	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	c20c8f0603546fd6
 235	1814	7106973081339709	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	c20c8f0603546fd6
 248	1983	7106973083053831	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	9f39a3ad561683f6
 248	1983	7106973083053831	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	9f39a3ad561683f6
-5	1019	7107057609132519	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	ca275f79d188cf8f
+13	1104	7107297631992395	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	ca275f79d188cf8f
 226	2257	7106973085784156	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	5f8313c86bb83823
 226	2257	7106973085784156	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	5f8313c86bb83823
 2	17	0	clean	21a4d0550fd2b6b1
 2	17	0	clean	21a4d0550fd2b6b1
 229	2418	7106973087363124	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	5053ccbaabbd5e9d
 229	2418	7106973087363124	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	5053ccbaabbd5e9d
 260	2501	7106973088271570	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	77b1cf6059c01a73
 260	2501	7106973088271570	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	77b1cf6059c01a73
-3445	3500	7106973098168225	coral_renderer/coral_renderer.lib	22d45a2543ff0fdf
+1055	1111	7107273712472526	coral_renderer/coral_renderer.lib	22d45a2543ff0fdf
 2413	2454	7106973087806707	third_party/vkbootstrap.lib	70c0e9f308a489de
 2413	2454	7106973087806707	third_party/vkbootstrap.lib	70c0e9f308a489de
 36	2750	7106973090741295	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	5d11c9f136fb5987
 36	2750	7106973090741295	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	5d11c9f136fb5987
-1736	2127	7107057618610327	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
+913	1315	7107298464916268	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
 2750	2790	7106973091161303	third_party/tinyobjloader.lib	49f56a18b656ab21
 2750	2790	7106973091161303	third_party/tinyobjloader.lib	49f56a18b656ab21
 238	3445	7106973097661508	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	7f5e366fb42bc0ab
 238	3445	7106973097661508	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	7f5e366fb42bc0ab
-11	767	7107057606625744	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_data.cpp.obj	8a7daf6159c2fa53
-7	253	7106971247342075	build.ninja	6cdfad673094e22
-18	985	7107070411491187	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	ea894ddbb51e986f
-8	1009	7107070411751067	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	ca275f79d188cf8f
-15	1068	7107070412322748	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-12	1737	7107070418999784	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	3a8e8f25ac5a3595
-1737	2121	7107070421293877	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-4	970	7107080111137148	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-971	1346	7107080113367494	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-12	1104	7107080767737121	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-1105	1518	7107080770281042	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-5	1085	7107081113700456	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-1086	1466	7107081115991991	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-12	1136	7107082316443488	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-1136	1523	7107082318783755	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-12	1128	7107082857406499	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-1128	1526	7107082859775441	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-14	844	7107083403439612	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	ea894ddbb51e986f
-4	973	7107083404733110	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	ca275f79d188cf8f
-11	1157	7107083406559598	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-8	1700	7107083411978715	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	3a8e8f25ac5a3595
-1700	2079	7107083414251430	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-21	847	7107083744781145	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	ea894ddbb51e986f
-11	990	7107083746200900	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	ca275f79d188cf8f
-18	1176	7107083748065314	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-15	1723	7107083753521079	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	3a8e8f25ac5a3595
-1723	2102	7107083755793614	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-22	851	7107083853375643	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	ea894ddbb51e986f
-12	980	7107083854661005	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	ca275f79d188cf8f
-19	1181	7107083856661235	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
-15	1718	7107083862017939	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	3a8e8f25ac5a3595
-1718	2104	7107083864370393	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-4	917	7107085366094024	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	22d76ed5186f4695
-918	970	7107085366540659	coral_renderer/coral_renderer.lib	22d45a2543ff0fdf
-971	1369	7107085369010711	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
-10	911	7107085579521831	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	22d76ed5186f4695
-912	966	7107085579962066	coral_renderer/coral_renderer.lib	22d45a2543ff0fdf
-966	1345	7107085582357648	minecraft_clone/minecraft_clone.exe	8456e412b1532d68
+12	913	7107298462519984	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_data.cpp.obj	8a7daf6159c2fa53
+7	253	7107302266021086	build.ninja	6cdfad673094e22
+28	917	7107308678386633	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_renderer.cpp.obj	ea894ddbb51e986f
+21	927	7107308678481763	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_data.cpp.obj	8a7daf6159c2fa53
+12	1026	7107308679459972	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	22d76ed5186f4695
+15	1080	7107308680024169	minecraft_clone/CMakeFiles/minecraft_clone.dir/main.cpp.obj	ca275f79d188cf8f
+24	1233	7107308681549378	minecraft_clone/CMakeFiles/minecraft_clone.dir/chunk.cpp.obj	b80463febc9c872
+18	1815	7107308687340807	minecraft_clone/CMakeFiles/minecraft_clone.dir/first_app.cpp.obj	3a8e8f25ac5a3595
+11	69	7107308932552363	coral_renderer/coral_renderer.lib	22d45a2543ff0fdf
+15	722	7107308939238273	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	63a7b03febd0c3e3
+722	1141	7107308941742548	minecraft_clone/minecraft_clone.exe	19589f09f6353f8d
+12	806	7107310044850487	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	63a7b03febd0c3e3
+807	1460	7107310049362957	minecraft_clone/minecraft_clone.exe	19589f09f6353f8d
+22	704	7107319803854932	minecraft_clone/CMakeFiles/minecraft_clone.dir/atlas_generator.cpp.obj	63a7b03febd0c3e3
+18	822	7107319805018740	minecraft_clone/CMakeFiles/minecraft_clone.dir/voxel_data.cpp.obj	8a7daf6159c2fa53
+823	1213	7107319807339206	minecraft_clone/minecraft_clone.exe	19589f09f6353f8d

+ 2 - 2
out/build/x64-Release/Testing/Temporary/LastTest.log

@@ -1,3 +1,3 @@
-Start testing: Jul 10 14:58 Romance Daylight Time
+Start testing: Jul 11 00:10 Romance Daylight Time
 ----------------------------------------------------------
 ----------------------------------------------------------
-End testing: Jul 10 14:58 Romance Daylight Time
+End testing: Jul 11 00:10 Romance Daylight Time

+ 9 - 1
out/build/x64-Release/build.ninja

@@ -418,6 +418,14 @@ build minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_renderer.cpp.obj: CXX
   TARGET_COMPILE_PDB = minecraft_clone\CMakeFiles\minecraft_clone.dir\
   TARGET_COMPILE_PDB = minecraft_clone\CMakeFiles\minecraft_clone.dir\
   TARGET_PDB = minecraft_clone\minecraft_clone.pdb
   TARGET_PDB = minecraft_clone\minecraft_clone.pdb
 
 
+build minecraft_clone\CMakeFiles\minecraft_clone.dir\atlas_generator.cpp.obj: CXX_COMPILER__minecraft_clone_unscanned_Release E$:\Game$ Development\Visual$ Studio$ Solutions\Coral3D\minecraft_clone\atlas_generator.cpp || cmake_object_order_depends_target_minecraft_clone
+  FLAGS = /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -std:c++latest -MD /W4 /WX /w
+  INCLUDES = -I"E:\Game Development\Visual Studio Solutions\Coral3D\coral_renderer" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\GLFW\include" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\glm" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\vkbootstrap" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\tinyobjloader" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\vma" -I"E:\Game Development\Visual Studio Solutions\Coral3D\third_party\stb_image" -external:IC:\VulkanSDK\1.3.250.0\Include -external:W0
+  OBJECT_DIR = minecraft_clone\CMakeFiles\minecraft_clone.dir
+  OBJECT_FILE_DIR = minecraft_clone\CMakeFiles\minecraft_clone.dir
+  TARGET_COMPILE_PDB = minecraft_clone\CMakeFiles\minecraft_clone.dir\
+  TARGET_PDB = minecraft_clone\minecraft_clone.pdb
+
 
 
 # =============================================================================
 # =============================================================================
 # Link build statements for EXECUTABLE target minecraft_clone
 # Link build statements for EXECUTABLE target minecraft_clone
@@ -426,7 +434,7 @@ build minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_renderer.cpp.obj: CXX
 #############################################
 #############################################
 # Link the executable minecraft_clone\minecraft_clone.exe
 # Link the executable minecraft_clone\minecraft_clone.exe
 
 
-build minecraft_clone\minecraft_clone.exe: CXX_EXECUTABLE_LINKER__minecraft_clone_Release minecraft_clone\CMakeFiles\minecraft_clone.dir\main.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\first_app.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_data.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\chunk.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_renderer.cpp.obj | coral_renderer\coral_renderer.lib third_party\GLFW\src\glfw3.lib third_party\vkbootstrap.lib C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib third_party\tinyobjloader.lib || coral_renderer\coral_renderer.lib third_party\GLFW\src\glfw3.lib third_party\tinyobjloader.lib third_party\vkbootstrap.lib
+build minecraft_clone\minecraft_clone.exe: CXX_EXECUTABLE_LINKER__minecraft_clone_Release minecraft_clone\CMakeFiles\minecraft_clone.dir\main.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\first_app.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_data.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\chunk.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\voxel_renderer.cpp.obj minecraft_clone\CMakeFiles\minecraft_clone.dir\atlas_generator.cpp.obj | coral_renderer\coral_renderer.lib third_party\GLFW\src\glfw3.lib third_party\vkbootstrap.lib C$:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib third_party\tinyobjloader.lib || coral_renderer\coral_renderer.lib third_party\GLFW\src\glfw3.lib third_party\tinyobjloader.lib third_party\vkbootstrap.lib
   FLAGS = /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -MD
   FLAGS = /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -MD
   LINK_FLAGS = /machine:x64 /INCREMENTAL:NO /subsystem:console
   LINK_FLAGS = /machine:x64 /INCREMENTAL:NO /subsystem:console
   LINK_LIBRARIES = coral_renderer\coral_renderer.lib  third_party\GLFW\src\glfw3.lib  third_party\vkbootstrap.lib  C:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib  third_party\tinyobjloader.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
   LINK_LIBRARIES = coral_renderer\coral_renderer.lib  third_party\GLFW\src\glfw3.lib  third_party\vkbootstrap.lib  C:\VulkanSDK\1.3.250.0\Lib\vulkan-1.lib  third_party\tinyobjloader.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib

BIN
out/build/x64-Release/minecraft_clone/assets/textures/atlas_texture.dds


BIN
out/build/x64-Release/minecraft_clone/assets/textures/atlas_texture.png