Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
prism/engine/renderer/include/scenecapture.hpp
2020-08-11 12:07:21 -04:00

39 lines
1.1 KiB
C++
Executable file

#pragma once
#include "math.hpp"
class GFX;
class GFXCommandBuffer;
class GFXFramebuffer;
class GFXPipeline;
class GFXRenderPass;
class GFXTexture;
class GFXBuffer;
class Scene;
const int scene_cubemap_resolution = 1024;
const int irradiance_cubemap_resolution = 32;
class SceneCapture {
public:
SceneCapture(GFX* gfx);
void create_scene_resources(Scene& scene);
void render(GFXCommandBuffer* command_buffer, Scene* scene);
GFXPipeline* irradiancePipeline, *prefilterPipeline = nullptr, *skyPipeline = nullptr;
GFXRenderPass* renderPass = nullptr, *irradianceRenderPass = nullptr;
GFXTexture* environmentCube = nullptr;
GFXTexture* offscreenTexture = nullptr, *irradianceOffscreenTexture = nullptr, *prefilteredOffscreenTexture = nullptr;
GFXTexture* offscreenDepth = nullptr;
GFXFramebuffer* offscreenFramebuffer = nullptr, *irradianceFramebuffer = nullptr, *prefilteredFramebuffer = nullptr;
GFXBuffer* sceneBuffer = nullptr;
void createSkyResources();
void createIrradianceResources();
void createPrefilterResources();
};