#pragma once #include <stdafx.h> #include "Model.h" namespace fpr { struct ModelLoader { static constexpr unsigned int USING_ASSIMP_DEFAULT_FLAGS = aiProcess_Triangulate | aiProcess_FlipUVs | aiProcess_JoinIdenticalVertices | aiProcess_GenSmoothNormals | aiProcess_OptimizeMeshes | aiProcess_OptimizeGraph; static constexpr std::pair<const char*, aiTextureType> ASSIMP_TEXTURE_TYPES[] = { { "Ambient", aiTextureType_AMBIENT, }, { "Ambient Occlusion", aiTextureType_AMBIENT_OCCLUSION, }, { "Base", aiTextureType_BASE_COLOR, }, { "Diffuse", aiTextureType_DIFFUSE, }, { "Diffuse Roughness", aiTextureType_DIFFUSE_ROUGHNESS, }, { "Displacement", aiTextureType_DISPLACEMENT, }, { "Emission", aiTextureType_EMISSION_COLOR, }, { "Emissive", aiTextureType_EMISSIVE, }, { "Height", aiTextureType_HEIGHT, }, { "Light Map", aiTextureType_LIGHTMAP, }, { "Metal", aiTextureType_METALNESS, }, { "None", aiTextureType_NONE, }, { "Normals", aiTextureType_NORMALS, }, { "Normal Camera", aiTextureType_NORMAL_CAMERA, }, { "Opacity", aiTextureType_OPACITY, }, { "Reflection", aiTextureType_REFLECTION, }, { "Shininess", aiTextureType_SHININESS, }, { "Specular", aiTextureType_SPECULAR, }, { "Uknown", aiTextureType_UNKNOWN, }, }; static uint32_t mesh_index; static ModelPrimitives LoadModelAssimp(const char* file_name); }; } // namespace fpr