カメラ

\includegraphics[width=.4\hsize ]{fig/grcamera.eps}

(a) Perspective frustum

\includegraphics[width=.4\hsize ]{fig/grcamera_front.eps}

\includegraphics[width=.4\hsize ]{fig/grcamera_top.eps}

(b) Front view of screen

(c) Top view of screen

Fig.  : Camera parameters

カメラは描画における視点の設定と投影変換を管理します. はじめにカメラのディスクリプタを見ていきます.

GRCameraDesc

Vec2f

size

スクリーンサイズ

Vec2f

center

スクリーン中心座標

float

front

前方クリップ面

float

back

後方クリップ面

各変数の定義はFig. #.#.#(b),(c)を参照してください. 設定を変更するには以下のようにします.

    GRCameraDesc desc;
    grScene->GetCamera()->GetDesc(&desc);
    desc.front = 3.0f;
    grScene->SetCamera(desc);

上ではGetDesc関数で既存の設定をディスクリプタにコピーし,frontを変更してから SetCamera関数で再設定しています.

一方,GRCameraの関数は以下の通りです.

GRCameraIf

GRFrameIf*

GetFrame()

 

void

SetFrame(GRFrameIf*)

 

GetFrameSetFrame関数はカメラフレームを取得/設定します. Fig. #.#.#(a)のように,カメラフレームはカメラの視点を定義します.