-
Kees van Kooten authored
Initial version of the integration of the NVIDIA gpu-based raytracing library OptiX into VTK. This enables ray-traced visualization of opaque geometries - transparent geometries or volume rendering is not supported. Supported are: meshes, spheres and cylinders, with any kind of coloring option including 1D lut or 2D texture mapping. The implementation adds new renderer, renderpass, polydatamapper, camera, actor, light and window nodes, which replace standard OpenGL rendering with their ray-traced counterparts, responsible for maintaining rendering resources and launching the necessary jobs on the gpu. It also adds the corresponding OptiX CUDA source (in the /CUDA subdir) and the necessary tests (in the /Testing subdir). To use the module you must use a recent cmake and have OptiX and CUDA installed. The code was initially developed with version 4+ (OptiX) and 8+ (CUDA). When building, enable vtkModuleRenderingOptiX and set the OptiX install directory. Also, it is possible to manually set CUDA_NVCC_ARCH to change the shader model used for compiling OptiX. After building the module, ray-traced rendering can be enabled for any given existing renderer using: vtkSmartPointer optix = vtkSmartPointer::New(); renderer->SetPass(optix); The following rendering-specific features are supported: shadows (use vtkRenderer::SetUseShadows()), ambient occlusion and multi-sampling (use the static functions in vtkOptiXRenderer).
7423d33a