「レイトレーシング」の最大の“敵”とは何か? やっつける方法はあるのか?レイトレーシングが変えるゲームグラフィックス(第3回)(2/3 ページ)

» 2022年10月27日 12時00分 公開
[西川善司ITmedia]
※本記事はアフィリエイトプログラムによる収益を得ています

レイの本数が少ないと何が起こる?

 ゲームでレイトレーシング法を使う場合、投げられるレイの本数が慢性的に足りない状況にあることは先述の通りである。では、投げるレイの本数が少ないと何が起こるのだろうか。もう少し具体的に説明していこう。

 レイトレーシング法で影を生成をする際には、着目しているピクセルから光源方向に向かってレイを投げる。レイが何かに衝突した場合は、それを「影」と判断するというやり方である。

 しかし、蛍光灯のようなある程度大きさのある発光体(光源)の場合、方向を微妙にずらした複数のレイを投げて、投げたレイのうち何本が遮蔽(しゃへい)物に衝突したかを数えて、計算して得られた遮蔽率をもとに影の強弱を調整する

 例えば、10本投げたレイの全てが遮蔽物に衝突したとすれば、レイの発射地点の遮蔽率は100%となるので「濃い影」を描画するのが妥当である。一方、もし10本のうち4本だけが衝突したとすると、遮蔽率は40%となるので「やや薄い影」とするのがいいだろう。

 では、ここで投げられるレイが1本しかなかったとしたらどうなるのだろうか。ご想像の通り「All or Nothing」、つまりその1本がぶつかれば「遮蔽率100%」、透過すれば「遮蔽率0%」と両極端な判定となってしまう。本来はそのピクセルの遮蔽率が40%だったとしても、レイを投げる向きなどによっては100%と判断されてしまったり、逆に0%と判定されてしまったりするわけだ。

 レイの本数が少なくなると、影描画としての正確性に欠けることになる。これはれっきとした「誤差(エラー)」であり、レイを放った場所がちょっとずれるだけで、誤差まみれの「遮蔽率0%」と「遮蔽率100%」が無秩序に散らばることになってしまい、結果として影描画は“ノイズ”になってしまう。

 投げられるレイが少ないと、描画がノイズだらけとなる――このことは、ゲームの描画においてレイトレーシング法を活用する上で、大きな課題なのだ。

1レイだけで影描画をする実験 実際に「1ピクセル当たり1本のレイ」で影を描画した結果。ここまでノイジーになってしまう(GDC 2018におけるNVIDIAの講演「Ray Tracing in Games with NVIDIA RTX」より)
無数 逆に、1ピクセルから無数のレイを放出して影描画を行った結果。投射距離の短い影(≒遮蔽率が高い領域)は色濃く、長い影(≒遮蔽率が低い領域)は淡い半影として描画されている。言うまでもなく、こちらの方が現実に近い見栄えである(GDC 2018におけるNVIDIAの講演「Ray Tracing in Games with NVIDIA RTX」より)

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

最新トピックスPR

過去記事カレンダー