いろきゅうの(元)はてなダイアリー

はてなダイアリーから移行中…

1/10000000の境界で撃沈...

タイトルは実はちょっと偽ってまして、実際は ">" と ">=" の差による影響っぽいのですが…
今日、ゼミの研究室で、いまコーディングしているものをデバッグ実行してみたところ、正常に表示されなかったのです。家では期待通りに表示できていたオブジェクトが、全て表示されないではありませんか……ナゼ?
コード的には家とは全く変えていないはずです。チェックアウト(更新)したばかりですし……。
とりあえず、何が原因か特定するため、パラメータやらMatrixの生成方法やらを変更。そんな中、徐々に嫌な予感が増してきます
・カメラの位置は (0, 0, -1), at = (0, 0, 0)
・オブジェクトの位置は (0, 0, 0)。ビットマップを単に2D描画するように配置。
・ProjectionMatrix の zNear = 1, zFar = 16
カメラが -1 で、オブジェクトまでの距離が1。 zNear は 1  ………?

とりあえず、必死こいて編集したコードを元に戻し、カメラの位置を -2 に設定。すると、みごとオブジェクトが表示されました
確認のため、-1 に戻してみると表示されない。(変な言い方ですけど)floatの表現限界っぽい 「-1.0000001」 に設定してみたら、普通に表示されました。(涙

……私は 1/10000000 の差で負けましたか。そうですかそうですか。"<" と "<=" の差で負けましたか、そうですかそうですか……
同じ Radeon でも、型番によっては表示結果が違う事があるんですねぇ…。はぁ。

…悔しいので寝ます。ハイ。orz
(私が何かタブーなコード書いているんだろうか…う〜ん…)