adding surface extraction pass
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
#include "Graphics/Graphics.h"
|
||||
#include "Graphics/RenderPass/RenderPass.h"
|
||||
#include "Graphics/Resources.h"
|
||||
#include <cstdint>
|
||||
|
||||
class SurfaceExtractPass : public Seele::RenderPass {
|
||||
public:
|
||||
SurfaceExtractPass(Seele::Gfx::PGraphics graphics);
|
||||
virtual ~SurfaceExtractPass() override;
|
||||
virtual void
|
||||
beginFrame(const Seele::Component::Camera &camera,
|
||||
const Seele::Component::Transform &transform) override;
|
||||
virtual void render() override;
|
||||
virtual void endFrame() override;
|
||||
virtual void publishOutputs() override;
|
||||
virtual void createRenderPass() override;
|
||||
|
||||
private:
|
||||
void computeEdgeTable();
|
||||
void computeTriTable();
|
||||
Seele::Gfx::OPipelineLayout pipelineLayout;
|
||||
Seele::Gfx::ODescriptorLayout descriptorLayout;
|
||||
Seele::Gfx::ODescriptorSet descriptorSet;
|
||||
Seele::Gfx::OComputeShader computeShader;
|
||||
Seele::Gfx::PComputePipeline pipeline;
|
||||
|
||||
Seele::Gfx::OShaderBuffer vertexBuffer;
|
||||
Seele::Gfx::OShaderBuffer indexBuffer;
|
||||
Seele::Gfx::OShaderBuffer surfaceCounts;
|
||||
Seele::Gfx::PShaderBuffer densityBuffer;
|
||||
|
||||
static uint32_t edgeTable[256];
|
||||
static uint32_t triTable[256][16];
|
||||
};
|
||||
DEFINE_REF(SurfaceExtractPass)
|
||||
Reference in New Issue
Block a user