30 #include <unordered_map> 31 #include <unordered_set> 63 namespace visualization {
97 MaterialHandle CreateMaterial(
const void* material_data,
size_t data_size);
121 const std::shared_ptr<geometry::Image>
image,
137 size_t index_stride);
139 std::weak_ptr<filament::Material> GetMaterial(
const MaterialHandle&
id);
140 std::weak_ptr<filament::MaterialInstance> GetMaterialInstance(
142 std::weak_ptr<filament::Texture> GetTexture(
const TextureHandle&
id);
143 std::weak_ptr<filament::RenderTarget> GetRenderTarget(
145 std::weak_ptr<filament::IndirectLight> GetIndirectLight(
147 std::weak_ptr<filament::Skybox> GetSkybox(
const SkyboxHandle&
id);
148 std::weak_ptr<filament::VertexBuffer> GetVertexBuffer(
150 std::weak_ptr<filament::IndexBuffer> GetIndexBuffer(
158 template <
class ResourceType>
160 std::shared_ptr<ResourceType>
ptr;
161 size_t use_count = 0;
170 filament::Engine& engine_;
172 template <
class ResourceType>
173 using ResourcesContainer =
174 std::unordered_map<REHandle_abstract, BoxedResource<ResourceType>>;
176 ResourcesContainer<filament::MaterialInstance> material_instances_;
177 ResourcesContainer<filament::Material> materials_;
178 ResourcesContainer<filament::Texture> textures_;
179 ResourcesContainer<filament::RenderTarget> render_targets_;
180 ResourcesContainer<filament::IndirectLight> ibls_;
181 ResourcesContainer<filament::Skybox> skyboxes_;
182 ResourcesContainer<filament::VertexBuffer> vertex_buffers_;
183 ResourcesContainer<filament::IndexBuffer> index_buffers_;
189 std::unordered_map<REHandle_abstract, std::unordered_set<REHandle_abstract>>
192 filament::Texture* LoadTextureFromImage(
193 const std::shared_ptr<geometry::Image>&
image,
bool srgb);
196 filament::Texture* LoadFilledTexture(
const Eigen::Vector3f&
color,
static const MaterialHandle kInfinitePlaneShader
Definition: FilamentResourceManager.h:82
static const MaterialInstanceHandle kColorMapMaterial
Definition: FilamentResourceManager.h:87
static const MaterialHandle kDefaultDepthValueShader
Definition: FilamentResourceManager.h:78
BoxedResource()
Definition: FilamentResourceManager.h:163
BoxedResource(std::shared_ptr< ResourceType > p)
Definition: FilamentResourceManager.h:164
static const MaterialHandle kDefaultUnlitWithTransparency
Definition: FilamentResourceManager.h:75
static const MaterialHandle kDefaultDepthShader
Definition: FilamentResourceManager.h:77
Definition: RendererHandle.h:116
static const MaterialHandle kDefaultUnlitSolidColorShader
Definition: FilamentResourceManager.h:80
Definition: FilamentResourceManager.h:69
Definition: FilamentResourceManager.h:159
static const MaterialHandle kDefaultUnlitBackgroundShader
Definition: FilamentResourceManager.h:81
static const TextureHandle kDefaultNormalMap
Definition: FilamentResourceManager.h:90
static const MaterialHandle kDefaultLineShader
Definition: FilamentResourceManager.h:83
static const MaterialHandle kDefaultNormalShader
Definition: FilamentResourceManager.h:76
static const MaterialHandle kDefaultUnlit
Definition: FilamentResourceManager.h:74
The Image class stores image with customizable rows, cols, channels, dtype and device.
Definition: Image.h:48
math::float4 color
Definition: LineSetBuffers.cpp:64
Definition: Renderer.h:55
static const MaterialHandle kDefaultLitSSR
Definition: FilamentResourceManager.h:73
static const MaterialInstanceHandle kDepthMaterial
Definition: FilamentResourceManager.h:85
std::shared_ptr< ResourceType > ptr
Definition: FilamentResourceManager.h:160
static const TextureHandle kDefaultColorMap
Definition: FilamentResourceManager.h:89
static const MaterialHandle kDefaultUnlitGradientShader
Definition: FilamentResourceManager.h:79
static const MaterialInstanceHandle kNormalsMaterial
Definition: FilamentResourceManager.h:86
Definition: PinholeCameraIntrinsic.cpp:35
static const MaterialHandle kDefaultLit
Definition: FilamentResourceManager.h:71
std::shared_ptr< ResourceType > operator->()
Definition: FilamentResourceManager.h:166
int height
Definition: FilePCD.cpp:72
Definition: RendererHandle.h:73
static const TextureHandle kDefaultTexture
Definition: FilamentResourceManager.h:88
static const MaterialHandle kDefaultLitWithTransparency
Definition: FilamentResourceManager.h:72
Definition: FilamentEngine.h:31
The Image class stores image with customizable width, height, num of channels and bytes per channel...
Definition: Image.h:53
std::shared_ptr< core::Tensor > image
Definition: FilamentRenderer.cpp:228
static const MaterialHandle kDefaultUnlitPolygonOffsetShader
Definition: FilamentResourceManager.h:84
int width
Definition: FilePCD.cpp:71