OpenGL

OpenGL

GL_AMD_pinned_memory を試してみた

以前から気になってはいた GL_AMD_pinned_memory 拡張を試してみました。自分の環境は、APUではない通常のRADEONボードをさした環境であるので、一応動くには動くだろうと思って試してみました。ただ動いたとしても本当に効果を発揮するのは、GPU,CPUともに同じメモリを使用するAPU環境だと思います。 使い方は簡単で、通常のバッファ作成のと...
プログラミング

VRAMの使用量を取得するライブラリ

先日公開したVRAMの使用状況をグラフ化するツールで使用しているDLL部分について、ヘッダとライブラリの形式でまとめた物を公開します。 純粋にCインターフェースで作成しているため、C#からの呼出も割と楽に実現できます。 (通常のWin32APIの呼出手続きと同じように記述が可能です) ダウンロード VRAMSpaceLib ver 1.00 をダウンロード ...
OpenGL

VRAM情報の取得(AMD編)

最近AMDドライバを更新したらVRAM情報用の拡張がなくなっているじゃないか、の続きの話です。 関連する話は、OpenGLでVRAM情報を得る – AMDや、OpenGLでVRAM使用状況を取得…出来なくなった?!などになります。 結局のところ、ドライバを更新して Catalyst 13.4で RADEON 6850 を使用している状況では、ATI_memi...
OpenGL

VRAM情報の取得(NVIDIA編)

前回AMDのドライバでVRAM情報取得が出来なくなった状態だったのと、Vista以降でVRAM情報が正しくとれなくなったのとのコンボで再度ちょっと実験してみました。 NVIDIAのドライバでは、GL_NVX_gpu_memory_info という拡張がOpenGLで使える可能性があります。 これを用いてみて、どのような挙動になるか確かめてみたいと思います。A...
データ解析

MMDの再生、物理演算いれてみた

MMDのデータの再生を相変わらず今更ですががんばって実装していました。 今回は、IKと物理演算について実装を進めてました。前の実装を一度捨ててます…。 そのため、表情モーフも無効となってしまっている状態ですが、今回の物は以下の点を盛り込んでみました。 DirectXの算術(D3DX)を用いたり、Bullet が持っている算術を使用したり切り替えられること B...
OpenGL

(OpenGLの)シェーダーバイナリ(GLSL Binary)

そういえばOpenGL 4.xでシェーダーのコンパイル結果をバイナリとして取得、ロードできる機能が追加されたのですが、当時ドライバがまだ対応していなくて見送っていました。ようやくこれについて調べてみることが出来たので、ここに書いておこうと思います。 まず、DirectXではシェーダーをコンパイルすると各ベンダで共通なシェーダーアセンブリ状態になります。このア...
OpenGL

DirectXとOpenGLのテクスチャ圧縮対応付け

最近のDirectXはDXT1,DXT3,DXT5 という言い方をしなくなりました。 これらはそれぞれBC1, BC2, BC3 と呼ぶようです。 そして、このBCのナンバリングは続いて BC7まであります。 このBC4からBC7までOpenGLではどのような拡張が対応付くのかを調べてみました。 BC4GL_EXT_texture_compression_l...
OpenGL

GL_INTEL_map_texture 拡張

久々にIntelがOpenGL拡張を出していました。 それは、GL_INTEL_map_texture というもので、内容を読むと GPUが読んでいるメモリ領域を直接CPUからアクセス可能にする拡張のようです。 確かに最近のIntel CPUはGPU統合してしまっており、グラフィックスメモリはすなわちメインメモリなわけで、CPUから直接扱うことが出来るように...
OpenGL

NVIDIA GeForce GTX 650 TiのOpenGL 4.3

Geforce GTX650Tiを装着して現行のドライバを入れて発覚したのですが、公式ドライバ 306.97では OpenGL 4.3 はまだ使えないようです! glGetString( GL_VERSION ) で取得してバージョン表示では、 4.2 となっていました。 カタログ上は以下のように OpenGL 4.3 へ対応をうたっているのですが、もうしば...
DirectX

透明ウィンドウ(半透明ウィンドウ)の話 その3

透明なウィンドウということで、このシリーズも第3回。今回が最後となりそうです。 ようやく Windows7,Windows8両方ともで動かせるやり方が発見できました。 なお、Windows7のAeroGlassOFF状態でも動くので、注意して実装すればWindowsXPでもこの方法でいけるのではないかと思います。 その方法は、レイヤードウィンドウを使う方法で...