diff options
| author | hachem <im@hachem.wtf> | 2026-08-24 03:57:40 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-24 03:57:40 +0200 |
| commit | 59b7c407550d63e997ed1e7bed286be5c332c285 (patch) | |
| tree | 95f168df75d33326dde486b401c1abf62608ff7c /src/rendering/black_hole_renderer.h | |
| parent | 7ae22084c74cbe0c127e0ea1c96ec22a1f47d221 (diff) | |
[feat]: work on render path exporting
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; |
