OpenGL

OpenGLよしなし事

今日はOpenGLのメモ程度内容をつらつらと。 ■FBOのレンダーバッファ、レンダーテクスチャ レンダーテクスチャはテクスチャとして利用可能なのはわかるが、 レンダーバッファの存在価値ってなんだろうか。 情報ソースはどこか忘れたけど、 レンダーバッファのほうはテクスチャとして使わない分、高速に動くように ドライバ内で最適化の余地があるらしい。 ■テクスチャ ...
OpenGL

ATIドライバでのGLSL

GLSLの記述について、ATIは結構シビア。 ドライバのバージョンによってはシェーダーのコンパイルが通ったり通らなかったりする。しかし、通らないのは厳密には正しく、そのようなシェーダーを書いていない開発者のほうが悪いのはわかっているんだけど、なんとも開発しづらい。 以前は警告が出ていたのものが、警告が出なくなったりして、 チェックが緩くなったものもあれば、逆...
OpenGL

ATIでのOpenGLの罠

NVIDIAカード(Geforce)ではうまく動いていたのに、 ATIカード(RADEON)でうまく動かなくなったというネタです。今回の使用APIはOpenGLです。 ■症状 ミップマップありのテクスチャで、ミップマップが使用されない。 ベースレベルの画像しか使われない(ことがある)、という現象が発生 ■原因および対処法 glTexImage2DとglTex...
DirectX

DirectX9のRenderStateからGL読替

DirectX9のRenderState設定がGLのどれにつながるかわからないって話を聞いた。 知っている範囲で書いてみます。 DirectX9 OpenGL D3DFILL_WIREFRAME glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ) D3DCULL_NONE glDisable( GL_CULL_FACE )...
DirectX

DirectX9でATIカードに振り回される

どうもATIのグラフィックボードおよびドライバは DirectXを正しく使わないと描画が不正になる模様。DrawIndexedPrimitiveでnMinVertex, nMaxVertexを正しく設定しないと、 それだけでポリゴンが壊れて描画されたりすることを確認できた。 ちなみにNVIDIAではこれらの情報を参考にしていないのか、 適当な値を放り込んでも...
OpenGL

ATIのドライバ

catalyst 10.7の挙動が不満だったので、以前の状態にしようとしてかなり大変だった。 結論として、バージョンをあげてしまったらもう後戻りできないということみたい。DriverSweeperとか使ってみてもだめだったのでどうしようもない。 この結論に至る前にはいろいろとありました。 発生した症状を書いてみます。 glTexImage2Dで、アクセス違反...
OpenGL

シェーダーのコンパイル失敗時挙動

どうもglGetShaderInfoLogの挙動がおかしい。 シェーダーのコンパイル失敗という挙動を示すようになったのも問題だったりするけど、 この関数の挙動が赤本のサンプルプログラムでは正常動作しない。 ■原因の推測 このおかしな挙動を始めた前後で変えたことはCatalystのバージョンを変えたこと。 現在は 10.7 を使っている。 そもそも以前の環境で...
OpenGL

OpenGLで座標系をいじる

よくある右手系、左手系の変換の話ではありません。DirectXとOpenGLではビューポートの原点位置が異なるのですが、 これがOpenGL拡張を使うと共通化できるのでは!と。 その対応をやってくれそうな拡張が GL_ARB_fragment_coord_conventions というやつです。 ドキュメントを読むと座標系の原点をどこに設定するか、 ピクセル...
OpenGL

GL拡張のリスト(2)

ドライバを更新して取得してみた。 catalyst 10.7 GL_AMDX_debug_output GL_AMDX_vertex_shader_tessellator GL_AMD_conservative_depth GL_AMD_debug_output GL_AMD_draw_buffers_blend GL_AMD_name_gen_delete...
DirectX

続・CubeMapGS

以前の7/29日記で、CubeMapGSの動作を書いたので、 NVIDIAのGeforce9800GTではどうだったんだろうと思ってチェックしてみた。 ■球体モデルの結果 カード Instancing fps値 RADEON 5450 TRUE 28.2 RADEON 5450 FALSE 38.2 GeForce9800GT TRUE 119.2 GeFo...