diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-10-26 18:59:06 +0200 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-10-26 18:59:06 +0200 |
| commit | cf965d29b9092ea6b56847028dc885b67b1603e0 (patch) | |
| tree | dc2054210d903c5d629f0487e74a58e1b96958c3 /src/pbrrenderer2.hpp | |
| parent | a5082d2962d621dc7145614d655016c59ddacc5b (diff) | |
Diffstat (limited to 'src/pbrrenderer2.hpp')
| -rw-r--r-- | src/pbrrenderer2.hpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/pbrrenderer2.hpp b/src/pbrrenderer2.hpp new file mode 100644 index 0000000..1124737 --- /dev/null +++ b/src/pbrrenderer2.hpp @@ -0,0 +1,50 @@ +#pragma once + +#include "vke.hpp" +#include "vkrenderer.hpp" +#include "texture.hpp" +#include "VulkanglTFModel.hpp" + + +class pbrRenderer : public vke::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; + + struct Textures { + vke::TextureCubeMap environmentCube; + vke::Texture2D lutBrdf; + vke::TextureCubeMap irradianceCube; + vke::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); + + +}; |