From b68c8d8cbe9274e42a89888186152d4ded1a2962 Mon Sep 17 00:00:00 2001 From: skal Date: Fri, 6 Feb 2026 06:51:16 +0100 Subject: feat(3d): Implement basic OBJ mesh asset pipeline Added support for loading and rendering OBJ meshes. - Updated asset_packer to parse .obj files into a binary format. - Added MeshAsset and GetMeshAsset helper to asset_manager. - Extended Object3D with mesh_asset_id and ObjectType::MESH. - Implemented mesh rasterization pipeline in Renderer3D. - Added a sample cube mesh and verified in test_3d_render. --- src/tests/test_3d_render.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/tests/test_3d_render.cc') diff --git a/src/tests/test_3d_render.cc b/src/tests/test_3d_render.cc index f8bbaa7..ae00819 100644 --- a/src/tests/test_3d_render.cc +++ b/src/tests/test_3d_render.cc @@ -5,6 +5,7 @@ #include "3d/object.h" #include "3d/renderer.h" #include "3d/scene.h" +#include "generated/assets.h" #include "gpu/effects/shaders.h" #include "gpu/texture_manager.h" #include "platform.h" @@ -141,6 +142,14 @@ void setup_scene() { sphere.color = vec4(0.2, 1, 0.2, 1); g_scene.add_object(sphere); + // Mesh Object (Rasterized) + Object3D mesh_obj(ObjectType::MESH); + mesh_obj.position = vec3(-4.0f, 2.0f, 0); + mesh_obj.scale = vec3(2.0f, 2.0f, 2.0f); + mesh_obj.color = vec4(0.2, 0.2, 1, 1); + mesh_obj.mesh_asset_id = AssetId::ASSET_MESH_CUBE; + g_scene.add_object(mesh_obj); + // Random objects for (int i = 0; i < 30; ++i) { ObjectType type = ObjectType::SPHERE; -- cgit v1.2.3