diff options
Diffstat (limited to 'src/rendering/black_hole_renderer.h')
| -rw-r--r-- | src/rendering/black_hole_renderer.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/rendering/black_hole_renderer.h b/src/rendering/black_hole_renderer.h index 2ae03dd..c2cb2af 100644 --- a/src/rendering/black_hole_renderer.h +++ b/src/rendering/black_hole_renderer.h @@ -41,10 +41,23 @@ namespace Donut // swapchain render pass, before ImGui). auto blit(RHI::CommandList& cmd, int fb_width, int fb_height) -> void; + // Renders one channel (0 colour, 1 redshift g, 2 emission T, 3 impact + // parameter) into an arbitrary RGBA8 target — for high-res export. + auto render_export(RHI::CommandList& cmd, RHI::RenderTarget* target, + const GeodesicView& view, const BlackHoleParams& params, + const std::vector<SceneObject>& objects, RHI::Texture* cubemap, + int channel, bool raw) -> void; + private: + auto fill_uniforms(const GeodesicView& view, const BlackHoleParams& params, + const std::vector<SceneObject>& objects, int channel, bool raw) -> void; + auto draw_geodesic(RHI::CommandList& cmd, RHI::RenderTarget* target, + RHI::Texture* cubemap, RHI::Pipeline* pipeline) -> void; + RHI::Device* m_device = nullptr; Ref<RHI::Pipeline> m_geo_pipeline; + Ref<RHI::Pipeline> m_geo_pipeline_hdr; // RGBA32F variant for raw export Ref<RHI::RenderTarget> m_geo_lo; Ref<RHI::RenderTarget> m_geo_hi; Ref<RHI::Buffer> m_quad_vb; |
