/*========================================================================= Program: Visualization Toolkit Module: TestOSPRayLayers.cxx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // This test verifies that we can have multiple render layers // // The command line arguments are: // -I => run in interactive mode; unless this is used, the program will // not allow interaction and exit #include "vtkActor.h" #include "vtkCamera.h" #include "vtkConeSource.h" #include "vtkOSPRayPass.h" #include "vtkOSPRayRendererNode.h" #include "vtkPolyDataMapper.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkRenderer.h" #include "vtkSmartPointer.h" #include "vtkSphereSource.h" int TestOSPRayLayers(int argc, char* argv[]) { vtkSmartPointer iren = vtkSmartPointer::New(); vtkSmartPointer renWin = vtkSmartPointer::New(); iren->SetRenderWindow(renWin); renWin->SetNumberOfLayers(2); vtkSmartPointer renderer = vtkSmartPointer::New(); renWin->AddRenderer(renderer); vtkSmartPointer sphere = vtkSmartPointer::New(); sphere->SetPhiResolution(10); vtkSmartPointer mapper = vtkSmartPointer::New(); mapper->SetInputConnection(sphere->GetOutputPort()); vtkSmartPointer actor = vtkSmartPointer::New(); renderer->AddActor(actor); actor->SetMapper(mapper); renderer->SetBackground(0.5, 0.5, 1.0); // should see a light blue background renderer->SetEnvironmentalBG(0.5, 0.5, 1.0); // should see a light blue background vtkSmartPointer renderer2 = vtkSmartPointer::New(); renderer2->SetLayer(1); renWin->AddRenderer(renderer2); renderer2->SetBackground(1.0, 0.0, 0.0); // should not see red background renderer2->SetEnvironmentalBG(1.0, 0.0, 0.0); // should not see red background vtkSmartPointer cone = vtkSmartPointer::New(); vtkSmartPointer mapper2 = vtkSmartPointer::New(); mapper2->SetInputConnection(cone->GetOutputPort()); vtkSmartPointer actor2 = vtkSmartPointer::New(); renderer2->AddActor(actor2); actor2->SetMapper(mapper2); renWin->SetSize(400, 400); renWin->Render(); vtkSmartPointer ospray = vtkSmartPointer::New(); vtkSmartPointer ospray2 = vtkSmartPointer::New(); for (int i = 0; i < argc; ++i) { if (!strcmp(argv[i], "--OptiX")) { vtkOSPRayRendererNode::SetRendererType("optix pathtracer", renderer); vtkOSPRayRendererNode::SetRendererType("optix pathtracer", renderer2); break; } } renderer->SetPass(ospray); renderer2->SetPass(ospray2); renWin->Render(); iren->Start(); return 0; }