From ba11a7ef72a780c184e49ccb9fd46150c50415a0 Mon Sep 17 00:00:00 2001 From: Lars Hoerttrich <larshoerttrich@uni-koblenz.de> Date: Fri, 11 Jun 2021 12:59:57 +0200 Subject: [PATCH] [#57] WIP: added create function --- .../vkcv/material/pbrMetallicRoughness.hpp | 6 +++++ .../vkcv/material/pbrMetallicRoughness.cpp | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp b/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp index 548b637b..09068a31 100644 --- a/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp +++ b/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp @@ -4,11 +4,14 @@ #include <vkcv/Handles.hpp> #include <vkcv/DescriptorConfig.hpp> +#include <vkcv/Core.hpp> + #include "Material.hpp" namespace vkcv::material { + class Core; class pbrMaterial : Material { public: @@ -46,5 +49,8 @@ namespace vkcv::material * 5 - metallic roughness sampler */ static std::vector<DescriptorBinding> getDescriptorBindings() noexcept; + + void create(vkcv::Core core); + }; } \ No newline at end of file diff --git a/modules/material/src/vkcv/material/pbrMetallicRoughness.cpp b/modules/material/src/vkcv/material/pbrMetallicRoughness.cpp index d61da82e..da915c78 100644 --- a/modules/material/src/vkcv/material/pbrMetallicRoughness.cpp +++ b/modules/material/src/vkcv/material/pbrMetallicRoughness.cpp @@ -1,5 +1,6 @@ #include "vkcv/material/pbrMetallicRoughness.hpp" + namespace vkcv::material { pbrMaterial::pbrMaterial(const ImageHandle &colorImg, @@ -27,4 +28,28 @@ namespace vkcv::material {DescriptorType::IMAGE_SAMPLED, 1, ShaderStage::FRAGMENT}, {DescriptorType::SAMPLER , 1, ShaderStage::FRAGMENT}}; } + void pbrMaterial::create(vkcv::Core core) + { + //Test if Images and samplers valid + //create default + vkcv::SamplerHandle defaultSampler = core.createSampler( + vkcv::SamplerFilterType::LINEAR, + vkcv::SamplerFilterType::LINEAR, + vkcv::SamplerMipmapMode::LINEAR, + vkcv::SamplerAddressMode::REPEAT + ); + //create descriptorset + vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(getDescriptorBindings()); + //writes + vkcv::DescriptorWrites setWrites; + setWrites.sampledImageWrites = { + vkcv::SampledImageDescriptorWrite(0, m_ColorTexture), + vkcv::SampledImageDescriptorWrite(2, m_NormalTexture), + vkcv::SampledImageDescriptorWrite(4, m_MetRoughTexture) }; + setWrites.samplerWrites = { + vkcv::SamplerDescriptorWrite(1, m_ColorSampler), + vkcv::SamplerDescriptorWrite(3, m_NormalSampler), + vkcv::SamplerDescriptorWrite(5, m_MetRoughSampler) }; + core.writeResourceDescription(descriptorSet, 0, setWrites); + } } \ No newline at end of file -- GitLab