diff --git a/projects/saf_r/shaders/raytracing.comp b/projects/saf_r/shaders/raytracing.comp index fd6d689894f82028a2241df10fda9353e58697dd..042b532b5a7c4c923d99c3b477c8e7f9dcb86d4a 100644 --- a/projects/saf_r/shaders/raytracing.comp +++ b/projects/saf_r/shaders/raytracing.comp @@ -2,19 +2,19 @@ #extension GL_ARB_separate_shader_objects : enable struct Material { - vec3 diffuse_color; vec3 albedo; + vec3 diffuse_color; float specular_exponent; }; layout(std430, binding = 0) coherent buffer Lights{ - vec3 position []; - float intensity []; + vec3 position; + float intensity; }; layout(std430, binding = 1) coherent buffer Materials{ - vec3 diffuse_color; vec3 albedo; + vec3 diffuse_color; float specular_exponent; }; diff --git a/projects/saf_r/src/main.cpp b/projects/saf_r/src/main.cpp index 45da71828ea32e321dbce4a05d5dc4cae0a1b3f0..a39ad8e832f642dbb47a28779e3e302844230d6a 100644 --- a/projects/saf_r/src/main.cpp +++ b/projects/saf_r/src/main.cpp @@ -119,19 +119,19 @@ int main(int argc, const char** argv) { vkcv::Buffer<safrScene::Light> lightsBuffer = core.createBuffer<safrScene::Light>( vkcv::BufferType::STORAGE, lights.size() - ); + ); lightsBuffer.fill(lights); vkcv::Buffer<safrScene::Sphere> sphereBuffer = core.createBuffer<safrScene::Sphere>( vkcv::BufferType::STORAGE, spheres.size() - ); + ); sphereBuffer.fill(spheres); vkcv::Buffer<safrScene::Material> materialBuffer = core.createBuffer<safrScene::Material>( vkcv::BufferType::STORAGE, materials.size() - ); + ); materialBuffer.fill(materials); @@ -142,7 +142,9 @@ int main(int argc, const char** argv) { vkcv::DescriptorWrites computeWrites; computeWrites.storageBufferWrites = { vkcv::BufferDescriptorWrite(0,lightsBuffer.getHandle()) }; + core.writeDescriptorSet(computeDescriptorSet, computeWrites); computeWrites.storageBufferWrites = { vkcv::BufferDescriptorWrite(1,materialBuffer.getHandle()) }; + core.writeDescriptorSet(computeDescriptorSet, computeWrites); computeWrites.storageBufferWrites = { vkcv::BufferDescriptorWrite(2,sphereBuffer.getHandle()) }; core.writeDescriptorSet(computeDescriptorSet, computeWrites); diff --git a/projects/saf_r/src/safrScene.hpp b/projects/saf_r/src/safrScene.hpp index fa1f9dd4462ed811c86e7929c0a4f8b1e1ffa603..a3396afe8c949279debb9eb16d8dd1039d61e328 100644 --- a/projects/saf_r/src/safrScene.hpp +++ b/projects/saf_r/src/safrScene.hpp @@ -39,8 +39,8 @@ public: struct Material { Material(const glm::vec3& a, const glm::vec3& color, const float& spec) : albedo(a), diffuse_color(color), specular_exponent(spec) {} Material() : albedo(1, 0, 0), diffuse_color(), specular_exponent() {} - glm::vec3 diffuse_color; glm::vec3 albedo; + alignas(16) glm::vec3 diffuse_color; float specular_exponent; };