当前设置:
渲染窗口的图层:
gridRenderer->SetLayer(0);
geoRenderer->SetLayer(1);
RenderWindow()->SetNumberOfLayers(2);
RenderWindow()->AddRenderer(geoRenderer);
RenderWindow()->AddRenderer(geoRenderer);
gridRenderer->SetActiveCamera(geoRenderer->GetActiveCamera());
这成功地使我在背景中具有网格,在前景中具有几何体。
问题:
类似问题:
vtkRenderer::ResetCameraClippingRange()
,但无法获取裁剪平面以正确形成更新:
ComputeVisiblePropBounds
调用以及禁用像这样的
vtkInteractorStyle::AutoAdjustCameraClippingRange
:double geoCB[6];
double gridCB[6];
geoRenderer->ComputeVisiblePropBounds(geoCB);
gridRenderer->ComputeVisiblePropBounds(gridCB);
double finalCB[6];
for (int i = 0; i < 6; i++) {
if (i % 2 == 0) {
// Even Index is Min
if (geoCB[i] < gridCB[i]) {
finalCB[i] = geoCB[i];
} else {
finalCB[i] = gridCB[i];
}
} else {
// Odd Index is Max
if (geoCB[i] > gridCB[i]) {
finalCB[i] = geoCB[i];
} else {
finalCB[i] = gridCB[i];
}
}
}
geoRenderer->ResetCameraClippingRange(finalCB);
不幸的是,这仍然无法正常工作...
最佳答案
也许您可以使用以下方法将裁剪范围明确设置为较大的值:vtkCamera.SetClippingRange(x0,x1)
关于c++ - 带有2个渲染器的VTK摄像机剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59873920/