DirectX

DirectX10を始めました

■はじめに 今はもうDirectX11が出て使われ始めていますが、 今更DirectX10の勉強を始めてみました。 今回初ということで、画面のクリアをするプログラムを作ってみました。 これをベースにしていろいろと機能を触ってみようかと思います。 ■DXGIのセットアップ DXGIとはスワップチェインとか管理しているレイヤーになります。 ハードウェアデバイス列...
OpenGL

テクスチャオブジェクトとサンプラ設定

いつのまにか、OpenGLのテクスチャ挙動もDirectXに合わせる方向になっているようだ。OpenGL 3.0では、glTexParameteriで GL_TEXTURE_BORDER_COLOR を設定することが非推奨となっている。 他にも テクスチャラッピングモードで GL_CLAMP_TO_BORDER を指定することは推奨されていないとなっている。...
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...
OpenGL

OpenGLでのストリームアウト その5

AMD(ATI)で動くOpenGLのストリームアウト(transform_feedback拡張)が一応できました。GL_EXT_transform_feedback のエクステンションを利用します。 ■準備するもの 頂点データのためにVBOを使えるようにすること GLSLによるシェーダーを使えるようにすること クエリー発行できること ■シェーダーの準備 GL...
OpenGL

OpenGLでVRAM情報を得る – AMD編

最近気づいたけど、AMD(ATI)用のエクステンションで GL_ATI_meminfo というものがある。 これを用いれば、OpenGL環境のアプリでもどのくらいVRAMを使っているかがわかる。使い方は簡単で、以下のようにして値をとってくる。 int value = { 0 }; glGetIntegerv( GL_VBO_FREE_MEMORY_ATI, ...
DirectX

CubeMapGS

DirectXサンプルにある、CubeMapGSを動かしてみた。 Radeon5450では実用的な速度で動いているとは言い難い。 Sphereで 25fps程度 Carで 10fps程度 DX11世代のハードでこの状況だとまだ安心して 毎フレーム描画で使えないなと思う。 せいぜいシーンの切り替わりタイミングで1回だけとかになるだろうか。 でもそれくらいだった...
プログラミング

STL関連リンクエラー

どこかで以下のようなエラーを見かけたので、 それについて書いておこうと思います。 ■メッセージ例 error LNK2019: 未解決の外部シンボル "__declspec(dllimport) class std::basic_ostream > & __cdecl std::operator<< >( class std::basic_ostream >...
OpenGL

OpenGLでのストリームアウト その4

今までのものは GL_transform_feedback_NVのやつでやっていた。 しかし、今回AMDのRadeon 5450環境を手に入れられたのでこちらについても ちょっと試してみた。GL_transform_feedback_EXT をサポートしているようなのでこちらを使うことになりそう。 ■APIの置き換え(その1) NVIDIA AMD glBe...
OpenGL

OpenGLでのストリームアウト その3

ようやく動作自体は出来たのでメモしておきたいと思います。 サンプルプログラムはまた後日に。 ■ 準備 GLSLシェーダーをコンパイル シェーダープログラムをリンク処理 glTransformFeedbackVaryingsNV でストリームアウトとして書き込むデータの設定 格納先のバッファオブジェクトを生成 ■ 描画フェーズ ラスタライズ処理の無効化(GL_...
OpenGL

OpenGLでのストリームアウト その2

■GL_NV_transformfeedbackのspecテキスト こう書いてあった。 Two methods exist to specify which transformed vertex attributes are streamed to one, or more, buffer objects in transform feedback mode...