射影変換ぽく似せる

アバター
もるも
記事: 54
登録日時: 8年前
連絡を取る:

射影変換ぽく似せる

投稿記事 by もるも » 2年前

射影変換が理解できないので悪あがき中。
3D風ダンジョンは一点透視線の傾きが1でごまかせそうなので、
ジワジワと大きく変形してみることにした。

変形自体は良い感じになったが、ピクセル参照がおかしい。始点が変だ、ぐぬぬ・・・
補間ももうちょっと頑張ろうかなぁ(´-∀-`;)疲れた
スクリーンショット (288).png
スクリーンショット (288).png (31.83 KiB) 閲覧数: 70 回

アバター
usao
記事: 1887
登録日時: 11年前

Re: 射影変換ぽく似せる

投稿記事 by usao » 2年前

> 射影変換

そんなに難しく考える必要ないです.

視点(カメラ)から見た方向と像の位置の関係性

(カメラの真正面にあるものは画像のど真ん中に写る
 右斜め前の方向にあるものは画像の真ん中よりも右側に写る
 的な)

…を具体的に数式で表す形で決めてしまえば完了です.

ふつーはひずみの無いピンホールカメラモデルで十分なので,
r = f * tanθ
でOK.

θは,カメラから見た対象の方向で,カメラ真正面を0度とした値.
例えば「右斜め前45度」みたいな値.
rは,その対象が画像のど真ん中からどれだけ離れた位置に写るか,という値(「像高」とか言う).

fは両者のスケールを決める単なる係数(調整用パラメータ)です.fの値を変えると視野範囲(画角)が変わる感じ.

カメラ真正面方向を軸とした回転方向の角度φについては,3次元空間での方向をそのまま画像上での方向に使えばOK.
すなわち,カメラから見た方向(θ,φ)にある対象が画像上で写る場所(x,y)というのは,
画像の中央座標を(Cx, Cy) とすれば,
x = r * cosφ
y = r * sinφ
という形.

大昔に縦線で迷路の壁を描画したときは,これをそのまま素直にやったっす.

アバター
usao
記事: 1887
登録日時: 11年前

Re: 射影変換ぽく似せる

投稿記事 by usao » 2年前

お,CxとCyを式に書くのわすれた^^

> x = r * cosφ
> y = r * sinφ

x = r * cosφ + Cx
y = r * sinφ + Cy

です.
(Cx, Cy) は正確に言えば「画像のど真ん中」じゃなくて,「θ=0方向のものが写る位置」.
(「光軸点」とか言う)

アバター
usao
記事: 1887
登録日時: 11年前

Re: 射影変換ぽく似せる

投稿記事 by usao » 2年前

式中で三角関数になってるところは,
対象のカメラ座標系での3次元位置(X,Y,Z)の要素から計算できる値なので,
実際に実装する際には sin とか tan とか書かないことも多いです.
書き下して纏めてみれば,x方向,y方向 がそれぞれ単純に X/Z , Y/Z を用いただけの形になります.

アバター
もるも
記事: 54
登録日時: 8年前
連絡を取る:

Re: 射影変換ぽく似せる

投稿記事 by もるも » 2年前

理解するのに時間がかかりそうです(´-∀-`;)

アバター
usao
記事: 1887
登録日時: 11年前

Re: 射影変換ぽく似せる

投稿記事 by usao » 2年前

まぁ,まとめると
「遠くに行くほど小さく見えるよ」ってのが

> X/Z , Y/Z

だというだけの話ですな^^

アバター
もるも
記事: 54
登録日時: 8年前
連絡を取る:

Re: 射影変換ぽく似せる

投稿記事 by もるも » 2年前

これを使えばぬるぬる進む3Dダンジョンの作成が可能になるけども、
まずは、なんちゃって3Dダンジョンが作りたいので、
「正方形」から「台形」に変形をもうちょっと頑張ってみます。

3Dゲームの描画についての書籍を開くと行列が出てきてそっ閉じ状態なので、
とても参考になりました^^

アバター
もるも
記事: 54
登録日時: 8年前
連絡を取る:

Re: 射影変換ぽく似せる

投稿記事 by もるも » 2年前

こんなもんでいいかな。
スクリーンショット (289).png
スクリーンショット (289).png (34.2 KiB) 閲覧数: 1163 回

アバター
usao
記事: 1887
登録日時: 11年前

Re: 射影変換ぽく似せる

投稿記事 by usao » 2年前

おおー,
ザ・テクスチャマッピング! って感じですね.

しかしこう,ブロックでできてる壁を見ると,

せっせとブロック積み上げて迷路を築いた誰かがいたんだろうなぁ,
「こうやって頑張って行き止まりまで綺麗にブロック積んだところで,どうせお客さんは遠目から見て引き返すからここまで誰も来ねぇんだろうなぁ」
とか何とか思いつつも苦行に勤しんだのだろうか…

とか余計なことを想像してしまう.

アバター
もるも
記事: 54
登録日時: 8年前
連絡を取る:

Re: 射影変換ぽく似せる

投稿記事 by もるも » 2年前

宝箱置いて罠も仕掛けるからー、
壁に分かりづらいスイッチ付けるからーー、
無駄じゃないよって石積む人に説得します(笑)

あんまり想像すると、
おまえこの迷路の設計知ってるから始末する。ってなるからNG。
(何かの漫画にあったなぁ)