OpenGLやDirect3Dなど3Dグラフィックスライブラリについて質問させてください。
Programmable Shaderの時代になり、今や固定機能APIは廃止され、OpenGLでもDirect3Dでも
シェーダープログラム無しにテクスチャも張れなくなってしまいました。
シェーダーは自由に使えて便利な判明、やはり用途によっては非常に面倒さを感じてしまいます。
この時代、Windows上で固定機能APIのようなレベルのライブラリで簡単にHWアクセラレーションの効いたGPUレンダリングを行うには、どのような手法がありますでしょうか?
- ソフトウェアレンダリングのライブラリを使う
- Direct3D9のインターフェースを使う
以外の方法論でアドバイスをいただけたらと思います。
個人的にはWPFがこの用途に使えるのかと思っているのですが、WPFの
経験がなく自信がありません。
よろしくお願いします。
No.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以降の機能は直接使えません。
syghさん
とても詳しいご回答ありがとうございました。
XNAという手は考えていませんでしたので、とても参考になりました。
ただ
>なお、WPFもXNAも、Direct3D 9上に構築されているので、Direct3D 10以降の機能は
>直接使えません。
なんですよね。
シェーダ前提のOpenGL ES2.0ベースにもかかわらず、WebGLではGLGEやSceneJSといったフレームワークが充実しているようです。シェーダーで書くときも、固定機能的APIで書くときも最新の同じ基盤上というのは、いろんな意味で安心感がありますね。
デスクトップアプリケーションでは、こういったシェーダー上のフレームワークのようなものはないんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Illustrator(イラストレーター) Illustrator『リアルタイムプレビュー』機能をオフにする方法 1 2023/03/05 20:38
- その他(ソフトウェア) F-BASICで計算中の実行が中途で勝手に止まり、大変困っています。 2 2023/03/02 16:15
- マウス・キーボード PCのタッチ画面とタッチペンの対応 2 2023/01/14 16:01
- VPN フリー wi-fi は安全ですか 自宅での wi-fi VPNを使用したら良い? 2 2022/05/31 04:12
- iPhone(アイフォーン) 10万円以上するスペックのスマホが必要になるのはどんな人?(ビデオカメラ機能除く) 6 2023/08/21 15:03
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- BTOパソコン 下記の条件に合ったパソコンでオススメあれば教えてください。 ①ラップトップで持ち運び型 ②薄くて軽い 1 2023/03/02 13:15
- 投資・株式の税金 サラリーマン投資家(海外FX)の節税目的のマイクロ法人設立について 2 2022/09/19 18:37
- ノートパソコン Windows 10 動作改善方法 6 2023/04/26 22:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Google ColaboでGUI作成
-
本格的なGUIを作るのにおすすめ...
-
VC++でUSB通信がしたいのですが
-
Windows Media Playerを開くと...
-
マイコンSHでSQRT(平方根)が...
-
iCloudフォトライブラリ内の画...
-
scipy っていうのをいれようと...
-
Dreamweaverのライブラリが反映...
-
VC++2005であるヘッダファイル...
-
SSE命令やUSBドライバ作成ってC...
-
同じアカウントでKindleを共有...
-
勝手に別の音楽が流れるアマゾ...
-
unix-c と linux-c の違いは?
-
String^の^自体が何を意味して...
-
VB.NET とドットNET(.NET...
-
東芝新製品に採用されている
-
C++とVC++の違いについて
-
簡単なシューティングゲームの...
-
VisualBasicプログラミング技術...
-
なぜHTMLのソースコードが無料...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ps+のフリープレイでDestiny2の...
-
Windows Media Playerを開くと...
-
本格的なGUIを作るのにおすすめ...
-
python urlopen error について...
-
Google ColaboでGUI作成
-
scipy っていうのをいれようと...
-
システムコールと標準ライブラ...
-
ライブラリ作成時のグローバル...
-
強化学習の環境作成、AI。自動...
-
プログラマーで「使えない人」...
-
unix-c と linux-c の違いは?
-
C++ 標準ライブラリの実際の中...
-
LIBCMT.LIBをリンクしてコンパ...
-
gcc に mktemp 危険と怒られ...
-
C# EXCELセルの入力規則設定に...
-
マウスのクリックを自動で
-
Dreamweaverのライブラリが反映...
-
静的ライブラリから静的ライブ...
-
DLL読み込み時エラー
-
outp関数について
おすすめ情報