42 static_assert(
sizeof(MeshVertexCompact) == 16);
std::unique_ptr< T, StlDeleter< T > > UniquePtr
std::unique_ptr with custom deleter that uses a Foundation::Core::Allocator to deallocate memory.
Definition Allocator.hpp:161
vec3 float3
Definition Math.hpp:24
vec4 float4
Definition Math.hpp:23
std::filesystem::path Path
OS specific filesystem path. Alias of std::filesystem::path.
Definition Filesystem.hpp:10
ModelViewer implementation.
Definition App.cpp:17
uint32_t MeshIndex
Definition Mesh.hpp:12
void meshLoadObjFile(Vector< MeshVertex > &vertices, Vector< MeshIndex > &indices, const Path &path)
Load a mesh from an OBJ file.
Definition Mesh.cpp:120
void meshBuildMeshlets(Vector< MeshMeshlet > &outMeshlet, Vector< MeshIndex > &outMeshletVertices, Vector< MeshMicroIndex > &outMeshletTriangles, Span< const MeshVertex > vertices, Span< const MeshIndex > indices)
Build meshlets from a mesh.
Definition Mesh.cpp:71
uint8_t MeshMicroIndex
Definition Mesh.hpp:62
constexpr uint32_t kMeshletMaxTriangles
Definition Mesh.hpp:64
float meshGenerateLod(Vector< MeshIndex > &outIndices, Span< const MeshVertex > vertices, Span< const MeshIndex > indices, const float lodScale)
Generate a simplified LOD mesh index buffer from the input mesh.
Definition Mesh.cpp:52
constexpr uint32_t kMeshletMaxVertices
Definition Mesh.hpp:63
Meshlet structure containing offsets and counts to access meshlet data.
Definition Mesh.hpp:48
uint32_t triangleCount
Definition Mesh.hpp:54
uint32_t vertexCount
Definition Mesh.hpp:53
float3 coneApex
Definition Mesh.hpp:58
uint32_t vertexOffset
Definition Mesh.hpp:50
float4 sphereCenterRadius
Definition Mesh.hpp:56
float4 coneAxisAngle
Definition Mesh.hpp:57
uint32_t triangleOffset
Definition Mesh.hpp:51
Compact 4-byte aligned vertex structure for static meshes.
Definition Mesh.hpp:28
uint16_t u
Definition Mesh.hpp:32
uint16_t px
Definition Mesh.hpp:29
uint16_t pz
Definition Mesh.hpp:29
uint16_t tp
Definition Mesh.hpp:30
static MeshVertexCompact Pack(MeshVertex data)
Definition Mesh.hpp:37
uint32_t np
Definition Mesh.hpp:31
uint16_t v
Definition Mesh.hpp:32
static MeshVertexCompact Pack(vec3 pos, vec3 normal, vec3 tangent, vec3 bitangent, vec2 uv)
Pack vertex attributes into compact MeshVertex.
Definition Mesh.cpp:14
uint16_t py
Definition Mesh.hpp:29
Full-size vertex structure for static meshes.
Definition Mesh.hpp:17
vec3 bitangent
Definition Mesh.hpp:21
vec3 normal
Definition Mesh.hpp:19
vec3 pos
Definition Mesh.hpp:18
vec3 tangent
Definition Mesh.hpp:20
vec2 uv
Definition Mesh.hpp:22