/*========================================================================= Program: Visualization Toolkit Module: TestGPURayCastVolumeRotation.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 covers additive method. // This test volume renders a synthetic dataset with unsigned char values, // with the additive method. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int TestGPURayCastVolumeLightKit(int argc, char* argv[]) { bool useOSP = true; for (int i = 0; i < argc; i++) { if (!strcmp(argv[i], "-GL")) { cerr << "GL" << endl; useOSP = false; } } double scalarRange[2]; vtkNew volumeMapper; vtkNew reader; const char* volumeFile = vtkTestUtilities::ExpandDataFileName(argc, argv, "Data/vase_1comp.vti"); reader->SetFileName(volumeFile); volumeMapper->SetInputConnection(reader->GetOutputPort()); volumeMapper->GetInput()->GetScalarRange(scalarRange); volumeMapper->SetBlendModeToComposite(); volumeMapper->SetAutoAdjustSampleDistances(0); volumeMapper->SetSampleDistance(0.1); vtkNew lightKit; vtkNew renWin; vtkNew ren; ren->SetBackground(0.0, 0.0, 0.0); ren->SetTwoSidedLighting(0); lightKit->SetKeyLightWarmth(1.0); lightKit->SetFillLightWarmth(0.0); lightKit->SetBackLightWarmth(0.0); lightKit->AddLightsToRenderer(ren); renWin->AddRenderer(ren); renWin->SetSize(400, 400); vtkNew iren; iren->SetRenderWindow(renWin); vtkNew scalarOpacity; scalarOpacity->AddPoint(55, 0.0); scalarOpacity->AddPoint(65, 1.0); vtkNew volumeProperty; volumeProperty->SetAmbient(0.0); volumeProperty->SetDiffuse(1.0); volumeProperty->SetSpecular(0.0); volumeProperty->SetInterpolationType(VTK_LINEAR_INTERPOLATION); volumeProperty->SetScalarOpacity(scalarOpacity); vtkSmartPointer colorTransferFunction = volumeProperty->GetRGBTransferFunction(0); colorTransferFunction->RemoveAllPoints(); colorTransferFunction->AddRGBPoint(scalarRange[0], 1.0, 1.0, 1.0); vtkNew volume; volume->SetMapper(volumeMapper); volume->SetProperty(volumeProperty); ren->AddViewProp(volume); // Attach OSPRay render pass vtkNew osprayPass; if (useOSP) { ren->SetPass(osprayPass); } renWin->Render(); ren->ResetCamera(); iren->Initialize(); int retVal = vtkRegressionTestImage(renWin); if (retVal == vtkRegressionTester::DO_INTERACTOR) { iren->Start(); } return !retVal; }