13 #ifndef vtkOSPRayRendererNode_h
14 #define vtkOSPRayRendererNode_h
21 #include "vtkRenderingRayTracingModule.h"
25 #ifdef VTKOSPRAY_ENABLE_DENOISER
26 #include <OpenImageDenoise/oidn.hpp>
29 VTK_ABI_NAMESPACE_BEGIN
36 class vtkOSPRayRendererNodeInternals;
49 void Build(
bool prepass)
override;
54 void Render(
bool prepass)
override;
64 virtual void WriteLayer(
unsigned char* buffer,
float* zbuffer,
int buffx,
int buffy,
int layer);
80 static void SetSamplesPerPixel(
int,
vtkRenderer* renderer);
81 static int GetSamplesPerPixel(
vtkRenderer* renderer);
96 static void SetMaxContribution(
double,
vtkRenderer* renderer);
97 static double GetMaxContribution(
vtkRenderer* renderer);
111 static void SetMaxDepth(
int,
vtkRenderer* renderer);
127 static void SetMinContribution(
double,
vtkRenderer* renderer);
128 static double GetMinContribution(
vtkRenderer* renderer);
143 static void SetRouletteDepth(
int,
vtkRenderer* renderer);
144 static int GetRouletteDepth(
vtkRenderer* renderer);
158 static void SetVarianceThreshold(
double,
vtkRenderer* renderer);
159 static double GetVarianceThreshold(
vtkRenderer* renderer);
176 static void SetMaxFrames(
int,
vtkRenderer* renderer);
206 static void SetAmbientSamples(
int,
vtkRenderer* renderer);
207 static int GetAmbientSamples(
vtkRenderer* renderer);
220 static void SetVolumeSamplingRate(
double,
vtkRenderer* renderer);
221 static double GetVolumeSamplingRate(
vtkRenderer* renderer);
234 static void SetCompositeOnGL(
int,
vtkRenderer* renderer);
235 static int GetCompositeOnGL(
vtkRenderer* renderer);
247 static void SetNorthPole(
double*,
vtkRenderer* renderer);
248 static double* GetNorthPole(
vtkRenderer* renderer);
260 static void SetEastPole(
double*,
vtkRenderer* renderer);
287 static void SetViewTime(
double,
vtkRenderer* renderer);
300 static void SetTimeCacheSize(
int,
vtkRenderer* renderer);
301 static int GetTimeCacheSize(
vtkRenderer* renderer);
313 virtual void*
GetBuffer() {
return this->Buffer.data(); }
328 void Traverse(
int operation)
override;
346 static void SetDenoiserThreshold(
int,
vtkRenderer* renderer);
347 static int GetDenoiserThreshold(
vtkRenderer* renderer);
359 static void SetEnableDenoiser(
int,
vtkRenderer* renderer);
360 static int GetEnableDenoiser(
vtkRenderer* renderer);
386 static void SetBackgroundMode(BackgroundMode,
vtkRenderer* renderer);
387 static BackgroundMode GetBackgroundMode(
vtkRenderer* renderer);
420 bool UseBackplate{
true };
429 #ifdef VTKOSPRAY_ENABLE_DENOISER
430 oidn::DeviceRef DenoiserDevice;
431 oidn::FilterRef DenoiserFilter;
433 bool DenoiserDirty{
true };
447 VTK_ABI_NAMESPACE_END
std::vector< osp::vec4f > DenoisedBuffer
represent and manipulate 4x4 transformation matrices
virtual int GetColorBufferTextureGL()
std::vector< osp::vec3f > NormalBuffer
std::set< OSPWorld > CacheContents
virtual int GetDepthBufferTextureGL()
vtkTypeUInt32 vtkMTimeType
vtkOSPRayRendererNodeInternals * Internal
vtkOSPRayCache< vtkOSPRayCacheItemObject > * Cache
virtual void * GetBuffer()
Get the last rendered ColorBuffer.
abstract specification for renderers
vtkMatrix4x4 * AccumulateMatrix
virtual float * GetZBuffer()
Get the last rendered ZBuffer.
a collection of materials for OSPRay-based rendering
void AddLight(OSPLight light)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
vtkMTimeType AccumulateTime
std::vector< OSPGeometricModel > GeometricModels
std::vector< OSPLight > Lights
std::vector< osp::vec3f > AlbedoBuffer
virtual void Render(bool)
Makes calls to make self visible.
std::vector< OSPVolumetricModel > VolumetricModels
vtkViewNode specialized for vtkRenderers
OSPRenderer GetORenderer()
Methods for other nodes to access.
virtual void Invalidate(bool)
Clear any cached data.
std::vector< float > ODepthBuffer
std::vector< OSPInstance > Instances
static vtkRendererNode * New()
virtual void Traverse(int operation)
std::vector< osp::vec4f > ColorBuffer
void Build(bool prepass) override
Build containers for our child nodes.
std::vector< float > Buffer
links vtkRenderers to OSPRay
a node within a VTK scene graph
std::vector< float > ZBuffer