OpenGL ATIでのOpenGLの罠 NVIDIAカード(Geforce)ではうまく動いていたのに、 ATIカード(RADEON)でうまく動かなくなったというネタです。今回の使用APIはOpenGLです。 ■症状 ミップマップありのテクスチャで、ミップマップが使用されない。 ベースレベルの画像しか使われない(ことがある)、という現象が発生 ■原因および対処法 glTexImage2DとglTex... 2010.08.26 OpenGLプログラミング
DirectX DirectX9のRenderStateからGL読替 DirectX9のRenderState設定がGLのどれにつながるかわからないって話を聞いた。 知っている範囲で書いてみます。 DirectX9 OpenGL D3DFILL_WIREFRAME glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ) D3DCULL_NONE glDisable( GL_CULL_FACE )... 2010.08.25 DirectXOpenGLプログラミング
OpenGL ATIのドライバ catalyst 10.7の挙動が不満だったので、以前の状態にしようとしてかなり大変だった。 結論として、バージョンをあげてしまったらもう後戻りできないということみたい。DriverSweeperとか使ってみてもだめだったのでどうしようもない。 この結論に至る前にはいろいろとありました。 発生した症状を書いてみます。 glTexImage2Dで、アクセス違反... 2010.08.23 OpenGLプログラミング
OpenGL シェーダーのコンパイル失敗時挙動 どうもglGetShaderInfoLogの挙動がおかしい。 シェーダーのコンパイル失敗という挙動を示すようになったのも問題だったりするけど、 この関数の挙動が赤本のサンプルプログラムでは正常動作しない。 ■原因の推測 このおかしな挙動を始めた前後で変えたことはCatalystのバージョンを変えたこと。 現在は 10.7 を使っている。 そもそも以前の環境で... 2010.08.22 OpenGLプログラミング
OpenGL OpenGLで座標系をいじる よくある右手系、左手系の変換の話ではありません。DirectXとOpenGLではビューポートの原点位置が異なるのですが、 これがOpenGL拡張を使うと共通化できるのでは!と。 その対応をやってくれそうな拡張が GL_ARB_fragment_coord_conventions というやつです。 ドキュメントを読むと座標系の原点をどこに設定するか、 ピクセル... 2010.08.11 OpenGLプログラミング
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... 2010.08.08 OpenGLプログラミング
OpenGL テクスチャオブジェクトとサンプラ設定 いつのまにか、OpenGLのテクスチャ挙動もDirectXに合わせる方向になっているようだ。OpenGL 3.0では、glTexParameteriで GL_TEXTURE_BORDER_COLOR を設定することが非推奨となっている。 他にも テクスチャラッピングモードで GL_CLAMP_TO_BORDER を指定することは推奨されていないとなっている。... 2010.08.05 OpenGLプログラミング
OpenGL GL拡張のリスト うちのRADEON 5450のGL extensionのリスト GL_AMDX_name_gen_delete GL_AMDX_random_access_target GL_AMDX_vertex_shader_tessellator GL_AMD_draw_buffers_blend GL_AMD_performance_monitor GL_AMD_s... 2010.08.04 OpenGLプログラミング
OpenGL OpenGLでのストリームアウト その5 AMD(ATI)で動くOpenGLのストリームアウト(transform_feedback拡張)が一応できました。GL_EXT_transform_feedback のエクステンションを利用します。 ■準備するもの 頂点データのためにVBOを使えるようにすること GLSLによるシェーダーを使えるようにすること クエリー発行できること ■シェーダーの準備 GL... 2010.07.31 OpenGLプログラミング
OpenGL OpenGLでVRAM情報を得る – AMD編 最近気づいたけど、AMD(ATI)用のエクステンションで GL_ATI_meminfo というものがある。 これを用いれば、OpenGL環境のアプリでもどのくらいVRAMを使っているかがわかる。使い方は簡単で、以下のようにして値をとってくる。 int value = { 0 }; glGetIntegerv( GL_VBO_FREE_MEMORY_ATI, ... 2010.07.29 OpenGLプログラミング