Add initial support for PBR material data

This commit is contained in:
Lynix 2022-07-19 20:02:40 +02:00
parent ad8b46db38
commit c728e0cf5d
2 changed files with 16 additions and 5 deletions

View File

@ -13,6 +13,7 @@ namespace Nz
{
static constexpr const char* AlphaTest = "MatAlphaTest";
static constexpr const char* AlphaTexturePath = "MatAlphaTexturePath";
static constexpr const char* AlphaWrap = "MatAlphaWrap";
static constexpr const char* AlphaThreshold = "MatAlphaThreshold";
static constexpr const char* AmbientColor = "MatAmbientColor";
static constexpr const char* BackFaceStencilCompare = "MatBackFaceStencilCompare";
@ -40,15 +41,22 @@ namespace Nz
static constexpr const char* DiffuseAnisotropyLevel = "MatDiffuseAnisotropyLevel";
static constexpr const char* DiffuseFilter = "MatDiffuseFilter";
static constexpr const char* EmissiveTexturePath = "MatEmissiveTexturePath";
static constexpr const char* EmissiveWrap = "MatEmissiveWrap";
static constexpr const char* FaceCulling = "MatFaceCulling";
static constexpr const char* FaceFilling = "MatFaceFilling";
static constexpr const char* FilePath = "MatFilePath";
static constexpr const char* HeightTexturePath = "MatHeightTexturePath";
static constexpr const char* HeightWrap = "MatHeightWrap";
static constexpr const char* Lighting = "MatLighting";
static constexpr const char* LineWidth = "MatLineWidth";
static constexpr const char* MetallicTexturePath = "MatMetallicTexturePath";
static constexpr const char* MetallicWrap = "MatMetallicWrap";
static constexpr const char* Name = "MatName";
static constexpr const char* NormalTexturePath = "MatNormalTexturePath";
static constexpr const char* NormalWrap = "MatNormalTextureWrap";
static constexpr const char* PointSize = "MatPointSize";
static constexpr const char* RoughnessTexturePath = "MatRoughnessTexturePath";
static constexpr const char* RoughnessWrap = "MatRoughnessWrap";
static constexpr const char* ScissorTest = "MatScissorTest";
static constexpr const char* Shininess = "MatShininess";
static constexpr const char* SpecularAnisotropyLevel = "MatSpecularAnisotropyLevel";

View File

@ -430,14 +430,17 @@ std::shared_ptr<Mesh> LoadMesh(Stream& stream, const MeshParams& parameters)
ConvertColor(AI_MATKEY_COLOR_SPECULAR, MaterialData::SpecularColor);
ConvertTexture(aiTextureType_EMISSIVE, MaterialData::EmissiveTexturePath);
ConvertTexture(aiTextureType_HEIGHT, MaterialData::HeightTexturePath);
ConvertTexture(aiTextureType_NORMALS, MaterialData::NormalTexturePath);
ConvertTexture(aiTextureType_OPACITY, MaterialData::AlphaTexturePath);
ConvertTexture(aiTextureType_SPECULAR, MaterialData::SpecularTexturePath, MaterialData::SpecularWrap);
if (!ConvertTexture(aiTextureType_BASE_COLOR, MaterialData::BaseColorTexturePath, MaterialData::BaseColorWrap))
ConvertTexture(aiTextureType_DIFFUSE, MaterialData::BaseColorTexturePath, MaterialData::BaseColorWrap);
ConvertTexture(aiTextureType_DIFFUSE_ROUGHNESS, MaterialData::RoughnessTexturePath, MaterialData::RoughnessWrap);
ConvertTexture(aiTextureType_EMISSIVE, MaterialData::EmissiveTexturePath, MaterialData::EmissiveWrap);
ConvertTexture(aiTextureType_HEIGHT, MaterialData::HeightTexturePath, MaterialData::HeightWrap);
ConvertTexture(aiTextureType_METALNESS, MaterialData::MetallicTexturePath, MaterialData::MetallicWrap);
ConvertTexture(aiTextureType_NORMALS, MaterialData::NormalTexturePath, MaterialData::NormalWrap);
ConvertTexture(aiTextureType_OPACITY, MaterialData::AlphaTexturePath, MaterialData::AlphaWrap);
ConvertTexture(aiTextureType_SPECULAR, MaterialData::SpecularTexturePath, MaterialData::SpecularWrap);
aiString name;
if (aiGetMaterialString(aiMat, AI_MATKEY_NAME, &name) == aiReturn_SUCCESS)
matData.SetParameter(MaterialData::Name, std::string(name.data, name.length));