プログラミング

DirectX

D3D10_TEXTURE2D_DESCのArraySize。テクスチャ配列の罠?

DirectX10でテクスチャ配列使ってみようと思い、 ソースコードを書いて試そうとした矢先に躓きました。D3D10_TEXTURE2D_DESCのArraySize = 2; として、 テクスチャを作成するも失敗。 0x773fb727 (KernelBase.dll) で初回の例外が発生しました: Microsoft C++ の例外: _com_erro...
DirectX

HW ShadowMapのために。

HW ShadowMapのために最近の状況をしらべてみました。 NVIDIA Geforce7x00くらいのころから搭載*1 テクスチャとしてUSAGE_DEPTHSTENCIL付きでD24S8フォーマットで作成可能 これをサンプリングするときに4近傍からの平均がとれてしまう。 AMD fetch4 X1800以外のX1xxxシリーズで使用可能 このとき、D...
DirectX

低レベルなDirectX9

ドライバーの内部エラーについて、ここに記載がちょっとありました。 こんな仕組みになっているけど、デバイスの破棄および再生成で処理を復帰っていうことが、 果たしてどのくらい可能なんだろうか。ちょっと疑問に思います。 でも、IDirect3DDevice9::ValidateDevice というメソッドを DrawPrimitive系の直前に挿入して、 デバイス...
DirectX

Collada+DirectX

海外のサイトで、COLLADAとDirectXの話が書いてありました。 さらりと見てみましたが、COLLADA DOMとその中身にどうアクセスするか、 各種メッシュ(静的メッシュ、スキニングのような骨の親子構造を持つもの、モーフィング)の扱い方 これらについて丁寧に書いてありました。 ただし、英語で、ですが。ここに。→ ソースコードも同時に公開されているので...
OpenGL

GLSLのデバッグ

GLSLをデバッグするのによいツールはないかと探してみたところ、 次のソフトウェアが見つかりました。 glslDevil shader maker これらについて書いてみます. ■ glslDevil 見た感じは、これが本命となりそうです。 手元で試してみたところ、OpenGLのAPIのトレースは行ってくれるのですが、 シェーダーのデバッグというのが行えませ...
プログラミング

shlwapi関連の罠

ファイルパス操作関連のAPIで便利なshlwapiがあります。 しかし今回はこれの操作で思いの外、はまってしまった。通常CreateFile等では、ファイルパスに""の代わりに"/"が設定されてもファイルを開くことが出来きます。 しかしながら、shlwapi系では、""で設定されていないと正常に動作できないという。 当然ながら、ファイルパスの区切りは、""で...
OpenGL

glGetActiveUniformの挙動 -その2-

先日の日記に書いたglGetActiveUniformの件についての続報です。早速辞書順に並ばない結果を取得できてしまったので、 やはり名前アクセスしたいときには辞書順ソートを自前でいれておくべきです。 (ユーザーの勝手な)思いこみは危険。
DirectX

D3DPOOL_MANAGEDのデータ保存先について

D3DPOOL_MANAGEDについて。 どうやら生成元となったバイナリデータ列はユーザー空間に置かれる模様。そんな挙動のため、結局のところは使用メモリがどんどん増えていくように見える。 仮に256MBほどテクスチャがあったとすると、このフラグ付きで送った場合には結局メインメモリにも同じ容量だけメモリを使われていることになってしまう。 また先日作業用のメモリ...
DirectX

テクスチャとサンプラーステートの関係

テクスチャとひとことで言った場合、この中には2つの要素が含まれていると思います。 1つは、ポリゴン表面に貼りたい画像のデータ。 そしてもう1つは、その画像に適用するフィルタ設定やUV設定といったの各設定情報。このうち後者はテクスチャフィルタやラッピングモード(アドレッシングモード)とも言われるため テクスチャの情報としてまとめられてしまうことが多いと感じます...
DirectX

CPU書き換えテクスチャ転送

DirectX9で、CPU上でごりごりとテクスチャ処理して VRAMに転送し、普段使うのはその転送後のテクスチャという方式を考えてみました。CPU上のテクスチャは D3DPOOL_SYSMEMで作り、 VRAM上のテクスチャは D3DPOOL_DEFAULTで作るという方法です。 この転送には、IDirect3DDevice9::UpdateTexture ...