また忘れてしまった

gpuppur2006-08-23

ついこの前に学校で作業したものをそのままにして家で作業の続きができないという痛い目に会ったのに、昨日も同じ事をしてしまいました。
そういうわけで、今度からソースコードDVD-RWにでも焼いて持ち運ぶことにしようと思います。ソースコードのバックアップもできて一石二鳥ですね。

以前GPUレイトレーシングするプログラムを作ったのですが
http://d.hatena.ne.jp/gpuppur/20060821
レイトレーシングで表示している物体のz値をzバッファに書き込み、従来のラスタライズ法でレンダリングする図形と一緒に表示することができるようになりました。GLSLのfragment shaderでgl_FragDepth変数に0.0〜1.0の範囲で深さを与えるとzバッファにその値を書き込んでくれます。
右上にキャプチャ画像を張っておきます。
真っ白い箱はOpenGLのglBegin(GL_TRIANGLE_STRIP)でレンダリングしてあるのですが、レイトレーシングで描画した球とうまく重なって描画されているのがわかると思います。
ただ、まだカメラの動作がおかしかったりするので視点を動かしたり向きを変えたときに、レイトレーシングで使ってるカメラとラスタライズで使ってるカメラの違いが大きくなっているようで、重なり具合がおかしくなります。