「レイキャスト」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
13行目: 13行目:
 
その両者の欠点を埋めるべく、現在位置から遠ざかるにつれ間隔を少しづつ広げていくという手法もある。
 
その両者の欠点を埋めるべく、現在位置から遠ざかるにつれ間隔を少しづつ広げていくという手法もある。
  
[[ファイル:Ray-casting.png|none]]
+
処理を軽くすべく、右下から銃の生えているFPSなどの[[ゲーム]]では、銃弾の衝突判定はレイキャスト、キャラの衝突判定は[[AABB]]と使い分けているケースも見受けられる。
  
処理を軽くすべく、右下から銃の生えているFPSなどの[[ゲーム]]では、銃弾の衝突判定はレイキャスト、キャラの衝突判定は[[AABB]]と使い分けているケースも見受けられる。また某[[オープンソース]]な[[物理演算エンジン]]の[[ソースコード]]では、まず[[AABB]]で大雑把な判定を行い、次にレイキャストを行うという2段階処理になっているものもあった。
+
== レンダリング ==
 +
レイキャストは重たいというイメージがあるが、1フレームで大量に計算するから重たいのであって、1回の処理自体はそんなに重たいものではない。
  
== 2Dを3Dっぽく描画 ==
+
そこでレイキャストを使い2Dマップ(2次元配列)から壁の抽出(添字算出)と、レイと壁の衝突角度を算出し、それを3D風に描画するとWolfenstein 3DやDOOMになる。
レイキャストは重たいというイメージがあるが、1フレーム内で大量の頂点から大量に計算するから重たいのであって、1回の処理自体はそんなに重たいものではない。
+
現在のようなポリゴンを使った本格的な3Dゲームが大流行するより前の時代にに登場した「2Dを3D風に表現」する手法である。
 
 
そこでレイキャストを使い2Dマップ(2次元配列)から壁の抽出(添字算出)と、レイと壁の衝突角度を算出し、それを3D風に描画すると一世を風靡した[[ゲーム]]「[[Wolfenstein 3D]]」や「[[DOOM]]」になる。現在のような[[ポリゴン]]を使った本格的な3Dゲームが大流行するより前の時代にに登場した「2Dを3D風に表現」する手法である。
 
 
[[ファイル:レイキャスト2.png|none]]
 
[[ファイル:レイキャスト2.png|none]]
 
== ボリュームレンダリング ==
 
上記では2次元配列から3D風を生成する事例であるが、これに1軸を加え3次元配列から3D空間を描画すれば[[ボリュームレンダリング]]となる。
 
一世を風靡した「[[マインクラフト]]」である。
 
 
視点となる「点」と、その先にあるスクリーンとなる「面」を決め、その視点からスクリーン上の1点を結ぶ線(これをレイという)のさらに先の延長線上にある[[ボクセル]]の値を次々と抽出する。レイキャスティングで得られた値を用いて、[[最大値]]や[[最小値]]、[[平均値]]、[[中央値]]などといった値に加工し、最終的な映像として[[レンダリング]]することを[[ボリュームレンダリング]]という。
 
 
一見すごそうに思えるが、やっていることは前述の2Dの3D風描画にZ軸の概念を加えただけである。
 
単純に重い。
 
  
 
[[category: 3DCG]]
 
[[category: 3DCG]]
 
[[category: 衝突判定]]
 
[[category: 衝突判定]]
[[category: アルゴリズム]]
 

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)