クォータービューの描画順の問題(3)

これがひとつ目の問題


そんなわけで、もう前回(id:yaneurao:20041003)の日記のコメントでずいぶんなところまで話が進んでいるのだけれど、そんなのは気にせず、こっちはこっちのペースで進めさせてもらうことにする。


まず、z = 0を1段目 , z = -1を2段目 のように「〜段目」という数え方をするとしよう。1段目にあるキューブは2段目にあるキューブより必ず奥に描画される。2段目にあるキューブは3段目にあるキューブより必ず奥だ。


ということで、1段目の後方から順番に描画して、そのあと2段目の後方から順番に..という描画の仕方でも構わないし、実際そういう方法でクォータービューの描画を行なっているゲームもあるだろう。


しかし、図のように、キューブが1.5段目にあると、このキューブの描画順位はどうなるの?みたいな話は当然出てくる。確かに、うまくいかない。でも、すべてのクォータービューのゲームがこういう中途半端な位置の描画が必要になるわけではないので、この方法が何の役にも立たないかというと、そうでもない。


この問題、突き詰めていくと相当ややこしいし、cubeを1*1*1ではなく、N*M*Lと拡張したりして一般性を持たせようとすればするほど難しくなってくる。ここでは余り深くまで立ち入る代わりに、要所要所で条件を限定していき、こういう条件下ならばこういう解法がある、という話をしていくことにする。(つづく)