FineKernelToolKit 4.2.13
|
一般透視投影を制御するクラス [詳解]
#include <CLI/FK_CLI/include/Projection_CLI.h>
公開メンバ関数 | |
fk_Frustum (double left, double right, double bottom, double top, double near, double far) | |
コンストラクタ1 | |
fk_Frustum () | |
コンストラクタ2 | |
~fk_Frustum () | |
デストラクタ | |
!fk_Frustum () | |
ファイナライザ | |
void | SetAll (double left, double right, double bottom, double top, double near, double far) |
一括設定メソッド | |
プロパティ | |
double | Left [get, set] |
視錐台左側符号付き距離プロパティ | |
double | Right [get, set] |
視錐台右側符号付き距離プロパティ | |
double | Bottom [get, set] |
視錐台下側符号付き距離プロパティ | |
double | Top [get, set] |
視錐台上側符号付き距離プロパティ | |
double | Near [get, set] |
クリッピング近距離面距離プロパティ | |
double | Far [get, set] |
クリッピング遠距離面距離プロパティ | |
![]() | |
fk_ProjectMode | Mode [get] |
投影法参照プロパティ | |
一般透視投影を制御するクラス
このクラスは、一般透視投影法の設定を制御する機能を提供します。 本クラスで一般透視投影に対する様々な値を設定し、 fk_DisplayLink::Projection プロパティを用いてシーンに設定することで、 シーン内の投影設定を行うことができます。
透視投影の特徴は、近くの物体は大きく、遠くの物体は小さく表示するという、 いわゆる遠近感を持つことです。 この投影法は、人間の目やカメラの持つ感覚と類似しているため、 アニメーションやビジュアルシミュレーションなどのような リアルさが必要な場面でよく利用されています。 しかし、透視投影においては 3 次元空間中において平行な面や線が、 表示された場合に平行にはならないという現象がおきるため、 設計などには向いていません。 そのような場合は、 fk_Ortho による平行投影を用いた方がよいでしょう。
透視投影を用いる場合、本クラスによる「一般透視投影」と、 fk_Perspective クラスによる「対称透視投影」の2種類の投影法が存在します。 対称透視投影は、カメラ目線の先が描画画面の中心となることを前提とした投影であり、 通常はこちらを用いた方が簡便です。 カメラ目線が画面の中心にないような投影を作成する場合は、 本クラスによる一般透視投影を用いる必要があります。
設定は、6種類の値によって行います。 最初の4つは、「視錐台」と呼ばれる描画対称領域の近接面における、 面とカメラベクトルの交点と各辺との距離となります。 あとの2つは「クリップ距離」であり、この2つの距離の間にある物体が表示されます。 通常は、近い方を十分小さな値、遠い方を大きな値とすることで、 本来見えるはずの物体が全て見えるようにしておきます。
FK_CLI::fk_Frustum::fk_Frustum | ( | double | left, |
double | right, | ||
double | bottom, | ||
double | top, | ||
double | near, | ||
double | far | ||
) |
コンストラクタ1
コンストラクタで、初期値を設定することが可能です。
[in] | left | 視錐台の左側符号付き距離 |
[in] | right | 視錐台の右側符号付き距離 |
[in] | bottom | 視錐台の下側符号付き距離 |
[in] | top | 視錐台の上側符号付き距離 |
[in] | near | クリッピング近距離面への距離 |
[in] | far | クリッピング遠距離面への距離 |
FK_CLI::fk_Frustum::fk_Frustum | ( | ) |
コンストラクタ2
fk_Frustum::fk_Frustum(double, double, double, double, double, double) にて (-10, 10, -10, 10, 1, 6000) と設定した場合の初期値が生成されます。
FK_CLI::fk_Frustum::~fk_Frustum | ( | ) |
デストラクタ
FK_CLI::fk_Frustum::!fk_Frustum | ( | ) |
ファイナライザ
void FK_CLI::fk_Frustum::SetAll | ( | double | left, |
double | right, | ||
double | bottom, | ||
double | top, | ||
double | near, | ||
double | far | ||
) |
一括設定メソッド
視錐台の全ての値を一括して設定します。
[in] | left | 視錐台の左側符号付き距離 |
[in] | right | 視錐台の右側符号付き距離 |
[in] | bottom | 視錐台の下側符号付き距離 |
[in] | top | 視錐台の上側符号付き距離 |
[in] | near | クリッピング近距離面への距離 |
[in] | far | クリッピング遠距離面への距離 |
|
getset |
視錐台左側符号付き距離プロパティ
視錐台近接面への左側符号付き距離の設定や参照を行います。
|
getset |
視錐台右側符号付き距離プロパティ
視錐台近接面への右側符号付き距離の設定や参照を行います。
|
getset |
視錐台下側符号付き距離プロパティ
視錐台近接面への下側符号付き距離の設定や参照を行います。
|
getset |
視錐台上側符号付き距離プロパティ
視錐台近接面への上側符号付き距離の設定や参照を行います。
|
getset |
クリッピング近距離面距離プロパティ
クリッピング近距離面への距離の設定や参照を行います。
|
getset |
クリッピング遠距離面距離プロパティ
クリッピング遠距離面への距離の設定や参照を行います。