Visibility ordering…超まんどくせぇ…

Transparency(透明度)のあるオブジェクトを書く時に、visibility orderingが必要のだ…でも、やっぱり面倒だね。現在使った、大昔作ったものだが、object-space方法はただのオブジェクトの位置をviewまで持っていて、z値で順番に小さい値から描画する。この方法でやっても、変なオブジェクト、例えば特大のオブジェクトとか、位置の近いオブジェクトとか、複雑なシーンとかのtransparencyはたまにうまく描画されなかった。描画順番が間違っているので、やっぱり、半透明オブジェクトなのに、後ろのオブジェクトは見えなくなっちゃった。
なんかないなのかなぁ?オブジェクトレベルでやるだけじゃなくて、もっとfragmentレベルまでやれないと多分うまく描画されないだろう。ここまでが欲しかったら、CPUレベルでやるのはアホらしいなので、絶対GPUに持って行かないと駄目かも。とおもいきゃ…あったし。このサイトを見付かった。

  • North Carolina大学の研究「Interactive Visibility Ordering and Transparency Computations among Geometric Primitives in Complex Environments 」 http://gamma.cs.unc.edu/SORT/

この方法は良さそうだが…Skinningがあったら、どこでやるんだろう?この論文を読めば、CPUでやらないとならないみたいだね。うぅ、厳しいなぁ。もしかして、最近のGPUはskinningの計算の後に描画順番も変えられる?試さないと分からないものだね、これは…やっぱり、PS2のプログラムをやり過ぎて、最近のGPUは分からなくなっちゃった。(笑)

まんどくせぇ:面倒くさいより面倒(y○z先生の辞書より)