17#ifndef vtkAnariRendererNode_h
18#define vtkAnariRendererNode_h
21#include "vtkRenderingAnariModule.h"
23#include <anari/anari_cpp.hpp>
26VTK_ABI_NAMESPACE_BEGIN
32class vtkAnariRendererNodeInternals;
45 virtual void Build(
bool prepass)
override;
50 virtual void Render(
bool prepass)
override;
499 virtual void WriteLayer(
unsigned char* buffer,
float* zbuffer,
int buffx,
int buffy,
int layer);
536 vtkAnariRendererNodeInternals* Internal{
nullptr };
links vtkRenderers to ANARI
anari::Library GetAnariLibrary()
Get the ANARI library.
static vtkInformationStringKey * DEBUG_DEVICE_DIRECTORY()
Set the debug device output directory.
static vtkInformationIntegerKey * USD_OUTPUT_DISPLAYCOLORS()
Sets the output USD display colors flag for the USD back-end.
static void SetUseDenoiser(int, vtkRenderer *renderer)
Convenience method to set/get USE_DENOISER on a vtkRenderer.
void UpdateAnariVolumes()
static vtkAnariRendererNode * New()
static void SetSamplesPerPixel(int, vtkRenderer *renderer)
Convenience method to set/get SAMPLES_PER_PIXEL on a vtkRenderer.
static vtkInformationIntegerKey * COMPOSITE_ON_GL()
used to make the renderer add ANARI's content onto GL rendered content on the window
void CopyAnariFrameBufferData()
static void SetLightFalloff(double, vtkRenderer *renderer)
Convenience method to set/get LIGHT_FALLOFF on a vtkRenderer.
static vtkInformationStringKey * USD_DIRECTORY()
Set the USD output directory.
static int GetSamplesPerPixel(vtkRenderer *renderer)
void AddLight(anari::Light)
Methods for other nodes to access.
static void SetDebugDeviceTraceMode(const char *name, vtkRenderer *renderer)
Convenience method to set/get DEBUG_DEVICE_TRACE_MODE on a vtkRenderer.
static const char * GetLibraryName(vtkRenderer *renderer)
static vtkInformationDoubleKey * AMBIENT_INTENSITY()
When present on renderer, controls the ambient intensity value used by the back-end renderer.
static vtkInformationIntegerKey * USD_OUTPUT_PREVIEW()
Sets the output USD preview surface prims for material objects flag for the USD back-end.
static void InvalidateRendererParameters()
Indicate that the parameters to the underlying ANARIRenderer need to be set.
static vtkInformationIntegerKey * AMBIENT_SAMPLES()
When present on renderer, controls the number of ambient occlusion samples shot per hit.
static vtkInformationIntegerKey * USD_OUTPUT_MATERIAL()
Sets the output USD material objects flag for the USD back-end.
static vtkInformationIntegerKey * USD_OUTPUT_MDLCOLORS()
Sets the output USD mdl colors for material objects flag for the USD back-end.
static int GetUsdAtCommit(vtkRenderer *renderer)
static double GetROptionValue(vtkRenderer *renderer)
static void SetROptionValue(double, vtkRenderer *renderer)
Convenience method to set/get R_VALUE on a vtkRenderer.
static const char * GetDebugDeviceSubtype(vtkRenderer *renderer)
static vtkInformationDoubleVectorKey * AMBIENT_COLOR()
When present on renderer, controls the ambient color used by the back-end renderer.
static vtkInformationStringKey * DEBUG_DEVICE_TRACE_MODE()
Set the debug device trace mode Default is "code".
virtual void Build(bool prepass) override
Builds objects for this renderer.
virtual void Render(bool prepass) override
Traverse graph in ANARI's preferred order and render.
static const char * GetDeviceSubtype(vtkRenderer *renderer)
static int GetAmbientSamples(vtkRenderer *renderer)
void DebugOutputWorldBounds()
static vtkInformationStringKey * DEBUG_LIBRARY_NAME()
Set the debug library name.
vtkRenderer * GetRenderer()
Convenience method to get and downcast renderable.
static void SetDeviceSubtype(const char *name, vtkRenderer *renderer)
Convenience method to set/get DEVICE_SUBTYPE on a vtkRenderer.
static void SetAccumulationCount(int, vtkRenderer *renderer)
Convenience method to set/get ACCUMULATION_COUNT on a vtkRenderer.
static void SetUsdOutputBinary(int, vtkRenderer *renderer)
Convenience method to set/get USD_OUTPUT_BINARY on a vtkRenderer.
static int GetUsdOutputPreviewSurface(vtkRenderer *renderer)
static vtkInformationStringKey * LIBRARY_NAME()
Set the library name.
virtual const unsigned char * GetBuffer()
Get the last rendered ColorBuffer.
virtual int GetDepthBufferTextureGL()
Get the last renderer depth buffer as an OpenGL texture.
virtual int GetColorBufferTextureGL()
Get the last renderer color buffer as an OpenGL texture.
static void SetLibraryName(const char *name, vtkRenderer *renderer)
Convenience method to set/get LIBRARY_NAME on a vtkRenderer.
static double GetAmbientIntensity(vtkRenderer *renderer)
static void SetAmbientIntensity(double, vtkRenderer *renderer)
Convenience method to set/get AMBIENT_INTENSITY on a vtkRenderer.
void UpdateAnariSurfaces()
static vtkInformationIntegerKey * USD_COMMIT()
Sets the output USD at anariCommit flag for the USD back-end.
static void SetAmbientSamples(int, vtkRenderer *renderer)
Convenience method to set/get AMBIENT_SAMPLES on a vtkRenderer.
static const char * GetDebugLibraryName(vtkRenderer *renderer)
static int GetMaxDepth(vtkRenderer *renderer)
void InitAnariFrame(vtkRenderer *ren)
static int GetUsdOutputMDLColors(vtkRenderer *renderer)
static int GetUseDebugDevice(vtkRenderer *renderer)
static void SetUsdDirectory(const char *, vtkRenderer *renderer)
Convenience method to set/get USD_DIRECTORY on a vtkRenderer.
void UpdateAnariFrameSize()
static int GetUsdOutputMaterial(vtkRenderer *renderer)
static vtkInformationStringKey * DEVICE_SUBTYPE()
Set the back-end device subtype.
static vtkInformationIntegerKey * USD_OUTPUT_BINARY()
Sets the output USD in binary format flag for the USD back-end.
static const char * GetDebugDeviceTraceMode(vtkRenderer *renderer)
static void SetUsdOutputMDL(int, vtkRenderer *renderer)
Convenience method to set/get USD_OUTPUT_MDL on a vtkRenderer.
static void SetUsdOutputMaterial(int, vtkRenderer *renderer)
Convenience method to set/get USD_OUTPUT_MATERIAL on a vtkRenderer.
static int GetUsdOutputMDL(vtkRenderer *renderer)
static void SetDebugLibraryName(const char *name, vtkRenderer *renderer)
Convenience method to set/get DEBUG_LIBRARY_NAME on a vtkRenderer.
static void SetDebugDeviceSubtype(const char *name, vtkRenderer *renderer)
Convenience method to set/get DEBUG_DEVICE_SUBTYPE on a vtkRenderer.
void SetCamera(anari::Camera)
Accessed by the AnariCameraNode to set the ANARICamera on the ANARIFrame.
vtkTimeStamp AnariSceneStructureModifiedMTime
void InitAnariRenderer(vtkRenderer *ren)
virtual void Invalidate(bool prepass) override
Invalidates cached rendering data.
virtual void WriteLayer(unsigned char *buffer, float *zbuffer, int buffx, int buffy, int layer)
Put my results into the correct place in the provided pixel buffer.
virtual void Traverse(int operation) override
static vtkInformationIntegerKey * USE_DEBUG_DEVICE()
When present on renderer, controls if the rendering back-end should be wrapped in a debug device to s...
static vtkInformationIntegerKey * ACCUMULATION_COUNT()
Set the number of frames to render which are accumulated to result in a better converged image.
static int GetCompositeOnGL(vtkRenderer *renderer)
static void SetCompositeOnGL(int, vtkRenderer *renderer)
Convenience method to set/get COMPOSITE_ON_GL on a vtkRenderer.
anari::Extensions GetAnariDeviceExtensions()
Get the extensions supported by the current back-end device.
static void SetRendererSubtype(const char *name, vtkRenderer *renderer)
Convenience method to set/get RENDERER_SUBTYPE on a vtkRenderer.
void AddSurface(anari::Surface)
Accessed by the AnariPolyDataMapperNode to an ANARISurface to the world.
static vtkInformationDoubleKey * R_VALUE()
When present on renderer, controls the R value used by the back-end renderer.
static void SetUsdOutputDisplayColors(int, vtkRenderer *renderer)
Convenience method to set/get USD_OUTPUT_DISPLAYCOLORS on a vtkRenderer.
static vtkInformationIntegerKey * SAMPLES_PER_PIXEL()
When present on renderer, controls the number of primary rays shot per pixel.default is 1.
static const char * GetUsdDirectory(vtkRenderer *renderer)
static double GetLightFalloff(vtkRenderer *renderer)
static void SetUseDebugDevice(int, vtkRenderer *renderer)
Convenience method to set/get USE_DEBUG_DEVICE on a vtkRenderer.
static void SetUsdOutputPreviewSurface(int, vtkRenderer *renderer)
Convenience method to set/get USD_OUTPUT_PREVIEW on a vtkRenderer.
static void SetDebugDeviceDirectory(const char *name, vtkRenderer *renderer)
Convenience method to set/get DEBUG_DEVICE_DIRECTORY on a vtkRenderer.
static vtkInformationIntegerKey * MAX_DEPTH()
When present on renderer, controls the max depth value used by the back-end renderer.
static void SetUsdAtCommit(int, vtkRenderer *renderer)
Convenience method to set/get USD_COMMIT on a vtkRenderer.
static double * GetAmbientColor(vtkRenderer *renderer)
static vtkTimeStamp AnariRendererModifiedTime
static int GetUsdOutputBinary(vtkRenderer *renderer)
static vtkInformationDoubleKey * LIGHT_FALLOFF()
When present on renderer, controls the light falloff value used by the back-end renderer.
std::string GetAnariDeviceName()
Get the ANARI back-end device subtype name.
static vtkInformationStringKey * DEBUG_METHOD()
Set the debug method.
static const char * GetDebugMethod(vtkRenderer *renderer)
static void SetAmbientColor(double *, vtkRenderer *renderer)
Convenience method to set/get AMBIENT_COLOR on a vtkRenderer.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static int GetUsdOutputDisplayColors(vtkRenderer *renderer)
static int GetAccumulationCount(vtkRenderer *renderer)
void SetupAnariRendererParameters(vtkRenderer *ren)
static void SetUsdOutputMDLColors(int, vtkRenderer *renderer)
Convenience method to set/get USD_OUTPUT_MDLCOLORS on a vtkRenderer.
anari::Device GetAnariDevice()
Get the ANARI back-end device.
static vtkInformationIntegerKey * USD_OUTPUT_MDL()
Sets the output USD mdl shader prims for material objects flag for the USD back-end.
virtual const float * GetZBuffer()
Get the last rendered ZBuffer.
void AddVolume(anari::Volume)
Accessed by the AnariVolumeMapperNode to add Volumes to the world.
static const char * GetRendererSubtype(vtkRenderer *renderer)
static vtkInformationIntegerKey * USE_DENOISER()
When present on renderer, controls if a denoiser is used during rendering.
void InvalidateSceneStructure()
Indicate that a new RenderTraversal of children needs to occur next frame.
static void SetMaxDepth(int, vtkRenderer *renderer)
Convenience method to set/get MAX_DEPTH on a vtkRenderer.
static vtkInformationStringKey * DEBUG_DEVICE_SUBTYPE()
Set the debug device subtype.
static vtkInformationStringKey * RENDERER_SUBTYPE()
Set the renderer subtype.
static void SetDebugMethod(const char *, vtkRenderer *renderer)
Convenience method to set/get DEBUG_METHOD on a vtkRenderer.
static const char * GetDebugDeviceDirectory(vtkRenderer *renderer)
static int GetUseDenoiser(vtkRenderer *renderer)
a simple class to control print indentation
vtkViewNode specialized for vtkRenderers
abstract specification for renderers
record modification and/or execution time
vtkTypeUInt32 vtkMTimeType