mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-19 10:35:42 +00:00
rebuilding everything each time for ray benchmark
This commit is contained in:
parent
6851077ebb
commit
53a8fa7259
@ -49,19 +49,25 @@ namespace benchmarking
|
|||||||
|
|
||||||
template <typename Precision>
|
template <typename Precision>
|
||||||
struct BenchRayTracing
|
struct BenchRayTracing
|
||||||
|
{
|
||||||
|
|
||||||
|
VTKM_CONT ~BenchRayTracing() {}
|
||||||
|
|
||||||
|
VTKM_CONT BenchRayTracing() {}
|
||||||
|
|
||||||
|
VTKM_CONT
|
||||||
|
vtkm::Float64 operator()()
|
||||||
{
|
{
|
||||||
vtkm::rendering::raytracing::RayTracer Tracer;
|
vtkm::rendering::raytracing::RayTracer Tracer;
|
||||||
vtkm::rendering::raytracing::Camera RayCamera;
|
vtkm::rendering::raytracing::Camera RayCamera;
|
||||||
vtkm::cont::ArrayHandle<vtkm::Vec<vtkm::Id, 4>> Indices;
|
vtkm::cont::ArrayHandle<vtkm::Vec<vtkm::Id, 4>> Indices;
|
||||||
vtkm::rendering::raytracing::Ray<Precision> Rays;
|
vtkm::rendering::raytracing::Ray<Precision> Rays;
|
||||||
vtkm::Id NumberOfTriangles;
|
|
||||||
vtkm::cont::CoordinateSystem Coords;
|
vtkm::cont::CoordinateSystem Coords;
|
||||||
vtkm::cont::DataSet Data;
|
vtkm::cont::DataSet Data;
|
||||||
|
|
||||||
VTKM_CONT BenchRayTracing()
|
vtkm::Id3 dims(128, 128, 128);
|
||||||
{
|
|
||||||
vtkm::cont::testing::MakeTestDataSet maker;
|
vtkm::cont::testing::MakeTestDataSet maker;
|
||||||
Data = maker.Make3DUniformDataSet2();
|
Data = maker.Make3DUniformDataSet3(dims);
|
||||||
Coords = Data.GetCoordinateSystem();
|
Coords = Data.GetCoordinateSystem();
|
||||||
|
|
||||||
vtkm::rendering::Camera camera;
|
vtkm::rendering::Camera camera;
|
||||||
@ -72,8 +78,10 @@ struct BenchRayTracing
|
|||||||
|
|
||||||
vtkm::rendering::raytracing::TriangleExtractor triExtractor;
|
vtkm::rendering::raytracing::TriangleExtractor triExtractor;
|
||||||
triExtractor.ExtractCells(cellset);
|
triExtractor.ExtractCells(cellset);
|
||||||
|
|
||||||
vtkm::rendering::raytracing::TriangleIntersector* triIntersector =
|
vtkm::rendering::raytracing::TriangleIntersector* triIntersector =
|
||||||
new vtkm::rendering::raytracing::TriangleIntersector();
|
new vtkm::rendering::raytracing::TriangleIntersector();
|
||||||
|
|
||||||
triIntersector->SetData(Coords, triExtractor.GetTriangles());
|
triIntersector->SetData(Coords, triExtractor.GetTriangles());
|
||||||
Tracer.AddShapeIntersector(triIntersector);
|
Tracer.AddShapeIntersector(triIntersector);
|
||||||
|
|
||||||
@ -109,16 +117,20 @@ struct BenchRayTracing
|
|||||||
|
|
||||||
Tracer.SetColorMap(colors);
|
Tracer.SetColorMap(colors);
|
||||||
Tracer.Render(Rays);
|
Tracer.Render(Rays);
|
||||||
}
|
|
||||||
|
|
||||||
VTKM_CONT
|
|
||||||
vtkm::Float64 operator()()
|
|
||||||
{
|
|
||||||
vtkm::cont::Timer timer;
|
vtkm::cont::Timer timer;
|
||||||
timer.Start();
|
timer.Start();
|
||||||
|
|
||||||
RayCamera.CreateRays(Rays, Coords.GetBounds());
|
RayCamera.CreateRays(Rays, Coords.GetBounds());
|
||||||
|
try
|
||||||
|
{
|
||||||
Tracer.Render(Rays);
|
Tracer.Render(Rays);
|
||||||
|
Tracer.Render(Rays);
|
||||||
|
}
|
||||||
|
catch (vtkm::cont::ErrorBadValue& e)
|
||||||
|
{
|
||||||
|
std::cout << "exception " << e.what() << "\n";
|
||||||
|
}
|
||||||
|
|
||||||
return timer.GetElapsedTime();
|
return timer.GetElapsedTime();
|
||||||
}
|
}
|
||||||
@ -131,6 +143,7 @@ VTKM_MAKE_BENCHMARK(RayTracing, BenchRayTracing);
|
|||||||
}
|
}
|
||||||
} // end namespace vtkm::benchmarking
|
} // end namespace vtkm::benchmarking
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
vtkm::cont::InitLogging(argc, argv);
|
vtkm::cont::InitLogging(argc, argv);
|
||||||
|
Loading…
Reference in New Issue
Block a user