元記事:
Dev-Source-GameEngine-2.49-Fisheye Dome Camera - BlenderWiki
リアルタイムドームレンダリング
Blender ゲームエンジンの Dome モード
Dome Mode in Blender Game Engine
これは、アーティストたちがインタラクティブプロジェクトで没入感のあるドーム環境を表現できる機能です。拡張性のあるツールにするため、私たちは完全なドーム、前と横を省略したドーム、プラネタリウム、球面鏡を使用したドームをサポートしています。
このサポートは Blender 2.49で追加されました。Paul Bourke氏が開発されたマルチパステクスチャを利用するアルゴリズムを使用しています。簡単にいえば、そのシーンを4回レンダリングし、正方投影(Ortho)Camera から見たとき、魚眼投影されるような結果になるよう、特別にデザインされた Mesh 上にそれらの画像を置いています。
注意:プロジェクタに最大限に表示させたい時は、Blender をフルスクリーンモードで使用するのを忘れないで下さい。
Blender をコマンドラインで実行する場合は、-W スイッチをつけて下さい。また、Blender のトップヘッダを Blender から取り除き、すべてのウィンドウ(3Dウィンドウ、ボタンウィンドウなど…)を一つに融合(Join)して下さい。最大化([Ctrl]+[↑])だけした場合は、スクリーン全体を使用できません(トップヘッダのメニューの約20ピクセル分だけ取られてしまう)。
* Dalai Felinto は
SAT - Society for Arts and Technology からの提供を受けており、
SAT Metalab のイマージョンリサーチプログラムの一環です
GUI オプション
背景カラー(RGB) - 背景に使用される色。濃い色で、キャリブレーション・チューニングが簡単になります。
Angle (90 〜 250) - Fisheye モード(1)でのみ動作します。
Mode - 他のモードを実装するために拡張されました。
現時点では、1 (fisheye)、2 (enviroment map)、3(spherical panoramic)
Tilt - ドームを傾けます。カメラを水平軸で回転します。
Tesselation - 4 がデフォルトです。Mesh のテセレーションレベルです。
Resolution (1.0でフル解像度) - レンダーバッファのサイズと相対的な値です。低くするとスピードが向上します。
Warp Data - Warp Mesh データファイルを指定します(後述)。
ドームモード
1. Full Dome モード
[wiki]-90°から250°までの正方投影魚眼ビュー
An Orthogonal Fisheye view from 90o to 250o degrees.
-90°から180°まで4つのレンダリング画像を使用しています。
-181°から250°までは5つのレンダリング画像を使用しています。[/wiki]
2. Front-truncated(前方切り取り)Dome モード
[wiki]-切り取りドーム(truncated dome)用に設計されており、このモードは魚眼画像の一番上と左右がウィンドウの端に達しています。
-視野は90°から250°までです。
-90°から180°まで4つのレンダリング画像を使用しています。
-181°から250°までは5つのレンダリング画像を使用しています。[/wiki]
3. Rear-truncated(後方切り取り) Dome モード
[wiki]-切り取りドーム(truncated dome)用に設計されており、このモードは魚眼画像の一番下と左右がウィンドウの端に達しています。
-視野は90°から250°までです。
-90°から180°まで4つのレンダリング画像を使用しています。
-181°から250°までは5つのレンダリング画像を使用しています。[/wiki]
4. Environment Map(環境マップ)モード
[wiki]-環境マップモードです。キューブマップ用にあらかじめ生成された動画用に使用できます。
-6つのレンダリング画像を使用しています。
-Blender 内部レンダラの EnvMap ファイルフォーマットに従った順になっています。
--上段:右、後、左
--下段:下、上、前[/wiki]
5. 360°Spherical Panoramic(球状パノラマ)
[wiki]-完全に球状なパノラマモードです。
-6つのカメラを使用しています。
-下と上は精度を高めるため、Definition(訳注:Tesselationのこと?)を5以上で始めています。[/wiki]
Warp Data Mesh
投影環境の多くは、標準の平面スクリーンディスプレイへの透視投影のような単純な画像では使用できません。
サンプルには円筒形のディスプレイ用に形状を修正したものや、プラネタリウムドームもしくは VR 用のアップライトドームなどに投影するための新しい方法がいくつか含まれています。
Paul Bourke氏の原理についてのページ画像を生成するには、特別なファイルフォーマットを使用します。
ファイルテンプレートmode
width height
n0_x n0_y n0_u n0_v n0_i
n1_x n1_y n1_u n1_v n1_i
n2_x n1_y n2_u n2_v n2_i
n3_x n3_y n3_u n3_v n3_i
(...)
最初の行は、その Mesh に適用をサポートしている画像タイプです。
2 = fisheye、1 = radial次の行は Mesh の大きさをピクセルで表記します。
残りの行は Mesh のノードです。
ノードのそれぞれの行は、
x y u v i からなります。
(x,y) は正規化されたスクリーン座標
(u,v) テクスチャ座標
i は乗算される強度の要素です。
x 値はvaries from -screen aspect to screen aspect
y 値は -1 から 1
u と v 値は 0 から 1
i の範囲は 0 から 1、負の値の場合、その Mesh ノードは描画しません。
Warp Mesh データファイルとして選択できるようにするには、ファイルを作成し、Text エディタに追加する必要があります。
サンプルファイル:球状ミラードーム 4x3、
切り取りドーム 4x3重要な注意:ビューポートはキャンバスの横幅をキャンバスの高さで割った比率を使用して計算されています。そのため、違うスクリーンサイズでは別の Warp Mesh ファイルが必要になります。また、プロジェクタの正しい比率を得るためには、Blender をフルスクリーンモードで使用する必要があります。
元記事:
Dev-Source-GameEngine-2.49-Fisheye Dome Camera - BlenderWiki24 May 2009, at 01:49版を元にしています。