30 #include <unordered_map>
31 #include <unordered_set>
63 namespace visualization {
121 const std::shared_ptr<geometry::Image>
image,
137 size_t index_stride);
158 template <
class ResourceType>
160 std::shared_ptr<ResourceType>
ptr;
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>>
193 std::unordered_map<uint64_t, TextureHandle> texture_cache_;
195 filament::Texture* LoadTextureFromImage(
196 const std::shared_ptr<geometry::Image>&
image,
bool srgb);
199 filament::Texture* LoadFilledTexture(
const Eigen::Vector3f&
color,
std::shared_ptr< core::Tensor > image
Definition: FilamentRenderer.cpp:228
math::float4 color
Definition: LineSetBuffers.cpp:64
The Image class stores image with customizable width, height, num of channels and bytes per channel.
Definition: Image.h:53
The Image class stores image with customizable rows, cols, channels, dtype and device.
Definition: Image.h:48
Definition: FilamentResourceManager.h:69
std::weak_ptr< filament::RenderTarget > GetRenderTarget(const RenderTargetHandle &id)
Definition: FilamentResourceManager.cpp:771
static const MaterialInstanceHandle kNormalsMaterial
Definition: FilamentResourceManager.h:86
void DestroyAll()
Definition: FilamentResourceManager.cpp:796
static const MaterialHandle kInfinitePlaneShader
Definition: FilamentResourceManager.h:82
std::weak_ptr< filament::IndexBuffer > GetIndexBuffer(const IndexBufferHandle &id)
Definition: FilamentResourceManager.cpp:791
static const TextureHandle kDefaultColorMap
Definition: FilamentResourceManager.h:89
VertexBufferHandle AddVertexBuffer(filament::VertexBuffer *vertex_buffer)
Definition: FilamentResourceManager.cpp:720
SkyboxHandle CreateColorSkybox(const Eigen::Vector3f &color)
Definition: FilamentResourceManager.cpp:661
static const TextureHandle kDefaultNormalMap
Definition: FilamentResourceManager.h:90
RenderTargetHandle CreateRenderTarget(TextureHandle color, TextureHandle depth)
Definition: FilamentResourceManager.cpp:584
~FilamentResourceManager()
Definition: FilamentResourceManager.cpp:385
std::weak_ptr< filament::Material > GetMaterial(const MaterialHandle &id)
Definition: FilamentResourceManager.cpp:756
IndirectLightHandle CreateIndirectLight(const ResourceLoadRequest &request)
Definition: FilamentResourceManager.cpp:606
std::weak_ptr< filament::Skybox > GetSkybox(const SkyboxHandle &id)
Definition: FilamentResourceManager.cpp:781
FilamentResourceManager(filament::Engine &engine)
Definition: FilamentResourceManager.cpp:380
static const MaterialHandle kDefaultLineShader
Definition: FilamentResourceManager.h:83
static const MaterialHandle kDefaultUnlitBackgroundShader
Definition: FilamentResourceManager.h:81
static const MaterialHandle kDefaultDepthShader
Definition: FilamentResourceManager.h:77
static const MaterialHandle kDefaultUnlit
Definition: FilamentResourceManager.h:74
static const MaterialHandle kDefaultUnlitSolidColorShader
Definition: FilamentResourceManager.h:80
static const MaterialHandle kDefaultUnlitGradientShader
Definition: FilamentResourceManager.h:79
TextureHandle CreateColorAttachmentTexture(int width, int height)
Definition: FilamentResourceManager.cpp:553
static const MaterialHandle kDefaultUnlitPolygonOffsetShader
Definition: FilamentResourceManager.h:84
IndexBufferHandle CreateIndexBuffer(size_t indices_count, size_t index_stride)
Definition: FilamentResourceManager.cpp:735
void ReuseVertexBuffer(VertexBufferHandle vb)
Definition: FilamentResourceManager.cpp:726
TextureHandle CreateDepthAttachmentTexture(int width, int height)
Definition: FilamentResourceManager.cpp:569
std::weak_ptr< filament::MaterialInstance > GetMaterialInstance(const MaterialInstanceHandle &id)
Definition: FilamentResourceManager.cpp:762
static const MaterialHandle kDefaultDepthValueShader
Definition: FilamentResourceManager.h:78
MaterialInstanceHandle CreateMaterialInstance(const MaterialHandle &id)
Definition: FilamentResourceManager.cpp:430
static const MaterialHandle kDefaultUnlitWithTransparency
Definition: FilamentResourceManager.h:75
TextureHandle CreateTexture(const char *path, bool srgb)
Definition: FilamentResourceManager.cpp:443
static const MaterialHandle kDefaultNormalShader
Definition: FilamentResourceManager.h:76
static const MaterialHandle kDefaultLitSSR
Definition: FilamentResourceManager.h:73
static const MaterialInstanceHandle kColorMapMaterial
Definition: FilamentResourceManager.h:87
static const MaterialInstanceHandle kDepthMaterial
Definition: FilamentResourceManager.h:85
SkyboxHandle CreateSkybox(const ResourceLoadRequest &request)
Definition: FilamentResourceManager.cpp:675
std::weak_ptr< filament::Texture > GetTexture(const TextureHandle &id)
Definition: FilamentResourceManager.cpp:766
MaterialHandle CreateMaterial(const void *material_data, size_t data_size)
Definition: FilamentResourceManager.cpp:387
static const TextureHandle kDefaultTexture
Definition: FilamentResourceManager.h:88
TextureHandle CreateTextureFilled(const Eigen::Vector3f &color, size_t dimension)
Definition: FilamentResourceManager.cpp:503
bool UpdateTexture(TextureHandle texture, const std::shared_ptr< geometry::Image > image, bool srgb)
Definition: FilamentResourceManager.cpp:512
void Destroy(const REHandle_abstract &id)
Definition: FilamentResourceManager.cpp:808
static const MaterialHandle kDefaultLitWithTransparency
Definition: FilamentResourceManager.h:72
std::weak_ptr< filament::VertexBuffer > GetVertexBuffer(const VertexBufferHandle &id)
Definition: FilamentResourceManager.cpp:786
std::weak_ptr< filament::IndirectLight > GetIndirectLight(const IndirectLightHandle &id)
Definition: FilamentResourceManager.cpp:777
static const MaterialHandle kDefaultLit
Definition: FilamentResourceManager.h:71
Definition: Renderer.h:55
Definition: FilamentEngine.h:31
Definition: PinholeCameraIntrinsic.cpp:35
Definition: FilamentResourceManager.h:159
std::shared_ptr< ResourceType > operator->()
Definition: FilamentResourceManager.h:166
size_t use_count
Definition: FilamentResourceManager.h:161
BoxedResource()
Definition: FilamentResourceManager.h:163
std::shared_ptr< ResourceType > ptr
Definition: FilamentResourceManager.h:160
BoxedResource(std::shared_ptr< ResourceType > p)
Definition: FilamentResourceManager.h:164
Definition: RendererHandle.h:66
Definition: RendererHandle.h:109