1、vtkLight常的方法有:
SetColor() — 設置光照的顏色,以RGB的形式指定顏色。
SetPosition() — 設置光照位置。
SetFocalPoint() — 設置光照焦點。
SetIntensity() — 設置光照的強度。
SetSwitch() / SwitchOn()/ SwitchOff()— 打開或關閉對應的光照。
在基礎概念代碼中加入:
1 vtkSmartPointer<vtkLight> myLight = vtkSmartPointer<vtkLight>::New(); 2 myLight->SetColor(0, 1, 0); 3 myLight->SetPosition(0, 0, 1); 4 myLight->SetFocalPoint(renderer->GetActiveCamera()->GetFocalPoint()); 5 renderer->AddLight(myLight); //將光線照加入到渲染場景中
6
7 vtkSmartPointer<vtkLight> myLight2 = vtkSmartPointer<vtkLight>::New(); 8 myLight2->SetColor(0, 0, 1); //設置光照顏色
9 myLight2->SetPosition(0, 0, -1); //設置光照位置
10 myLight2->SetFocalPoint(renderer->GetActiveCamera()->GetFocalPoint()); 11 renderer->AddLight(myLight2);
為什么這個運行出來的結果是放大狀態,通過縮小才能看見這個圓柱體!
2、確定相機實際方向(相機的視圖)的有三個因素:相機位置、相機焦點和朝上方向。
vtkCamera定義了兩種投影方法,一種是正交投影(OrthographicProjection),也叫平行投影(Parallel Projection),即進入相機的光線與投影方向是平行的。另一種是透視投影(PerspectiveProjection),即所有的光線相交於一點。
l 視角:透視投影時需要指定相機的視角(View Angle),默認的視角大小為30º,可以用方法vtkCamera::SetViewAngle()設置。


控制相機運動的方法:vtkCamera::Dolly(),vtkCamera::Roll(),vtkCamera::Azimuth(),vtkCamera::Yaw(),
vtkCamera::Elevation(),vtkCamera::Pitch(),vtkCamera::Zoom()。
3、顏色
VTK采用RGB和HSV兩種顏色系統來描述顏色。vtkProperty::SetColor(r,g, b)采用的就是RGB顏色系統設置顏色屬性值。
HSV顏色系統同樣也是由三個分量來決定顏色,分別是:色相(Hue),是顏色的基本屬性,就是我們平常所說的顏色名稱,如紅色、黃色等;飽和度(Saturation),是指顏色的純度,其值越高則越純;值(Value,也就是強度Intensity或者亮度Bright),值為0通常表示的是黑色,值為1表示的是最亮的顏色。這三個分量的取值范圍也是0到1。類vtkLookupTable提供了HSV顏色系統設置的方法。

與顏色設置相關的VTK類除了vtkProperty,vtkLookupTable之外,還有vtkColorTransferFunction。vtkLookupTable和vtkColorTransferFunction都派生自vtkScalarsToColors。
4、坐標系統及空間變換
計算機圖形學里常用的坐標系統主要有四種,分別是:Model坐標系統、World坐標系統、View坐標系統和Display坐標系統,它們之間的關系如圖3.9所示。

在VTK里,Model坐標系統用得比較少,其他三種坐標系統經常使用。它們之間的變換則是由類vtkCoordinate進行管理的。
l DISPLAY — X、Y軸的坐標取值為渲染窗口的像素值。坐標原點位於渲染窗口的左下角,這個對於VTK里所有的二維坐標系統都是一樣的,且VTK里的坐標系統都是采用右手坐標系。
l NORMALIZEDDISPLAY — X、Y軸坐標取值范圍為[0, 1],跟DISPLAY一樣,也是定義在渲染窗口里的。
l VIEWPORT— X、Y的坐標值定義在視口或者渲染器(Renderer)里。
l NORMALIZEDVIEWPORT — X、Y坐標值定義在視口或渲染器里,取值范圍為[0, 1]。
l VIEW— X、Y、Z坐標值定義在相機所在的坐標系統里,取值范圍為[-1, 1],Z值表示深度信息。
l WORLD — X、Y、Z坐標值定義在世界坐標系統,參考圖3.9。
l USERDEFINED— 用戶自定義坐標系統。
vtkCoordinate類提供的設置以上坐標系統的方法是:
SetCoordinateSystemToDisplay ()
SetCoordinateSystemToNormalizedDisplay ()
SetCoordinateSystemToViewport ()
SetCoordinateSystemToNormalizedViewport ()
SetCoordinateSystemToView ()
SetCoordinateSystemToWorld ()
三維到二維投影的方法包括:透視投影和正交投影兩種方法。
