写在前面:
这篇博客简要根据书本内容简要介绍一些VTK中要用到的坐标系统与空间变换。这一部分与计算机图形学结合更加紧密。想起之前也“被迫”研究过一段时间的计算机图形学中三维显示部分,现在简单学一学,提示一下,也挺好。
坐标系统:
书中说计算机图形学中,但我觉得用VTK中更合适,VTK中常用的坐标系统又4种:Model坐标系统、World坐标系统、View坐标系统和Display坐标系统。除此之外,有两种表示坐标点的方法:1.屏幕像素值为单位;2.归一化坐标值[-1,1]。
- Model坐标系统:定义模型时的坐标系统,一般为局部的笛卡尔坐标系。
- World坐标系统:Actor、相机、光照所在的三维空间坐标系。Actor类的一个功能就是通过放缩、旋转、平移等方法将Model坐标系转换到World坐标系。每一个模型可以定义一个自己的Model坐标系。但World坐标系只有一个。
- View坐标系统:相机所看见的坐标系统。X、Y、Z轴取值均为[-1,1]。X、Y表示像素平面上的位置,Z表示到降级的距离。World坐标系通过相机转变为View坐标系。
- Display坐标系统:实际电脑显示屏幕的坐标系统。屏幕上显示的不同窗口的大小会影响View坐标系的坐标轴[-1,1]到Diaplay坐标系的映射(对应关系)。一个显示屏幕可以显示多个不同的渲染场景。vtk5.10.1可以利用vtkRenderer:SetViewport()来设置不同的视口(取值为[0,1])。
renderer1->SetV