レイキャスティング計算機
疑似3D(レイキャスティング)で、壁までの距離から画面に描く壁の高さと、描画の開始・終了位置を計算します。
画面に描く壁の高さ—
計算式
- 補正後の距離 = 光線に沿った距離 × cos(中心からの角度)(魚眼の歪みを補正)
- 壁の高さ(px) = 壁の高さ × 投影面までの距離 ÷ 補正後の距離
- 投影面までの距離 = (画面の幅 ÷ 2) ÷ tan(水平FOV ÷ 2)
使い方のヒント
距離を補正しないと、画面の端ほど壁が曲がって見える魚眼効果が出ます。光線の角度は、画面の中心の列で0°、両端でFOVの半分(±33°前後)になります。
計算例
初期値(画面の幅 800 px、画面の高さ 600 px、水平FOV 66 °、光線に沿った壁までの距離 4 マス、視線の中心からの角度 20 °、壁の高さ 1 マス)のままで計算すると、画面に描く壁の高さは 163.9 px、魚眼補正後の距離は 3.7588 マス、描画の開始Yは 218.1 px、描画の終了Yは 381.9 px、光線1本あたりの角度は 0.0825 ° になります。まずはこの値を基準に、自分の数値へ置き換えて確認してください。
たとえば「画面の幅」だけを 1,600 px に変えると、画面に描く壁の高さは 327.7 px、魚眼補正後の距離は 3.7588 マス、描画の開始Yは 136.1 px、描画の終了Yは 463.9 px、光線1本あたりの角度は 0.0413 ° になります。結果がどの入力にどれだけ敏感かを見るときは、入力を1つずつ動かして比べるとわかりやすくなります。
関連ツール
よくある質問
レイキャスティング計算機では何がわかりますか?
疑似3D(レイキャスティング)で、壁までの距離から画面に描く壁の高さと、描画の開始・終了位置を計算します。
何を入力すればいいですか?
次の項目を入力します: 画面の幅、画面の高さ、水平FOV、光線に沿った壁までの距離、視線の中心からの角度、壁の高さ。内容を変えると、結果もそれに合わせて変わります。
結果にはどんな項目が表示されますか?
「画面に描く壁の高さ」「魚眼補正後の距離」「描画の開始Y」「描画の終了Y」「光線1本あたりの角度」などが表示されます。
どんな計算式を使っていますか?
ページ内の「計算式」にまとめています。たとえば「補正後の距離 = 光線に沿った距離 × cos(中心からの角度)(魚眼の歪みを補正)」のような式です。
結果はどのくらい正確ですか?
計算式はゲームでよく使われるものです。実際の作品では丸め方(切り捨て・四捨五入)や上限値が違うことがあるので、最後はテストプレイで確認してください。
同じカテゴリ(当たり判定)の他のツールはありますか?
はい。AABB当たり判定計算機、円・円当たり判定計算機、円・矩形当たり判定計算機、当たり判定可視化などがあります。
スマホでの利用、入力内容の扱い、結果のコピー、印刷など、全ツールに共通する質問は共通のよくある質問にまとめています。