Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
FilamentView.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// Copyright (c) 2018-2024 www.open3d.org
5// SPDX-License-Identifier: MIT
6// ----------------------------------------------------------------------------
7
8#pragma once
9
10#include <memory>
11#include <numeric>
12
14
16namespace filament {
17class Engine;
18class Scene;
19class View;
20class Viewport;
21class ColorGrading;
22} // namespace filament
24
25namespace open3d {
26namespace visualization {
27namespace rendering {
28
29class FilamentCamera;
30class FilamentResourceManager;
31class FilamentScene;
32
33class FilamentView : public View {
34public:
35 static constexpr std::uint8_t kAllLayersMask =
36 std::numeric_limits<std::uint8_t>::max();
37 static constexpr std::uint8_t kMainLayer = 1; // Default layer for objects
38
39 FilamentView(filament::Engine& engine,
40 FilamentResourceManager& resource_mgr);
41 FilamentView(filament::Engine& engine,
42 FilamentScene& scene,
43 FilamentResourceManager& resource_mgr);
44 ~FilamentView() override;
45
46 void SetDiscardBuffers(const TargetBuffers& buffers) override;
47 Mode GetMode() const override;
48 void SetMode(Mode mode) override;
49 void SetWireframe(bool enable) override;
50
51 void SetSampleCount(int n) override;
52 int GetSampleCount() const override;
53
54 void SetViewport(std::int32_t x,
55 std::int32_t y,
56 std::uint32_t w,
57 std::uint32_t h) override;
58 std::array<int, 4> GetViewport() const override;
59
60 void SetPostProcessing(bool enabled) override;
61 void SetAmbientOcclusion(bool enabled, bool ssct_enabled = false) override;
62 void SetBloom(bool enabled, float strength = 0.5f, int spread = 6) override;
63 void SetAntiAliasing(bool enabled, bool temporal = false) override;
64 void SetShadowing(bool enabled, ShadowType type) override;
65
66 void SetColorGrading(const ColorGradingParams& color_grading) override;
67
68 void ConfigureForColorPicking() override;
69
70 void EnableViewCaching(bool enable) override;
71 bool IsCached() const override;
75
76 Camera* GetCamera() const override;
77
78 // Copies available settings for view and camera
79 void CopySettingsFrom(const FilamentView& other);
80
81 void SetScene(FilamentScene& scene);
82
83 filament::View* GetNativeView() const { return view_; }
84
85 void PreRender();
86 void PostRender();
87 void SetRenderTarget(const RenderTargetHandle render_target);
88
91 RenderTargetHandle GetRenderTargetHandle() const { return render_target_; }
92
93private:
94 std::unique_ptr<FilamentCamera> camera_;
95 Mode mode_ = Mode::Color;
96 TargetBuffers discard_buffers_;
97 bool caching_enabled_ = false;
98 bool configured_for_picking_ = false;
99 TextureHandle color_buffer_;
100 TextureHandle depth_buffer_;
101 RenderTargetHandle render_target_;
102
103 filament::Engine& engine_;
104 FilamentScene* scene_ = nullptr;
105 FilamentResourceManager& resource_mgr_;
106 filament::View* view_ = nullptr;
107 filament::ColorGrading* color_grading_ = nullptr;
108};
109
110} // namespace rendering
111} // namespace visualization
112} // namespace open3d
Manages.
Definition ColorGrading.h:18
Definition FilamentResourceManager.h:50
TextureHandle GetDepthBuffer() override
Definition FilamentView.cpp:357
filament::View * GetNativeView() const
Definition FilamentView.h:83
void CopySettingsFrom(const FilamentView &other)
Definition FilamentView.cpp:384
int GetSampleCount() const override
Definition FilamentView.cpp:161
RenderTargetHandle GetRenderTargetHandle() const
Definition FilamentView.h:91
TextureHandle GetColorBuffer() override
Definition FilamentView.cpp:355
void SetSampleCount(int n) override
Definition FilamentView.cpp:155
bool IsCached() const override
Definition FilamentView.cpp:353
void PreRender()
Definition FilamentView.cpp:413
void SetShadowing(bool enabled, ShadowType type) override
Definition FilamentView.cpp:210
Mode GetMode() const override
Definition FilamentView.cpp:109
void PostRender()
Definition FilamentView.cpp:501
void ConfigureForColorPicking() override
Definition FilamentView.cpp:308
void SetPostProcessing(bool enabled) override
Definition FilamentView.cpp:178
TextureHandle GetGaussianSplatOverlay() override
Definition FilamentView.cpp:359
void SetMode(Mode mode) override
Definition FilamentView.cpp:111
~FilamentView() override
Definition FilamentView.cpp:89
void SetViewport(std::int32_t x, std::int32_t y, std::uint32_t w, std::uint32_t h) override
Definition FilamentView.cpp:166
std::array< int, 4 > GetViewport() const override
Definition FilamentView.cpp:173
static constexpr std::uint8_t kMainLayer
Definition FilamentView.h:37
void SetDiscardBuffers(const TargetBuffers &buffers) override
Definition FilamentView.cpp:141
void SetColorGrading(const ColorGradingParams &color_grading) override
Definition FilamentView.cpp:230
void SetRenderTarget(const RenderTargetHandle render_target)
Definition FilamentView.cpp:366
static constexpr std::uint8_t kAllLayersMask
Definition FilamentView.h:35
void SetAntiAliasing(bool enabled, bool temporal=false) override
Definition FilamentView.cpp:201
void SetAmbientOcclusion(bool enabled, bool ssct_enabled=false) override
Definition FilamentView.cpp:182
void SetScene(FilamentScene &scene)
Definition FilamentView.cpp:408
void EnableViewCaching(bool enable) override
Definition FilamentView.cpp:316
void SetBloom(bool enabled, float strength=0.5f, int spread=6) override
Definition FilamentView.cpp:190
void SetWireframe(bool enable) override
Definition FilamentView.cpp:146
Camera * GetCamera() const override
Definition FilamentView.cpp:382
char type
Definition FilePCD.cpp:42
Definition FilamentEngine.h:15
Definition PinholeCameraIntrinsic.cpp:16