プロが教える店舗&オフィスのセキュリティ対策術

OpenGLやDirect3Dなど3Dグラフィックスライブラリについて質問させてください。

Programmable Shaderの時代になり、今や固定機能APIは廃止され、OpenGLでもDirect3Dでも
シェーダープログラム無しにテクスチャも張れなくなってしまいました。

シェーダーは自由に使えて便利な判明、やはり用途によっては非常に面倒さを感じてしまいます。

この時代、Windows上で固定機能APIのようなレベルのライブラリで簡単にHWアクセラレーションの効いたGPUレンダリングを行うには、どのような手法がありますでしょうか?

- ソフトウェアレンダリングのライブラリを使う
- Direct3D9のインターフェースを使う

以外の方法論でアドバイスをいただけたらと思います。

個人的にはWPFがこの用途に使えるのかと思っているのですが、WPFの
経験がなく自信がありません。

よろしくお願いします。

A 回答 (1件)

WPFだけだと複雑なメッシュの描画が大変なので、XNAを組み合わせる手もあります。

XNAはクロス プラットフォームなゲーム開発用ライブラリですが、Windows限定に絞ればWindowsフォームやWPFと連携することもできるので、3Dグラフィック描画コンポーネントとして使うこともできます。
XNAはデフォルトのコンテンツ パイプラインが.xファイルや.fbxファイル(ただしアニメーション データを含まない)に対応していて、モデルデータのロードが非常に楽になっています。さらにメッシュを非常に短いコードで描画することができる、旧固定機能のようなBasicEffectを備えています。BasicEffectに不満が出てきたらカスタム シェーダに切り替えることもできます。

・Windowsフォーム + XNAのサンプル:
http://blogs.msdn.com/b/ito/archive/2008/01/17/x …

・WPF + XNAのサンプル:
http://sorceryforce.com/xna/tips_xnaonwpf.html

・XNA BasicEffectのサンプル:
http://sorceryforce.com/xna/tips_basiceffectmate …

ただ、XNAはDirectX SDK同様、かなりバージョンによってAPIセットの変化が激しいので注意が必要です。
なお、WPFもXNAも、Direct3D 9上に構築されているので、Direct3D 10以降の機能は直接使えません。
    • good
    • 0
この回答へのお礼

syghさん

とても詳しいご回答ありがとうございました。

XNAという手は考えていませんでしたので、とても参考になりました。

ただ
>なお、WPFもXNAも、Direct3D 9上に構築されているので、Direct3D 10以降の機能は
>直接使えません。
なんですよね。

シェーダ前提のOpenGL ES2.0ベースにもかかわらず、WebGLではGLGEやSceneJSといったフレームワークが充実しているようです。シェーダーで書くときも、固定機能的APIで書くときも最新の同じ基盤上というのは、いろんな意味で安心感がありますね。

デスクトップアプリケーションでは、こういったシェーダー上のフレームワークのようなものはないんでしょうか?

お礼日時:2011/02/05 21:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!