diff options
author | Chuyan Zhang <me@zcy.moe> | 2024-10-04 22:43:11 -0700 |
---|---|---|
committer | Chuyan Zhang <me@zcy.moe> | 2024-10-04 22:43:11 -0700 |
commit | 1866dd531dffc4084dfaf261591bc7ac2a376d67 (patch) | |
tree | 55e6cbe7b54fc24fb80463f337a86089ef8b9bc3 /src/render_assets.h | |
parent | d116dfacb8dc50ad9fb98d67d084d901ae95e456 (diff) | |
download | iris-1866dd531dffc4084dfaf261591bc7ac2a376d67.tar.gz iris-1866dd531dffc4084dfaf261591bc7ac2a376d67.zip |
add basic gltf loader
Diffstat (limited to 'src/render_assets.h')
-rw-r--r-- | src/render_assets.h | 34 |
1 files changed, 30 insertions, 4 deletions
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<float> vertices; - std::vector<float> normals; - std::vector<float> texcoords; + std::vector<glm::vec3> vertices; + std::vector<glm::vec3> normals; + std::vector<glm::vec2> texcoords; std::vector<uint32_t> 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<Material> materials; std::vector<Texture> textures; - Camera camera_position; + Camera camera; }; } // namespace iris
\ No newline at end of file |