diff --git a/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp b/modules/material/include/vkcv/material/pbrMetallicRoughness.hpp
index 548b637b3e96b34bbe0f89ade5d550ad685b32e8..09068a31e861b2498908f5158613fa98aa5923f6 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 d61da82eee8b5484f6804e6242f18146b24ef01d..da915c78d051047dceeebda7a5733c6650105e11 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