From 1866dd531dffc4084dfaf261591bc7ac2a376d67 Mon Sep 17 00:00:00 2001 From: Chuyan Zhang Date: Fri, 4 Oct 2024 22:43:11 -0700 Subject: add basic gltf loader --- src/render_assets.h | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) (limited to 'src/render_assets.h') diff --git a/src/render_assets.h b/src/render_assets.h index 2dfff07..8c28ead 100644 --- a/src/render_assets.h +++ b/src/render_assets.h @@ -9,10 +9,14 @@ namespace iris { struct Mesh { std::string name; - std::vector vertices; - std::vector normals; - std::vector texcoords; + std::vector vertices; + std::vector normals; + std::vector texcoords; std::vector indices; + + // AABB + glm::vec3 p_min; + glm::vec3 p_max; }; struct Material { @@ -23,6 +27,28 @@ struct Texture { }; struct Camera { + enum struct Tag { + Perspective, + Orthographic, + } intrinsic_tag; + struct PerspectiveCamera { + float fovx; + float fovy; + float aspect; + float znear; + float zfar; + }; + + struct OrthographicCamera { + float xmag; + float ymag; + float znear; + float zfar; + }; + union { + PerspectiveCamera perspective; + OrthographicCamera orthographic; + } intrinsic; glm::vec3 position; glm::vec3 direction; glm::vec3 up; @@ -33,7 +59,7 @@ struct Scene { std::vector materials; std::vector textures; - Camera camera_position; + Camera camera; }; } // namespace iris \ No newline at end of file -- cgit v1.2.3-70-g09d2