ホーム
おまかせ表示
ログイン
設定
MonoBookについて
免責事項
MonoBook
検索
「
レイトレーシング
」を編集中
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''レイトレーシング'''([[英語]]:raytracing)とは、[[3DCG]]を描画する[[アルゴリズム]]のひとつである。 ==概要== 現実の世界では太陽などの光源から光が出て、その光が物体に当たることで反射を繰り返し、最終的に人間の目に入った場合に物体が見える。 一方、レイトレーシングではそれとは逆に目から視線が出て、その視線が物体に当たることで反射を繰り返し、最終的に光源に到達した場合に、光の強さを計算して色を算出し物体を描くというものである。ようするに現実の世界とは逆方向に光をシュミレーションしているのである。 大雑把にいえばレイトレーシングは[[レイキャスティング]]([[ボリュームレイキャスティング]])の発展系であり、[[レイキャスティング]]では最短で最速でまっすぐに一直線に接触があれば単純に色を拾うというものであったが、レイトレーシングでは物体と接触した際に「反射」の処理が入り、さらに光源に到達するまでの距離なども考慮される。 [[ファイル:レイトレーシング.png|none|640px]] ==長所== ===シンプル=== レイトレーシングは[[レイキャスティング]]に「反射」の概念を入れただけの非常にシンプルなアルゴリズムである。反射や透過、屈折、影の効果などをシンプルな[[アルゴリズム]]で実装できる。 ==短所== ===計算量が桁違いに多い=== レイトレーシングは[[レイキャスティング]]に「反射」の概念を入れただけの非常にシンプルなアルゴリズムである。「レイトレーシングは重い」というイメージがあるが、その根底にある[[レイキャスティング]]自体は非常に軽いものである。 1回の処理こそ軽いわけだが、そこに「反射」の処理を入れるとレイキャスティングの回数が反射する回数だけ増えることになる。つまりやっていること自体はシンプルだが強烈な回数のループ処理になる。レイトレーシングでそこそこ綺麗な画像を得ようとした場合、最低でも画像(画面)の解像度と同じだけの数のレイを飛ばさなければならない。 たとえば画面の[[解像度]]が[[フルHD]](1920x1080)であれば約200万[[画素]]([[ピクセル]])もの[[レイ]]を投げることになる。この各レイが平均5回ほど反射するとしたら1000万レイになる。これをリアルタイムレンダリングで秒間60フレームを出そうと思ったら1秒間に6億回もレイを飛ばさなければならない。さすがに1回の計算量が少なくてもこれだけあると重くなる。[[C言語]]で単純にforループを空回しただけでも重たいね。 ===影にノイズが出やすい=== 出力画像の解像度とレイの数が同程度の場合に影にノイズが出やすいという特徴がある。 ノイズを低減するには[[スーパーサンプリング]]を行う必要がある。 手っ取り早いのが「1ピクセルを作るのに微妙に角度を変えた複数のレイを飛ばしてその[[平均値]]を取る」という方法だ。 ただこの方法はレイの数が飛躍的に増える[[諸刃の剣]]だ。 ==アルゴリズム== そのうち書く ==関連項目== *[[レイキャスティング]] *[[スクリーンスペースリフレクション]] *[[DirectX Raytracing]] ;1D *[[ワイヤーフレーム]] ;2D *[[スキャンライン]] *[[Zソート]] *[[Zバッファ]] *[[レイトレーシング]] *[[ラジオシティ]] ;3D * [[ボリュームレンダリング]] * [[パストレーシング]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)