aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/pbrrenderer2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pbrrenderer2.h')
-rw-r--r--src/pbrrenderer2.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/pbrrenderer2.h b/src/pbrrenderer2.h
new file mode 100644
index 0000000..b6a5f80
--- /dev/null
+++ b/src/pbrrenderer2.h
@@ -0,0 +1,52 @@
+#pragma once
+
+#include "VkEngine.h"
+#include "vkrenderer.h"
+#include "VulkanTexture.hpp"
+#include "VulkanglTFModel.hpp"
+
+
+class pbrRenderer : public vks::vkRenderer
+{
+ void generateBRDFLUT();
+ void generateCubemaps();
+protected:
+ virtual void configurePipelineLayout();
+ virtual void loadRessources();
+ virtual void freeRessources();
+ virtual void prepareDescriptors();
+ virtual void preparePipeline();
+public:
+ struct Pipelines {
+ VkPipeline skybox;
+ VkPipeline pbr;
+ VkPipeline pbrAlphaBlend;
+ } pipelines;
+
+ VkDescriptorSet dsScene;
+
+ vks::Texture fullScreenTex;
+
+ struct Textures {
+ vks::TextureCubeMap environmentCube;
+ vks::Texture2D lutBrdf;
+ vks::TextureCubeMap irradianceCube;
+ vks::TextureCubeMap prefilteredCube;
+ } textures;
+
+ vkglTF::Model skybox;
+ std::vector<vkglTF::Model> models;
+
+ pbrRenderer ();
+ virtual ~pbrRenderer();
+
+ virtual void destroy();
+
+ void renderPrimitive(vkglTF::Primitive &primitive, VkCommandBuffer commandBuffer);
+
+ void prepareModels();
+
+ virtual void draw(VkCommandBuffer cmdBuff);
+
+
+};