VoxelEngine
 
Loading...
Searching...
No Matches
TransparentPass.h
1#pragma once
2
3#include "../RenderPass.h"
4
5#include <LWGL/buffer/FBO.h>
6#include <LWGL/texture/Texture2D.h>
7
8#include "render/Material.h"
9
10
11namespace engine {
12
13 // TODO right now fully opaque pixels in transparent textures are "seethrough", either put those blocks into both opaque and transparent pass and alpha discard in transparent the opaque pixels or figure something else or ignore
14 class TransparentPass : public RenderPass {
15 public:
16 explicit TransparentPass(glm::ivec2 resolution);
17
18 void beforeRender(Engine& engine, uint8_t pass) override;
19 void afterRender(Engine& engine, uint8_t pass) override {}
20
21 gl::Texture2D* accumulation() { return &m_accumulation; }
22 gl::Texture2D* revealage() { return &m_revealage; }
23
24 private:
25 gl::FBO m_OIT;
26 gl::Texture2D m_accumulation;
27 gl::Texture2D m_revealage;
28
29 Material m_transparentMat;
30
31 void init();
32 };
33} // namespace engine
Definition Engine.h:36
Definition Material.h:7
Definition RenderPass.h:19
Definition TransparentPass.h:14