「逆遠近感を利用した錯視立体図形のモデリング」

【概要】
「逆遠近感を利用した錯視立体図形のモデリング」の提案手法を実装したアプリケーションの簡易マニュアルです。

【注意事項】
・このプログラムを用いて問題が生じても、開発者は責任を負いかねます。
・研究目的で開発されたプログラムです。商用利用はご遠慮ください。

【起動方法】
"proj_Reverspective.exe"を実行します。

※dllファイル（glut32.dll, glew32.dll, DevIL.dll, ILU.dll, ILUT.dll）は実行ファイルと同じ階層に保存してください。
※ファイル入出力用に「data」という名前のフォルダを実行ファイルと同じ階層に作成してください。

【基本的な操作手順】
(1) 入力データの読み込み
　(1-1) [Open Mesh]を押して入力モデルを読み込みます。
　(1-2) [Open Texture]を押してテクスチャを読み込みます。

※入力モデルは適切なスケールに調整してから読み込んでください。一辺10.0以内が目安です。
※OBJファイルフォーマットの頂点座標(v)、テクスチャ座標(vt)、法線ベクトル(vn)、面(f)が対応しています。
※変形できるのは三角形ポリゴンだけで構成されたモデルのみです。

(2) 基準視点の登録
　(2-1) カメラを操作して基準視点を選びます。
　(2-2) [Set Up a Camera]を押して、現在の視点を基準視点として設定します。

※デフォルトの基準視点として、起動時のカメラ位置が設定されています。

(3) 変形させる面の選択
　(3-1) [Lasso]を選択して投げ縄モードに切り替えます。
　(3-2) パーツ番号を指定します。
　(3-3) 逆遠近錯視形状に変形させる面をマウスドラッグで囲んで選択します。

※何も選択しなかった場合、モデル全体が選択されたとみなされます。
※パーツ3まで指定できます。
※パーツ指定を取り消したい場合、パーツ0を指定してください。

(4) 出力データの保存
　(4-1) [Preview]を押すと逆遠近錯視形状が計算されます。
　(4-2) 削除される面が半透明、変形させる面が緑（青/黄）、つなぎ目領域が赤で表示されます。
　(4-3) Shiftキーを押しながら面をクリックすると削除される面の追加/解除ができます。
　(4-4) [Output Model]を押して出力形状を確認します。
　(4-5) [Export]を押して出力モデルを保存します。

【視点操作】※カメラモード時
左ボタンドラッグ　　　…回転
右ボタンドラッグ　　　…移動（上下左右）
中ボタンドラッグ　　　…移動（前後）

【操作パネル詳細】
□File
[Open Mesh]　　　　　 …入力モデルを選択（OBJ形式）
[Open Texture]　　　　…テクスチャを選択（BMP形式）
[Export]　　　　　　　…逆遠近錯視モデルとスクリーンショットを出力（export.objという名前で自動保存される）

□View
[Input Model]　　　　 …入力モデルを表示
[Output Model]　　　　…出力予定モデルを表示
[Back Face]　　　　　 …ポリゴンの裏面を表示
[Wireframe]　　　　　 …ワイヤフレーム表示

□Edit
[Parts]　　　　　　　 …パーツ番号を指定
[Camera]　　　　　　　…カメラモード
[Lasso]　　　　　　　 …投げ縄モード
[Push]　　　　　　　　…基準となる奥行き値を奥へ移動（パーツごとに設定）
[Back]　　　　　　　　…基準となる奥行き値を手前へ移動（パーツごとに設定）
[Compression]　　　　 …奥行きのスケーリング係数を指定（パーツごとに設定）
[Set Up a Camera]　　 …現在の視点を基準視点として設定
[Preview]　　　　　　 …逆遠近錯視形状を計算し、削除される面をプレビュー

□その他
[Trianglulate Faces]　…四角形ポリゴンを三角形ポリゴンに変換して保存（remesh.objという名前で自動保存される）
[Quit]　　　　　　　　…アプリケーションを終了
