|
Open3D (C++ API)
0.19.0
|
Typedefs | |
| using | PBDParams = std::tuple< FilamentRenderToBuffer *, FilamentRenderToBuffer::BufferReadyCallback > |
| typedef REHandle< EntityType::View > | ViewHandle |
| typedef REHandle< EntityType::Scene > | SceneHandle |
| typedef REHandle< EntityType::Geometry > | GeometryHandle |
| typedef REHandle< EntityType::Light > | LightHandle |
| typedef REHandle< EntityType::IndirectLight > | IndirectLightHandle |
| typedef REHandle< EntityType::Skybox > | SkyboxHandle |
| typedef REHandle< EntityType::Camera > | CameraHandle |
| typedef REHandle< EntityType::Material > | MaterialHandle |
| typedef REHandle< EntityType::MaterialInstance > | MaterialInstanceHandle |
| typedef REHandle< EntityType::Texture > | TextureHandle |
| typedef REHandle< EntityType::RenderTarget > | RenderTargetHandle |
| typedef REHandle< EntityType::VertexBuffer > | VertexBufferHandle |
| typedef REHandle< EntityType::IndexBuffer > | IndexBufferHandle |
Enumerations | |
| enum class | ComputeProgramId : int { kGsProject = 0 , kGsComposite = 1 , kGsRadixHistograms = 2 , kGsRadixScatter = 3 , kGsDispatchArgs = 4 , kGsDepthMerge = 5 , kCount = 6 } |
| enum class | ImageFormat { kRGBA16F , kR32F , kR16UI } |
| Format selector for GaussianSplatGpuContext::BindImage(). More... | |
| enum class | VkInteropImageFormat { kRGBA16F , kDepth32F } |
| Image format selector used for interop image creation. More... | |
| enum class | RenderingType { kDefault , kOpenGL , kVulkan , kMetal } |
| enum class | EntityType : std::uint32_t { None = 0 , View , Scene , Geometry , Light , IndirectLight , Skybox , Camera , Material , MaterialInstance , Texture , RenderTarget , VertexBuffer , IndexBuffer , Count } |
Variables | |
| constexpr const char * | kGsShaderNames [] |
| constexpr std::uint32_t | kGaussianGpuErrorTileEntryOverflow = 1u << 0 |
| constexpr std::uint32_t | kGaussianGpuErrorSortCountClamped = 1u << 1 |
| constexpr std::uint32_t | kGaussianGpuErrorKnownMask |
| constexpr std::uint32_t | kGaussianRadixParamsStride = 256 |
| typedef REHandle<EntityType::MaterialInstance> open3d::visualization::rendering::MaterialInstanceHandle |
| using open3d::visualization::rendering::PBDParams = typedef std::tuple<FilamentRenderToBuffer*, FilamentRenderToBuffer::BufferReadyCallback> |
|
strong |
Program IDs for the Gaussian splatting compute shaders. Values index into kGsShaderNames; kCount must stay last.
|
strong |
|
strong |
Format selector for GaussianSplatGpuContext::BindImage().
| Enumerator | |
|---|---|
| kRGBA16F | |
| kR32F | |
| kR16UI | |
|
strong |
| std::shared_ptr<geometry::Image> open3d::visualization::rendering::CombineTextures | ( | std::shared_ptr< geometry::Image > | ao, |
| std::shared_ptr< geometry::Image > | rough, | ||
| std::shared_ptr< geometry::Image > | metal | ||
| ) |
| void open3d::visualization::rendering::CombineTextures | ( | std::shared_ptr< geometry::Image > | ao, |
| std::shared_ptr< geometry::Image > | rough_metal | ||
| ) |
| void open3d::visualization::rendering::ComputeGaussianGpuBufferSizes | ( | const PackedGaussianScene & | packed, |
| GaussianGpuBufferSizes * | out | ||
| ) |
Compute GPU buffer sizes from a packed-scene frame description. Called once per geometry pass to size intermediate SSBO allocations.
| std::unique_ptr< GaussianSplatGpuContext > open3d::visualization::rendering::CreateComputeGpuContextVulkan | ( | ) |
Factory: create a Vulkan-backed GaussianSplatGpuContext. Uses device / queue from GaussianSplatVulkanInteropContext::GetInstance(). Returns nullptr if the interop context is not initialized.
| std::unique_ptr< GaussianSplatRenderer::Backend > open3d::visualization::rendering::CreateGaussianSplatVulkanBackend | ( | FilamentResourceManager & | resource_mgr, |
| const GaussianSplatRenderer::RenderConfig & | config | ||
| ) |
Create the Vulkan compute Gaussian splat backend. Returns nullptr if GaussianSplatVulkanInteropContext is not initialized.
| std::uint64_t open3d::visualization::rendering::fnv1a_block_hash | ( | const void *const | block, |
| std::size_t | len | ||
| ) |
| FilamentMetalNativeHandles open3d::visualization::rendering::GetFilamentMetalNativeHandles | ( | filament::backend::Platform * | platform | ) |
| const std::string open3d::visualization::rendering::kAxisObjectName | ( | "__axis__" | ) |
| const std::string open3d::visualization::rendering::kFastModelObjectSuffix | ( | "__fast__" | ) |
| const std::string open3d::visualization::rendering::kLowQualityModelObjectSuffix | ( | "__low__" | ) |
|
inline |
| void open3d::visualization::rendering::MergeGaussianSplatPackedAttrs | ( | const std::vector< GaussianSplatMergeItem > & | items, |
| GaussianSplatPackedAttrs * | out, | ||
| std::vector< std::uint32_t > * | splat_starts = nullptr |
||
| ) |
Merge multiple per-object packed Gaussian-splat buffers into one scene-level packed buffer. The output uses a single SH stride (max source SH degree), with lower-order sources zero-padded per splat.
| items | Merge sources in output order. |
| out | Output packed buffer (overwritten). |
| splat_starts | Optional output; receives per-item start index in merged splat arrays. splat_starts[i] corresponds to items[i]. |
| std::ostream & open3d::visualization::rendering::operator<< | ( | std::ostream & | os, |
| const REHandle_abstract & | uid | ||
| ) |
| void open3d::visualization::rendering::OutputMaterialProperties | ( | const visualization::rendering::MaterialRecord & | mat | ) |
| void open3d::visualization::rendering::PackGaussianSplatAttrsDirect | ( | const float * | pts_ptr, |
| std::size_t | n, | ||
| const float * | scale_ptr, | ||
| const float * | rot_ptr, | ||
| const float * | f_dc_ptr, | ||
| const float * | opacity_ptr, | ||
| const float * | f_rest_ptr, | ||
| int | source_sh_degree, | ||
| int | desired_sh_degree, | ||
| float | min_opacity_logit, | ||
| bool | antialias, | ||
| GaussianSplatPackedAttrs & | out | ||
| ) |
Pack Gaussian splat attributes from raw PointCloud data pointers into GPU-ready format, filtering by opacity in a single pass. Called once at scene cache time (FilamentScene::CacheGaussianSplatData) to eliminate the intermediate fp32 copy that was previously re-packed every scene-change frame.
| n | Total number of splats in source |
| scale_ptr | Non-null when n>0: linear scales (3 floats/splat). |
| rot_ptr | Non-null when n>0: unit quaternion (w,x,y,z). |
| f_dc_ptr | Non-null when n>0: DC SH color (3 floats/splat). |
| opacity_ptr | Non-null when n>0: opacity logit (1 float/splat). |
| f_rest_ptr | May be nullptr → no SH rest coefficients |
| source_sh_degree | SH degree in the source f_rest tensor (sets stride) |
| desired_sh_degree | Effective degree to pack (may be < source_sh_degree) |
| min_opacity_logit | Filter threshold in logit space; splats below this are dropped |
| antialias | Stored as out.antialias metadata |
| PackedGaussianScene open3d::visualization::rendering::PackGaussianViewParams | ( | const GaussianSplatPackedAttrs & | attrs, |
| const GaussianSplatRenderer::ViewRenderData & | render_data, | ||
| const GaussianSplatRenderer::RenderConfig & | config | ||
| ) |
Pack camera, viewport, and scene metadata into the view-params UBO. Uses the splat count, SH degree, and antialias flag from attrs. Per-frame GPU cost: glBufferSubData / MTLBuffer memcpy of 288 bytes.
| bool open3d::visualization::rendering::ProjectionInfoEquals | ( | const Camera::ProjectionInfo & | left, |
| const Camera::ProjectionInfo & | right | ||
| ) |
| void open3d::visualization::rendering::ReadPixelsCallback | ( | void * | buffer, |
| size_t | buffer_size, | ||
| void * | user | ||
| ) |
| void open3d::visualization::rendering::RegisterSharedImageInVulkanContext | ( | GaussianSplatGpuContext & | ctx, |
| std::uint32_t | gl_name, | ||
| std::uintptr_t | vk_image_opaque, | ||
| std::uint32_t | vk_format_opaque, | ||
| std::uint32_t | width, | ||
| std::uint32_t | height | ||
| ) |
Register a GL-Vulkan shared image with a Vulkan compute context so that subsequent BindImage() / BindSamplerTexture() calls for that GL texture name resolve to the backing VkImage.
| ctx | Created by CreateComputeGpuContextVulkan(). |
| gl_name | GL texture name from SharedImageDesc.gl_texture. |
| vk_image_opaque | SharedImageDesc.vk_image cast to uintptr_t. |
| vk_format_opaque | VkFormat value cast to uint32_t. |
| width,height | Image dimensions in pixels. |
| bool open3d::visualization::rendering::RunGaussianCompositePass | ( | GaussianSplatGpuContext & | ctx, |
| const GaussianSplatRenderer::RenderConfig & | config, | ||
| GaussianSplatViewGpuResources & | vs, | ||
| GaussianSplatRenderer::OutputTargets & | targets | ||
| ) |
Final composite pass into imported color/depth targets. Dispatch grid sizes are computed inline from config and targets dimensions.
| bool open3d::visualization::rendering::RunGaussianGeometryPasses | ( | GaussianSplatGpuContext & | ctx, |
| const GaussianSplatRenderer::RenderConfig & | config, | ||
| const PackedGaussianScene & | frame_data, | ||
| const GaussianSplatPackedAttrs & | attrs, | ||
| GaussianSplatViewGpuResources & | vs, | ||
| std::uint64_t | scene_change_id, | ||
| bool | scene_changed | ||
| ) |
Resize/upload buffers, then run the projection → radix → payload chain. Dispatch grid sizes are computed inline from frame_data and config.
| frame | Per-frame view parameters (UBO, splat/tile counts). |
| attrs | Pre-packed per-splat GPU data (uploaded when scene_changed). |
| scene_change_id | Scene geometry change token from Filament. |
| scene_changed | True when per-splat buffers must be re-uploaded. |
| void open3d::visualization::rendering::UnregisterSharedImageFromVulkanContext | ( | GaussianSplatGpuContext & | ctx, |
| std::uint32_t | gl_name | ||
| ) |
Unregister a previously registered shared image (called on resize / teardown before VulkanInteropContext::DestroySharedImage).
| bool open3d::visualization::rendering::ViewRenderDataEquals | ( | const GaussianSplatRenderer::ViewRenderData & | left, |
| const GaussianSplatRenderer::ViewRenderData & | right | ||
| ) |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
UBO stride for radix-sort params: must match GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT padding used by both the OpenGL backend and the radix-sort dispatch shaders.
|
constexpr |
Canonical shader base names indexed by ComputeProgramId. Backends append ".spv" (Vulkan) or "_main" (Metal entry point).