Parse metallic & roughness pbr parameters from glTF materials

This commit is contained in:
Nikita Lisitsa 2023-08-01 22:27:53 +03:00
parent 564a0001a2
commit 64672d3f1f
2 changed files with 12 additions and 0 deletions

View file

@ -60,6 +60,8 @@ namespace psemek::gfx
std::string name;
bool two_sided;
std::optional<color_4f> albedo;
std::optional<float> metallic;
std::optional<float> roughness;
std::optional<std::size_t> texture;
std::optional<color_3f> emission;
std::optional<std::size_t> emission_texture;

View file

@ -243,6 +243,16 @@ namespace psemek::gfx
target.texture = document["textures"].GetArray()[pbr["baseColorTexture"]["index"].GetUint64()]["source"].GetInt64();
}
if (pbr.HasMember("metallicFactor"))
{
target.metallic = pbr["metallicFactor"].GetFloat();
}
if (pbr.HasMember("roughnessFactor"))
{
target.roughness = pbr["roughnessFactor"].GetFloat();
}
if (pbr.HasMember("metallicRoughnessTexture"))
{
target.material_texture = document["textures"].GetArray()[pbr["metallicRoughnessTexture"]["index"].GetUint64()]["source"].GetInt64();