vtkCamera用于控制视图不同的显示效果,比如旋转视图、缩放以及透视效果
1.位置和方向:
- vtkCamera 允许设置相机的具体位置、目标点(即相机朝向的中心)以及上方向。这三个参数共同决定了相机的视角。
- 使用 SetPosition() 方法设置相机位置。
- 使用 SetFocalPoint() 设置相机的目标点。
- 使用 SetViewUp() 方法设置相机的上方向(通常是 Y 轴),即最终渲染图像中,垂直向上的方向指向哪里
2.视野和剪切平面:
- 通过设置视角(视野)来控制相机所看到的场景范围。使用 SetViewAngle() 方法来设定视角。
- 定义近剪切平面和远剪切平面,这两个平面决定了渲染时哪些物体在视野内。使用 SetClippingRange() 方法设置这两个剪切平面。
3.投影模式:
- vtkCamera 支持两种投影模式:透视投影和正交投影。通过 SetParallelProjection() 方法可以设置是否启用正交投影。
4.控制视图的更新:
- vtkRender的ResetCamera方法让物体始终以最佳大小完整地呈现在窗口中
- 每当相机属性改变时,可以调用 GetRenderWindow()->Render() 来更新渲染窗口,确保视图按照新的相机设置进行渲染。
相关概念对照:
- Position:相机位置(眼睛在哪里)
- FocalPoint:焦点(看向哪里)
- ViewUp:头顶位置
cpp
vtkCamera* cam = m_renderer->GetActiveCamera();
cam->SetViewUp(0,0,1);//这是一个指向 Z 轴正方向的单位向量(X=0, Y=0, Z=1)
m_renderer->ResetCamera();
m_renderWindow->Render()