ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
PclUtils::renders::PBRRenderer Class Reference

Unified PBR (Physically Based Rendering) renderer. More...

#include <PBRRenderer.h>

Inheritance diagram for PclUtils::renders::PBRRenderer:
Collaboration diagram for PclUtils::renders::PBRRenderer:

Public Member Functions

 PBRRenderer ()
 
 ~PBRRenderer () override=default
 
bool CanHandle (size_t material_count, bool has_pbr_textures, bool has_multiple_map_kd) const override
 Check if this renderer can handle the given material. More...
 
RenderingMode GetMode () const override
 Get the rendering mode this renderer implements. More...
 
bool Apply (vtkLODActor *actor, const class ccMaterialSet *materials, vtkPolyData *polydata, vtkRenderer *renderer) override
 Apply rendering to actor. More...
 
bool Update (vtkActor *actor, const class ccMaterialSet *materials, vtkPolyData *polydata, vtkRenderer *renderer) override
 Update existing actor with new materials. More...
 
std::string GetName () const override
 Get renderer name for logging. More...
 
- Public Member Functions inherited from PclUtils::renders::TextureRendererBase
 TextureRendererBase ()=default
 
virtual ~TextureRendererBase ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from PclUtils::renders::TextureRendererBase
void ClearTextures (vtkActor *actor)
 Helper: Clear all textures from actor. More...
 
bool ValidateActor (vtkActor *actor) const
 Helper: Validate actor. More...
 
bool ValidateMaterials (const class ccMaterialSet *materials) const
 Helper: Validate materials. More...
 

Detailed Description

Unified PBR (Physically Based Rendering) renderer.

Uses VTK 9+ PBR rendering pipeline for realistic material rendering. Supports both:

  • PBR textures (baseColor, normal, metallic, roughness, AO)
  • Material-only rendering (no textures, only material properties)

VtkMultiTextureRenderer::ApplyPBRMaterial automatically detects the rendering mode (PBR/TEXTURED/MATERIAL_ONLY) based on material properties and applies accordingly.

Definition at line 30 of file PBRRenderer.h.

Constructor & Destructor Documentation

◆ PBRRenderer()

PclUtils::renders::PBRRenderer::PBRRenderer ( )

Definition at line 27 of file PBRRenderer.cpp.

◆ ~PBRRenderer()

PclUtils::renders::PBRRenderer::~PBRRenderer ( )
overridedefault

Member Function Documentation

◆ Apply()

bool PclUtils::renders::PBRRenderer::Apply ( vtkLODActor *  actor,
const class ccMaterialSet materials,
vtkPolyData *  polydata,
vtkRenderer *  renderer 
)
overridevirtual

Apply rendering to actor.

Parameters
actorVTK actor to render
materialsMaterial set
polydataPolygon data (for texture coordinates)
rendererVTK renderer (for lighting setup)
Returns
true on success

Implements PclUtils::renders::TextureRendererBase.

Definition at line 48 of file PBRRenderer.cpp.

References CVLog::Error(), PclUtils::renders::MaterialConverter::FromMaterialSet(), CVLog::PrintDebug(), result, PclUtils::renders::TextureRendererBase::ValidateActor(), and PclUtils::renders::TextureRendererBase::ValidateMaterials().

Referenced by Update().

◆ CanHandle()

bool PclUtils::renders::PBRRenderer::CanHandle ( size_t  material_count,
bool  has_pbr_textures,
bool  has_multiple_map_kd 
) const
overridevirtual

Check if this renderer can handle the given material.

Parameters
material_countNumber of materials
has_pbr_texturesWhether material has PBR textures
has_multiple_map_kdWhether material has multiple map_Kd textures
Returns
true if this renderer can handle the material

Implements PclUtils::renders::TextureRendererBase.

Definition at line 30 of file PBRRenderer.cpp.

◆ GetMode()

RenderingMode PclUtils::renders::PBRRenderer::GetMode ( ) const
overridevirtual

Get the rendering mode this renderer implements.

Implements PclUtils::renders::TextureRendererBase.

Definition at line 46 of file PBRRenderer.cpp.

References PclUtils::renders::PBR.

◆ GetName()

std::string PclUtils::renders::PBRRenderer::GetName ( ) const
overridevirtual

Get renderer name for logging.

Implements PclUtils::renders::TextureRendererBase.

Definition at line 115 of file PBRRenderer.cpp.

◆ Update()

bool PclUtils::renders::PBRRenderer::Update ( vtkActor *  actor,
const class ccMaterialSet materials,
vtkPolyData *  polydata,
vtkRenderer *  renderer 
)
overridevirtual

Update existing actor with new materials.

Parameters
actorVTK actor to update
materialsMaterial set
polydataPolygon data
rendererVTK renderer
Returns
true on success

Implements PclUtils::renders::TextureRendererBase.

Definition at line 96 of file PBRRenderer.cpp.

References Apply(), PclUtils::renders::TextureRendererBase::ValidateActor(), PclUtils::renders::TextureRendererBase::ValidateMaterials(), and CVLog::Warning().


The documentation for this class was generated from the following files: