FramebufferObject

OpenGL

OpenGLでMSAA

以前にDirectX11でMSAAというタイトルでテクスチャに対するMSAAをやってみましたが今回はそれのOpenGL版をやってみたいと思います。結果はこんな感じです。画像を切った貼ったしたので、ねつ造と言われてしまうかも・・・。 必要になるGL拡張 最近のOpenGL対応ボードならば問題ないと思いますが、OpenGL 2.1対応とか言われているボードでは下...
OpenGL

OpenGLでのテクスチャレンダリングパフォーマンスについて

OpenGLでテクスチャレンダリングをする場合には、いくつかの方法が考えられます。 FBO(FramebufferObject)をレンダリングごとに用意 FBOを1つ作っておいて、その中に書き込み先となるテクスチャを再セット pbufferを使う 最後のやつは、かなりレガシーな古いコードとなりそうなので、 最近の環境であればFBOを使うことにしておいた方がい...
OpenGL

レンダーバッファとレンダーテクスチャ

Framebuffer Objectで設定するレンダーバッファとレンダーテクスチャについて。どこかの記載で、レンダーバッファのほうがレンダーテクスチャよりも 高速に動く余地があるということが書いてあった。 これは以前の日記でも書いたとおり。ここでFBOにはレンダーテクスチャとレンダーバッファとそれぞれ設定するための関数が用意されているが、 同時に設定したらど...
OpenGL

FramebufferObject挙動違い -その3-

今回は今までの総合しての解決編になります。 デプスとステンシルを1つのテクスチャでOKとし、 さらにNVIDIAとAMDと双方で問題なく動く、という解法になります。 ■実装コード やはりテクスチャの作成がポイントでした。 glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8_EXT, TEXTURE_WIDT...
OpenGL

FramebufferObject挙動違い -その2-

AMD製グラフィックボード時でも正常動作できる組み合わせを発見しました。テクスチャの生成時がポイントです。 ■解決方法(AMDオンリー) glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT16, TEXTURE_WIDTH, TEXTURE_HEIGHT, 0, GL_DEPTH_COMPONENT, GL_...