11 #include <unordered_map>
12 #include <unordered_set>
28 namespace visualization {
31 class FilamentMaterialModifier;
32 class FilamentRenderToBuffer;
33 class FilamentResourceManager;
34 class GaussianSplatRenderer;
41 void* native_drawable,
62 std::function<
void(std::shared_ptr<core::Tensor>)>
85 bool srgb =
false)
override;
87 bool srgb =
false)
override;
89 bool srgb =
false)
override;
91 const std::shared_ptr<geometry::Image>
image,
105 std::shared_ptr<visualization::rendering::RenderToBuffer>
118 return gaussian_splat_renderer_.get();
134 filament::Engine& engine_;
135 filament::Renderer* renderer_ =
nullptr;
136 filament::SwapChain* swap_chain_ =
nullptr;
137 filament::SwapChain* swap_chain_cached_ =
nullptr;
139 std::unordered_map<REHandle_abstract, std::unique_ptr<FilamentScene>>
141 std::unique_ptr<FilamentScene> gui_scene_;
143 std::unique_ptr<FilamentMaterialModifier> materials_modifier_;
144 std::unique_ptr<GaussianSplatRenderer> gaussian_splat_renderer_;
147 std::unordered_set<std::shared_ptr<FilamentRenderToBuffer>>
150 bool frame_started_ =
false;
151 std::function<
void()> on_after_draw_;
152 std::function<
void()> on_apple_gaussian_composite_complete_;
153 bool needs_wait_after_draw_ =
false;
std::shared_ptr< core::Tensor > image
Definition: FilamentRenderer.cpp:302
std::function< void(std::shared_ptr< core::Tensor >)> callback
Definition: FilamentRenderer.cpp:301
math::float4 color
Definition: LineSetBuffers.cpp:45
The Image class stores image with customizable rows, cols, channels, dtype and device.
Definition: Image.h:29
static RenderingType GetBackendType()
Definition: FilamentEngine.h:46
Definition: FilamentRenderToBuffer.h:30
Definition: FilamentRenderer.h:38
void SetClearColor(const Eigen::Vector4f &color) override
Definition: FilamentRenderer.cpp:142
SkyboxHandle AddSkybox(const ResourceLoadRequest &request) override
Definition: FilamentRenderer.cpp:430
TextureHandle GetGaussianSplatColorTexture(const FilamentView &view) const
Definition: FilamentRenderer.cpp:116
void InvalidateGaussianSplatOutput(FilamentView &view)
Definition: FilamentRenderer.cpp:136
void SetOnAfterDraw(std::function< void()> callback) override
Definition: FilamentRenderer.cpp:153
SceneHandle CreateScene() override
Definition: FilamentRenderer.cpp:91
void RemoveSkybox(const SkyboxHandle &id) override
Definition: FilamentRenderer.cpp:440
TextureHandle AddTexture(const ResourceLoadRequest &request, bool srgb=false) override
Definition: FilamentRenderer.cpp:387
bool UpdateTexture(TextureHandle texture, const std::shared_ptr< geometry::Image > image, bool srgb) override
Definition: FilamentRenderer.cpp:398
void BeginFrame() override
Definition: FilamentRenderer.cpp:174
MaterialModifier & ModifyMaterial(const MaterialHandle &id) override
Definition: FilamentRenderer.cpp:348
void UpdateSwapChain() override
Definition: FilamentRenderer.cpp:162
GaussianSplatRenderer * GetGaussianSplatRenderer()
Definition: FilamentRenderer.h:117
void RequestReadPixels(int width, int height, std::function< void(std::shared_ptr< core::Tensor >)> callback) override
Definition: FilamentRenderer.cpp:317
void UpdateBitmapSwapChain(int width, int height) override
Definition: FilamentRenderer.cpp:168
filament::Renderer * GetNative()
Definition: FilamentRenderer.h:125
FilamentScene * GetGuiScene() const
Definition: FilamentRenderer.h:111
TextureHandle GetGaussianSplatDepthTexture(const FilamentView &view) const
Definition: FilamentRenderer.cpp:123
bool HasGaussianSplatOutput(const FilamentView &view) const
Definition: FilamentRenderer.cpp:111
void ConvertToGuiScene(const SceneHandle &id)
Definition: FilamentRenderer.cpp:453
MaterialInstanceHandle AddMaterialInstance(const MaterialHandle &material) override
Definition: FilamentRenderer.cpp:343
std::shared_ptr< visualization::rendering::RenderToBuffer > CreateBufferRenderer() override
Definition: FilamentRenderer.cpp:444
FilamentRenderer(filament::Engine &engine, void *native_drawable, FilamentResourceManager &resource_mgr)
Definition: FilamentRenderer.cpp:51
void RemoveTexture(const TextureHandle &id) override
Definition: FilamentRenderer.cpp:411
void Draw() override
Definition: FilamentRenderer.cpp:230
void EndFrame() override
Definition: FilamentRenderer.cpp:267
IndirectLightHandle AddIndirectLight(const ResourceLoadRequest &request) override
Definition: FilamentRenderer.cpp:415
void SetOnAppleGaussianCompositeComplete(std::function< void()> callback)
Definition: FilamentRenderer.cpp:157
int GetGaussianSplatMaxShDegree() const
Definition: FilamentRenderer.cpp:130
bool LastBeginFrameSubmitted() const override
Definition: FilamentRenderer.h:68
void RemoveIndirectLight(const IndirectLightHandle &id) override
Definition: FilamentRenderer.cpp:426
Scene * GetScene(const SceneHandle &id) const override
Definition: FilamentRenderer.cpp:99
~FilamentRenderer() override
Definition: FilamentRenderer.cpp:78
void RemoveMaterialInstance(const MaterialInstanceHandle &id) override
Definition: FilamentRenderer.cpp:382
MaterialHandle AddMaterial(const ResourceLoadRequest &request) override
Definition: FilamentRenderer.cpp:338
RenderingType GetBackendType() override
Return if the rendering backend is OpenGL, Vulkan or Metal.
Definition: FilamentRenderer.h:127
void DestroyScene(const SceneHandle &id) override
Definition: FilamentRenderer.cpp:107
Definition: FilamentResourceManager.h:50
Definition: FilamentScene.h:70
Definition: FilamentView.h:33
Definition: GaussianSplatRenderer.h:38
Definition: MaterialModifier.h:107
Definition: Renderer.h:59
Definition: Renderer.h:38
Definition: FilamentEngine.h:15
const char const char value recording_handle imu_sample void
Definition: K4aPlugin.cpp:250
RenderingType
Definition: Renderer.h:57
Definition: PinholeCameraIntrinsic.cpp:16