DirectX

シェーダーリフレクション [DirectX10]

シェーダーの中身がどのようなものが詰まっているかを取得するための方法です。 なかなか情報がなくて大変でした。 やりたいこととしては、シェーダーのバイナリファイルから どのような変数およびデータ型がどの位置に存在するのかと知る方法となります。D3DX9には存在していたID3DXConstantTableのようなものを D3D10ではどうやるかという感じになるで...
vmware

ホストオンリーネットワーク

いろいろとドメイン関連の実験をしていて、 閉じたネットワークを構築したかったため、ホストオンリーネットワークの機能を使用した。 ただ、ゲストとホストの1:1対応であれば何も考えずに使えるのだけど、 ゲスト間で通信し、なおかつドメインのようなDHCPやDNSを動かしているようなときには、通常のままではうまく動かない。 なぜならば、vmwareが提供しているDH...
サーバー構築

ドメインサーバーを2003からWin2008R2へ

2003R2で構築しているドメインに、2008R2のサーバーをメンバーサーバーとして追加して、その後昇格させる方向でドメインサーバーのアップグレードを図ってみた。 ■メンバーサーバとして追加 まず、サーバー構成マネージャでドメインサーバー用の設定をした後で、 dcpromoを実行したところ、以下の失敗メッセージが出てきました。 「このActive Direc...
vmware

VT-d と ESXi と

Intel Core i5をVT-d目的で購入。 VT-dを使える環境で ESXiでPCIパススルーするために。 しかしながら、vSphere Clientで確認してみても、 ホストが対応していないと出てくる。 原因が分からずにいろいろと調べた結果、以下のことが分かった。 VT-dを使うためには、CPUだけでなくBIOSも対応している必要がある。 これが盲点...
OpenGL

レンダーバッファとレンダーテクスチャ

Framebuffer Objectで設定するレンダーバッファとレンダーテクスチャについて。どこかの記載で、レンダーバッファのほうがレンダーテクスチャよりも 高速に動く余地があるということが書いてあった。 これは以前の日記でも書いたとおり。ここでFBOにはレンダーテクスチャとレンダーバッファとそれぞれ設定するための関数が用意されているが、 同時に設定したらど...
OpenGL

FramebufferObject挙動違い -その3-

今回は今までの総合しての解決編になります。 デプスとステンシルを1つのテクスチャでOKとし、 さらにNVIDIAとAMDと双方で問題なく動く、という解法になります。 ■実装コード やはりテクスチャの作成がポイントでした。 glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8_EXT, TEXTURE_WIDT...
OpenGL

FramebufferObject挙動違い -その2-

AMD製グラフィックボード時でも正常動作できる組み合わせを発見しました。テクスチャの生成時がポイントです。 ■解決方法(AMDオンリー) glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT16, TEXTURE_WIDTH, TEXTURE_HEIGHT, 0, GL_DEPTH_COMPONENT, GL_...
OpenGL

FramebufferObject挙動違い

NVIDIAとAMD*1でFramebufferObject使用時に若干動作が異なる模様です。 *1 : ATIブランドを廃止して、AMDになっていくとのことなので、今後AMD製RADEONと表記したりすることにします ■発生現象 NVIDIA製グラフィックボード時は、デプステクスチャをセット時にでも デプス判定を行って描画することができる。 しかしながら、...
DirectX

DirectX vs OpenGL テクスチャ編

DirectXとOpenGLとでテクスチャに関していろいろと違うので ここでそれらについて書いてみたいと思います。 ■用語 DirectXでは、テクスチャアドレッシングモードとテクスチャラッピングモードがあります。 OpenGLでは、テクスチャラッピングモード だけです。 しかも両者でそれぞれの言葉が意味しているものがずれており、 DirectX::アドレッ...
DirectX

続・ATIドライバの謎?

Direct3D9: (INFO) :Failed to create driver indexbuffer を調べてみた。 海外のForumでは割とよくあがっている話っぽい。このメッセージが意味するところは、 IndexBufferをVRAM上に作るときに、VRAM上に作れなかった、という話になるっぽい。 あとは、ドライバがハードウェアのインデックスバッフ...