diff options
Diffstat (limited to 'src/pbrrenderer2.h')
| -rw-r--r-- | src/pbrrenderer2.h | 52 |
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); + + +}; |