22 #ifndef vtkOSPRayRendererNode_h 23 #define vtkOSPRayRendererNode_h 26 #include "vtkRenderingRayTracingModule.h" 31 #ifdef VTKOSPRAY_ENABLE_DENOISER 32 #include <OpenImageDenoise/oidn.hpp> 41 class vtkOSPRayRendererNodeInternals;
55 virtual void Build(
bool prepass)
override;
60 virtual void Render(
bool prepass)
override;
65 virtual void Invalidate(
bool prepass)
override;
70 virtual void WriteLayer(
unsigned char* buffer,
float* zbuffer,
int buffx,
int buffy,
int layer);
85 static void SetSamplesPerPixel(
int,
vtkRenderer* renderer);
86 static int GetSamplesPerPixel(
vtkRenderer* renderer);
100 static void SetMaxContribution(
double,
vtkRenderer* renderer);
101 static double GetMaxContribution(
vtkRenderer* renderer);
114 static void SetMaxDepth(
int,
vtkRenderer* renderer);
129 static void SetMinContribution(
double,
vtkRenderer* renderer);
130 static double GetMinContribution(
vtkRenderer* renderer);
144 static void SetRouletteDepth(
int,
vtkRenderer* renderer);
145 static int GetRouletteDepth(
vtkRenderer* renderer);
158 static void SetVarianceThreshold(
double,
vtkRenderer* renderer);
159 static double GetVarianceThreshold(
vtkRenderer* renderer);
169 static void SetMaxFrames(
int,
vtkRenderer* renderer);
193 static void SetAmbientSamples(
int,
vtkRenderer* renderer);
194 static int GetAmbientSamples(
vtkRenderer* renderer);
206 static void SetCompositeOnGL(
int,
vtkRenderer* renderer);
207 static int GetCompositeOnGL(
vtkRenderer* renderer);
218 static void SetNorthPole(
double*,
vtkRenderer* renderer);
219 static double* GetNorthPole(
vtkRenderer* renderer);
230 static void SetEastPole(
double*,
vtkRenderer* renderer);
255 static void SetViewTime(
double,
vtkRenderer* renderer);
267 static void SetTimeCacheSize(
int,
vtkRenderer* renderer);
268 static int GetTimeCacheSize(
vtkRenderer* renderer);
281 virtual void*
GetBuffer() {
return this->Buffer.data(); }
296 virtual void Traverse(
int operation)
override;
313 static void SetDenoiserThreshold(
int,
vtkRenderer* renderer);
314 static int GetDenoiserThreshold(
vtkRenderer* renderer);
325 static void SetEnableDenoiser(
int,
vtkRenderer* renderer);
326 static int GetEnableDenoiser(
vtkRenderer* renderer);
338 static void SetBackgroundMode(
int,
vtkRenderer* renderer);
339 static int GetBackgroundMode(
vtkRenderer* renderer);
351 #ifdef VTKOSPRAY_ENABLE_DENOISER 352 std::vector<float> Buffer;
379 #ifdef VTKOSPRAY_ENABLE_DENOISER 380 oidn::DeviceRef DenoiserDevice;
381 oidn::FilterRef DenoiserFilter;
383 bool DenoiserDirty{
true };
std::vector< osp::vec4f > DenoisedBuffer
represent and manipulate 4x4 transformation matrices
virtual int GetColorBufferTextureGL()
std::vector< osp::vec3f > NormalBuffer
virtual int GetDepthBufferTextureGL()
vtkTypeUInt32 vtkMTimeType
vtkOSPRayRendererNodeInternals * Internal
virtual void * GetBuffer()
Get the last rendered ColorBuffer.
abstract specification for renderers
OSPFrameBuffer OFrameBuffer
vtkMatrix4x4 * AccumulateMatrix
virtual float * GetZBuffer()
Get the last rendered ZBuffer.
a collection of materials for vtk apps to draw from
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< OSPLight > Lights
std::vector< osp::vec3f > AlbedoBuffer
virtual void Render(bool)
Makes calls to make self visible.
std::vector< unsigned char > Buffer
vtkViewNode specialized for vtkRenderers
OSPRenderer GetORenderer()
virtual void Invalidate(bool)
Clear any cached data.
std::vector< float > ODepthBuffer
OSPModel GetOModel()
Methods for other nodes to access.
static vtkRendererNode * New()
virtual void Traverse(int operation)
std::vector< osp::vec4f > ColorBuffer
void Build(bool prepass) override
Build containers for our child nodes.
links vtkRenderers to OSPRay
a node within a VTK scene graph
std::vector< float > ZBuffer