レイトレーサーでPhong法線補間をしてもうまくいかない場合がある

2010-04-10

レイトレーサーでPhong法線補間をしてもうまくいかない場合がある。

Phong failure 1

荒く分割したモデルでもPhong法線補間すればきれいにグラデーションするもの、と思ったんだけど光があたってない部分でおかしなことがおこる。 きれいにグラデーションされず、ポリゴンの境目で真っ黒になってしまっている。

法線は滑らかに補間されるはずなのになぜかと原因を考えたところ、光源と逆を向いているポリゴンはいくら法線補間をしたところでシャドウレイが自分自身(の裏面)に当たってしまうためだと気づいた。 シャドウレイがなにかに遮られた場合に水色に塗ったもの:

Phong failure 2

ローカルイルミネーションならシャドウレイを撃たないのでこのようなことは起きず、きれいに塗られるはず。 レイトレーシング法の場合はどのように解決したものか…。

緑の部分は視線と補間された法線が反対向きになってなくて描画がおかしくなる部分。 こっちのほうは面法線とライティング法線を別に用意すれば解決できるかもしれない。