ゲームでレイトレーシング法を使う場合、投げられるレイの本数が慢性的に足りない状況にあることは先述の通りである。では、投げるレイの本数が少ないと何が起こるのだろうか。もう少し具体的に説明していこう。
レイトレーシング法で影を生成をする際には、着目しているピクセルから光源方向に向かってレイを投げる。レイが何かに衝突した場合は、それを「影」と判断するというやり方である。
しかし、蛍光灯のようなある程度大きさのある発光体(光源)の場合、方向を微妙にずらした複数のレイを投げて、投げたレイのうち何本が遮蔽(しゃへい)物に衝突したかを数えて、計算して得られた遮蔽率をもとに影の強弱を調整する。
例えば、10本投げたレイの全てが遮蔽物に衝突したとすれば、レイの発射地点の遮蔽率は100%となるので「濃い影」を描画するのが妥当である。一方、もし10本のうち4本だけが衝突したとすると、遮蔽率は40%となるので「やや薄い影」とするのがいいだろう。
では、ここで投げられるレイが1本しかなかったとしたらどうなるのだろうか。ご想像の通り「All or Nothing」、つまりその1本がぶつかれば「遮蔽率100%」、透過すれば「遮蔽率0%」と両極端な判定となってしまう。本来はそのピクセルの遮蔽率が40%だったとしても、レイを投げる向きなどによっては100%と判断されてしまったり、逆に0%と判定されてしまったりするわけだ。
レイの本数が少なくなると、影描画としての正確性に欠けることになる。これはれっきとした「誤差(エラー)」であり、レイを放った場所がちょっとずれるだけで、誤差まみれの「遮蔽率0%」と「遮蔽率100%」が無秩序に散らばることになってしまい、結果として影描画は“ノイズ”になってしまう。
投げられるレイが少ないと、描画がノイズだらけとなる――このことは、ゲームの描画においてレイトレーシング法を活用する上で、大きな課題なのだ。
Copyright © ITmedia, Inc. All Rights Reserved.