クラス fk_Perspective

対称透視投影法を制御するクラス [詳細]

fk_Perspectiveに対する継承グラフ
Inheritance graph
[凡例]
fk_Perspectiveのコラボレーション図
Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

 fk_Perspective (double fovy=2.0 *FK_PI/9.0, double near=1.0, double far=6000.0)
 コンストラクタ
 ~fk_Perspective ()
 デストラクタ
 fk_Perspective (const fk_Perspective &)
 コピーコンストラクタ
fk_Perspectiveoperator= (const fk_Perspective &)
 単純代入演算子
void setFovy (double fovy)
 視野角設定関数
void setNear (double near)
 クリッピング近距離面距離設定関数
void setFar (double far)
 クリッピング遠距離面距離設定関数
void setAll (double fovy, double near, double far)
 一括設定関数
double getFovy (void) const
 視野角参照関数
double getNear (void) const
 クリッピング近距離面距離参照関数
double getFar (void) const
 クリッピング遠距離面距離参照関数

説明

対称透視投影法を制御するクラス

このクラスは、対称透視投影法の設定を制御する機能を提供します。 本クラスで対称透視投影に対する様々な値を設定し、 fk_DisplayLink::setProjection() 関数を用いてシーンに設定することで、 シーン内の投影設定を行うことができます。

透視投影の特徴は、近くの物体は大きく、遠くの物体は小さく表示するという、 いわゆる遠近感を持つことです。 この投影法は、人間の目やカメラの持つ感覚と類似しているため、 アニメーションやビジュアルシミュレーションなどのような リアルさが必要な場面でよく利用されています。 しかし、透視投影においては 3 次元空間中において平行な面や線が、 表示された場合に平行にはならないという現象がおきるため、 設計などには向いていません。 そのような場合は、 fk_Ortho による平行投影を用いた方がよいでしょう。

透視投影を用いる場合、本クラスによる「対称透視投影」と、 fk_Frustum クラスによる「一般透視投影」の2種類の投影法が存在します。 対称透視投影は、カメラ目線の先が描画画面の中心となることを前提とした投影であり、 通常はこちらを用いた方が簡便です。 カメラ目線が画面の中心にないような投影を作成する場合は、 fk_Frustum による一般透視投影を用いる必要があります。

設定は、3種類の値によって行います。 1つは「視野角」で、 これは画面最上部に向いたベクトルと最下部に向いたベクトルの角度です。 あとの2つは「クリップ距離」であり、この2つの距離の間にある物体が表示されます。 通常は、近い方を十分小さな値、遠い方を大きな値とすることで、 本来見えるはずの物体が全て見えるようにしておきます。 以下がその概念図です。

Perspective.png

透視投影法

参照:
fk_Frustum, fk_Ortho, fk_DisplayLink

コンストラクタとデストラクタ

fk_Perspective::fk_Perspective ( double  fovy = 2.0 *FK_PI/9.0,
double  near = 1.0,
double  far = 6000.0 
)

コンストラクタ

コンストラクタで、初期値を設定することが可能です。

引数:
[in] fovy 視野角を設定します。単位は弧度法(ラジアン)です。
[in] near クリッピング近距離面への距離
[in] far クリッピング遠距離面への距離
fk_Perspective::~fk_Perspective (  ) 

デストラクタ

fk_Perspective::fk_Perspective ( const fk_Perspective  ) 

コピーコンストラクタ


関数

fk_Perspective& fk_Perspective::operator= ( const fk_Perspective  ) 

単純代入演算子

void fk_Perspective::setFovy ( double  fovy  ) 

視野角設定関数

視野角を設定します。

引数:
[in] fovy 視野角。単位は弧度法(ラジアン)です。
void fk_Perspective::setNear ( double  near  ) 

クリッピング近距離面距離設定関数

クリッピング近距離面への距離を設定します。

引数:
[in] near 面への距離
void fk_Perspective::setFar ( double  far  ) 

クリッピング遠距離面距離設定関数

クリッピング遠距離面への距離を設定します。

引数:
[in] far 面への距離
void fk_Perspective::setAll ( double  fovy,
double  near,
double  far 
)

一括設定関数

視野角、クリッピング面距離を一括して設定します。

引数:
[in] fovy 視野角。単位は弧度法(ラジアン)です。
[in] near クリッピング近距離面への距離
[in] far クリッピング遠距離面への距離
double fk_Perspective::getFovy ( void   )  const

視野角参照関数

視野角を参照します。

戻り値:
視野角。単位は弧度法(ラジアン)です。
double fk_Perspective::getNear ( void   )  const

クリッピング近距離面距離参照関数

クリッピング近距離面への距離を参照します。

戻り値:
距離
double fk_Perspective::getFar ( void   )  const

クリッピング遠距離面距離参照関数

クリッピング遠距離面への距離を参照します。

戻り値:
距離

FineKernelToolKitに対してSat Sep 26 20:35:33 2009に生成されました。  doxygen 1.6.1