diff --git a/assets/models/boxes.glb b/assets/models/boxes.glb new file mode 100644 index 0000000..ece416f Binary files /dev/null and b/assets/models/boxes.glb differ diff --git a/assets/models/level_scene.glb.b4k b/assets/models/level_scene.glb.b4k deleted file mode 100644 index 2a78176..0000000 Binary files a/assets/models/level_scene.glb.b4k and /dev/null differ diff --git a/assets/models/level_scene.glb.bak b/assets/models/level_scene.glb.bak deleted file mode 100644 index 10ec7ca..0000000 Binary files a/assets/models/level_scene.glb.bak and /dev/null differ diff --git a/assets/models/level_scene.glb.sn.bak b/assets/models/level_scene.glb.sn.bak deleted file mode 100644 index 3cbbbf3..0000000 Binary files a/assets/models/level_scene.glb.sn.bak and /dev/null differ diff --git a/assets/models/level_scene.glb.weird b/assets/models/level_scene.glb.weird deleted file mode 100644 index fb5f12a..0000000 Binary files a/assets/models/level_scene.glb.weird and /dev/null differ diff --git a/source/game/engine.cpp b/source/game/engine.cpp index 1fd6a1a..3e54f91 100644 --- a/source/game/engine.cpp +++ b/source/game/engine.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include "glm/ext/matrix_clip_space.hpp" @@ -98,12 +99,18 @@ engine::engine() ::load_scene_to_renderer(renderer, level_border)) {} void engine::run() { + auto boxes = load_glb("../assets/models/boxes.glb"); + auto ids = ::load_scene_to_renderer(renderer, boxes); while (!display.should_close()) { try { const auto [map_min, map_max] = ::bounds_of(level_border); const auto [view, projection] = ::calculate_camera_matrices( map_min, map_max, 1920.0f / 1080.0f, 3.0f); - renderer.render(level_border_render_ids, view, projection); + + auto all_ids = level_border_render_ids; + all_ids.insert(all_ids.end(), ids.begin(), ids.end()); + + renderer.render(all_ids, view, projection); } catch (const vuk::VkException &ex) { if (ex.what() != std::string("Out of date.")) { std::rethrow_exception(std::current_exception()); diff --git a/source/game/model.cpp b/source/game/model.cpp index 413bd95..ee0293c 100644 --- a/source/game/model.cpp +++ b/source/game/model.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include #include @@ -174,6 +173,7 @@ load_image_data(std::span raw_data) { const auto index = std::distance(mesh.primitives.begin(), it); auto &primitive = meshes.emplace_back(); + primitive.name = mesh.name; if (it->type != fastgltf::PrimitiveType::Triangles) { throw std::runtime_error("only triangular meshes are supported"); } diff --git a/source/game/model.hpp b/source/game/model.hpp index f82e805..f1aa4ad 100644 --- a/source/game/model.hpp +++ b/source/game/model.hpp @@ -19,6 +19,7 @@ struct mesh_node { std::vector indices; std::uint32_t material_index; glm::mat4 transform; + std::string name; }; struct texture_source {