WPF と 3D
3D が WPF を殺す
『IT戦記』より.
そもそもWPFとは?WPFで何ができるのか? - 春日井良隆
飲み会の時にいらっしゃった竹内洋平様にもいろいろ教えていただきました。最近はほとんどの作業がブラウザで済んでしまいますが、想定している使われかたは、どんなものがありますか?
- 3D なコンテンツ
- バリバリ 3D なゲームもぜんぜん作れる
うーん,Vista のマーケティングでもそうでしたが,未だに WPF も 3D との抱き合わせ販売から逃れられませんか…… 以前も書きましたが,世間で思われているほどには,少なくともいわゆる 3D 系のプログラマが期待すべき程には,WPF は 3D が得意ではないと思ってよいでしょう.WPF を自社でクロスプラットフォーム化することは考えていますか?
有名な WPF デモである『ドミノ軒』の開発日誌でも同様の指摘があります.また,この辺りは誤解の元になりそうなので予め書いておきますが,DWM や WPF は,最新の 3D ハードウェアの機能を 100 % 引き出すわけではない,と私は考えています.PIX for Windows で見た WPF の動作は,動的頂点バッファと大量のテクスチャによる力業の描画でした*2.アルゴリズム的には,10 年前のゲームで既に確立していたものをブルートフォース化したものと言えるでしょう*3.しかし,それでも今までに比べれば遙かにレスポンスタイムが向上し,スケーラビリティが改善する,というのが私にとっての Vista の意義です.
また,高橋さんと川西さんの執筆された『XAMLプログラミング WPFアプリケーションの概要と開発』も,変な期待を煽らないように配慮したあとが見えます.しかし、最初のテストの段階で、WPFの3Dコントロールの簡単さは、パフォーマンスとのトレードオフだという事実に突き当たります。ゲームで実現しているようは複雑な3D描画はほぼ不可能だと。
しかし注意してほしいのは、WPFは高性能グラフィックス専用のAPIではなく、ユーザーインターフェイスを作成するためのAPIだということです。これは、WPFは高速な3Dゲームや高品位なビデオ再生アプリケーションを開発するためのものではないということを意味します。
- 作者: 高橋忍,川西裕幸
- 出版社/メーカー: ソフトバンク クリエイティブ
- 発売日: 2007/04/07
- メディア: 大型本
- 購入: 2人 クリック: 138回
- この商品を含むブログ (24件) を見る
WPF がリアルタイム 3D に向かない 10 の理由
一瞬そんなものを書いてみようかと思いましたが,3 つ以上の数を数えるのが面倒なのでまた今度. しかし WPF に限らず,最近世間向けに語られている「GPU の機能をフルに使う」ことと,実際に現場の開発者にとっての「GPU の機能をフルに使う」がどんどん乖離していることがどうも気になっています. (追記)いや,WPF 自体はリアルタイム (というか高 FPS なタイムライン的) 処理には向いていて,いまどきの GPU のフィルレートと巨大な VRAM を力業で振り回した結果 2D 処理との相性は抜群に良いです.ただ,3D の世界はまた別の最適化手法でスーパーサイヤ人化するのが当たり前なので,そういうのには向いてないですよと.サーバサイドで WPF は使える?
結局のところ,サーバサイドな人が集まるならこんな感じの話でも十分立つ瀬はあるんじゃないでしょうかねぇ? ただまあスレッド絡み (STA 絡み) の問題はあるかも知れないので,その辺は要調査ですが. 以下適当にでっちあげた脳内 PowerPoint 箇条書き.とまあこんな感じでアウトラインを書くと,それが裏で WPF によって処理され PowerPoint 風のコンテンツになって出てくるとか.(というメタな例)
おまけ
とりあえず『InputMan for WPF デモンストレーション (ClickOnce)』みたいなのから,まったり行くのがいいんじゃないかなと. 結構おもしろいのでおすすめ. http://www.grapecity.com/japan/demo/wpf/