Discontinuities of dTdx and dTdy in ray differentials.

by syoyo

raydiff_texmap.png
texture mapped polygonal surface(with LOD caclulation by ray differentials).

Blurred texture mapping result shown near the edge is
mainly due to simple mipmap calculation(box filtering).
Choosing proper filter method for mipmap calculation would remove this blurred result. 

raydiff_lod.png
Showing LOD level(LOW: red -> green -> blue -> purple :HI)

raydiff_dtdx.png
Showing dTdx vector(normalized for visualization)

raydiff_dtdy.png
Showing dTdy vector(normalized for visualization)

http://lucille.atso-net.jp/svn/angelina/texturing/mapping/
(source tree)

http://lucille.atso-net.jp/svn/angelina/texturing/mapping/texmap.tar.gz
(source + win32 binary)

I fixed my ray differentials implementation,
but there are discontinuities for dTdx and dTdy vector.
(as a result, LOD has also discontinuities)

I don’t know this is the correct result of ray differentials(of polygonal surface),
but discontinuities in LOD across the polygon surface wouldn’t be preferable.

Does anyone know the source of this discontinuities?

http://lucille.atso-net.jp/phpbb/viewtopic.php?t=25
(Discuss this article)

—- in Japanese —

レイ微分の計算が間違っていたので、修正しました。
しかし、どうも dTdx, dTdx の結果に不連続性があります。
結果として LOD も不連続になってしまっています。
(テクスチャマップの結果を見るとそれほど違いはありませんが、あまり好まれる状況ではありません)

これがポリゴン面に対するレイ微分の正確な結果なのか、
私の実装が間違っているのか…

(ポリゴン面に対する)レイ微分のリファレンスがほしいところです。

mental ray はレイ微分をサポートしていますし、また基本的にポリゴン面を扱うので、
mental ray でレイ微分のテストをしてみたいところですが、、、、
うーん、いまだと 6 万くらいで買える(買い切りだけど) XSI Foundation を買うと、
最も安く mental ray を手に入れられるのかな…

また、そもそもポリゴンの投影面積がスクリーンに占める割合が大きいのも、
微分値を計算する(利用する)上で問題ということで、
Ray Differentials and Multiresolution Geometry Caching ~ のように
レイ微分の結果に応じて適切にジオメトリを分割していくことも必要なのかもしれません。

Advertisements