// Copyright (C) 2023 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - Graphics module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include #include #include #include #include namespace Nz { void PredefinedMaterials::AddBasicSettings(MaterialSettings& settings) { settings.AddValueProperty("BaseColor", Color::White()); settings.AddValueProperty("AlphaTest", false); settings.AddValueProperty("AlphaTestThreshold", 0.2f); settings.AddTextureProperty("BaseColorMap", ImageType::E2D); settings.AddTextureProperty("AlphaMap", ImageType::E2D); settings.AddPropertyHandler(std::make_unique("AlphaTest", "AlphaTest")); settings.AddPropertyHandler(std::make_unique("BaseColorMap", "HasBaseColorTexture")); settings.AddPropertyHandler(std::make_unique("AlphaMap", "HasAlphaTexture")); settings.AddPropertyHandler(std::make_unique("BaseColor")); settings.AddPropertyHandler(std::make_unique("AlphaTestThreshold")); } void PredefinedMaterials::AddPbrSettings(MaterialSettings& settings) { settings.AddTextureProperty("EmissiveMap", ImageType::E2D); settings.AddTextureProperty("HeightMap", ImageType::E2D); settings.AddTextureProperty("MetallicMap", ImageType::E2D); settings.AddTextureProperty("NormalMap", ImageType::E2D); settings.AddTextureProperty("RoughnessMap", ImageType::E2D); settings.AddTextureProperty("SpecularMap", ImageType::E2D); settings.AddPropertyHandler(std::make_unique("EmissiveMap", "HasEmissiveTexture")); settings.AddPropertyHandler(std::make_unique("HeightMap", "HasHeightTexture")); settings.AddPropertyHandler(std::make_unique("MetallicMap", "HasMetallicTexture")); settings.AddPropertyHandler(std::make_unique("NormalMap", "HasNormalTexture")); settings.AddPropertyHandler(std::make_unique("RoughnessMap", "HasRoughnessTexture")); settings.AddPropertyHandler(std::make_unique("SpecularMap", "HasSpecularTexture")); } void PredefinedMaterials::AddPhongSettings(MaterialSettings& settings) { settings.AddValueProperty("AmbientColor", Color::Black()); settings.AddValueProperty("SpecularColor", Color::White()); settings.AddValueProperty("Shininess", 2.f); settings.AddTextureProperty("EmissiveMap", ImageType::E2D); settings.AddTextureProperty("HeightMap", ImageType::E2D); settings.AddTextureProperty("NormalMap", ImageType::E2D); settings.AddTextureProperty("SpecularMap", ImageType::E2D); settings.AddPropertyHandler(std::make_unique("EmissiveMap", "HasEmissiveTexture")); settings.AddPropertyHandler(std::make_unique("HeightMap", "HasHeightMap")); settings.AddPropertyHandler(std::make_unique("NormalMap", "HasNormalMap")); settings.AddPropertyHandler(std::make_unique("SpecularMap", "HasSpecularMap")); settings.AddPropertyHandler(std::make_unique("AmbientColor")); settings.AddPropertyHandler(std::make_unique("SpecularColor")); settings.AddPropertyHandler(std::make_unique("Shininess")); } }