Код: Выделить всё
string mesh_filename = "mesh.ply";
vtkSmartPointer mesh_reader = read_mesh_ply(mesh_filename);
vtkSmartPointer mapper = vtkSmartPointer::New();
mapper->SetInputConnection(mesh_reader->GetOutputPort());
vtkSmartPointer actor = vtkSmartPointer::New();
actor->SetMapper(mapper);
vtkSmartPointer renderer = vtkSmartPointer::New();
vtkSmartPointer renderWindow = vtkSmartPointer::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetSize(640, 480);
vtkSmartPointer renderWindowInteractor = vtkSmartPointer::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
//Add the actors to the scene
renderer->AddActor(actor);
renderer->SetBackground(1, 1, 1);
Код: Выделить всё
vtkSmartPointer camera = vtkSmartPointer::New();
renderer->SetActiveCamera(camera);
camera->SetPosition(0,0,650);
//Render and interact
renderWindow->Render();
double b = renderer->GetZ(320, 240);
< /code>
В этом примере это дает 0,999995. Поскольку значения находятся между [0,1], я не знаю, как это интерпретировать, так как вы видите, что я установил камеру на 650 единиц на оси Z, поэтому я предполагаю, что Z-расстояние в этом пикселе (который находится на объекте в рендерированном RGB) должно быть близко к 650.
Подробнее здесь: https://stackoverflow.com/questions/176 ... each-pixel
Мобильная версия