2


私は一般的に.netプログラミング、特にWindows Phone 7を初めて使用します(私はJavaの人です)。
大学で、半拡張現実モードを備えたWindowsPhone7ワークショップのアプリケーションを作成しています。(win-pho7ではカメラフィードが許可されていないため、半ば)。
主に、ピッチ、ヨー、GPSの変更(サブスクライブ)の結果として、背景(カメラフィードである必要があります)全体にさまざまな画像のオーバーレイをレンダリングする必要があります。
XNAを使用する必要があるかどうかを理解しようとしています。これは、グラフィックスを要求するタスクのように思われ、XNAの目的であると説明されたためです。または、XNAを使用して開発するのが少し簡単なSilverlightを使用できます。 draggabaleコントロールとすべて。
それ以来、私の質問がうまくいくことを願っています。そうでない場合は、質問してください。さらに詳しい説明を提供します。

おかげで、
Ittai
Update:
上記のイベントに基づいて再レンダリングされる約20の2D画像をレンダリングすることが、Silverlightで処理できるものであるか、xnaが必要かどうかを主に理解しようとしています(グラフィックスの面で要求が厳しすぎるため) ?
誰かがこれらの問題の経験を持っているなら、私は聞きたいです。
最終更新(願わくば):
私が懸念している主なことは、画面の更新を処理するSilverlightの機能です。
これは拡張現実アプリケーションであり、ユーザーが電話を動かすたびに、オーバーレイされた画像を調整する必要があるため、複雑なことは何もありません。数ピクセルオフセットを上下/左/右に動かすだけですが、まだやるべきことがあります。
これらの小さいながらも頻繁な変更を画像に適用しようとすると、問題が発生するのではないかと心配しています。そして、これらは2つの異なる実装パスであるため、これが時期尚早の最適化とは見なされないと思います。
簡単に理解できると思いますが、私はむしろSilverlightを使用したいのですが、それを処理できるかどうかはわかりません。
すべてのアップデートを読んでくれてありがとう、
Ittai

4

5 に答える 5

2

私も同じ疑問を持っています。コードのレベルが高いため、WPF/SilverlightはXNAよりも優れていると思います。そこにはたくさんのコントロールがありますが、XNAにはありません。私は実際にWPFでゲームを作成しています。しかし、私はもっと前進しなければなりません。このリンクはあなたを助けるかもしれません: WPFはXNAと比較してどのような制限がありますか?

レンダリングでより高いパフォーマンスが必要になると思われる場合は、XNAを使用することをお勧めします。

于 2010-12-10T18:57:49.783 に答える
2

個人的には、XNAに固有のものが必要でない限り、Silverlightを選択します。

XNA固有の機能は次のとおりです。

  • 3D画像のレンダリング
  • ゲームループで実行することは理にかなっており、(時折発生するユーザーイベントに直接応答するのではなく)常に画面が変化します。
  • 多くのカスタムのきめ細かい画像操作を行う必要があります。

これは、XNAが目的のように見える最後のものですが、事前定義された画像またはポリゴンをオーバーレイするだけの場合は、Silverlightを使用します。

オーバーラップが多く、画像が大きくない限り、画像の数は問題になりません。

免責事項(潜在的なバイアスを考慮して検討する必要があります):XNAよりもはるかに多くのSilverlightの経験があります。XNAが多く、Silverlightの経験が少ない人がこれを異なって見たとしても、私は驚かないでしょう。

于 2010-12-10T18:54:17.000 に答える
1

どちらを使っても2D画像を操作できると思います。どちらにもこれが可能なAPIがあり、どちらもリソースに制約のあるデバイスで発生するパフォーマンスの問題に対処できます。

あなたが見ることができるのは、あなたが使いたいと思うかもしれないテーブルにそれぞれがもたらすユニークな機能です。

Silverlightは、コントロールをテーブルにもたらします。ユーザー入力を取得して画像以外のものを表示する場合、これは重要な考慮事項になる可能性があります。現状では、XNAは、この穴を埋めるためにコミュニティが開発したサポートを取得し始めたばかりです。

XNAは、3DグラフィックスAPIを提供し、ベクトル、行列、平面、光線、境界タイプ、3D空間の交差など、グラフィックスを多用するアプリケーション(ゲームなど)でよく行われる数学計算をサポートします。

また、現在のスキルセットを調べて、どちらが学習曲線を短くするかを確認することもできます。

Javaの経験は、XNAよりもSilverlightに似たプラットフォーム機能(UIコントロールなど)を使用したものだと思いますが、それは前提条件です。

私がUniにいたとき、グラフィックスAPIをサポートせずにCを使用してテクスチャとレイトレーシングを使用して2D画像に3Dオブジェクトのレンダリングを実装しましたが、Javaでも同じことができた可能性があります。この種のプロジェクトは、XNAのようなAPIのサポートがあればはるかに簡単でした。

編集:最後の更新へのWRT、これらの種類の変換は、XNA APIを使用して行われたテクスチャアニメーションがgpuスレッドに渡されるのと同じように、silverlightを使用してレンダリングスレッド(gpu)で処理できます。あまりにも遠くに飛び込んだ後、驚きにぶつからないことを確認するために、最初に画像アニメーションのパフォーマンステストを行うことをお勧めします。

気が向いたら、XNAを使用してデモを複製し、複数のアニメーションを開始する効率に顕著な違いがあるかどうかを比較して確認できます。個々のアニメーションは、同じように実行されると確信していますが。

于 2010-12-10T23:47:30.137 に答える
1

私は以前の回答と「時期尚早の最適化」のあなたの評価に同意します:

  1. Silverlightは、必要なことを実行できる以上の機能を備えています。デバイス上で、グラフィックスを使用して60FPSを実行することを確認しました。
  2. XNAは、2Dではなく3Dグラフィックスで優位に立つでしょう

注意すべき重要なポイント:

  • サイドにFPSカウントがあると思います。しかし、そうだとしても、後で実際の電話で使用できるデバッグノード用に独自のものを配置することで利益を得ることができます。これにより、レンダリングの速さをすぐに感じることができます
  • キャンバスでは必ず「 BitmpaCache 」を使用してください。詳細については、こちらを参照してください: WP7パフォーマンスのhttp://www.andybeaulieu.com/Default.aspx?EntryID=196&tabid=67およびこちら:(同じドメイン)/Home/tabid/67/EntryID/144/Default.aspx onビットマップキャッシング。
  • 「ピッチ/ヨー」APIを試して、それらに関する情報を検索し、それらのしきい値について検索します。それらから取得するデータはおそらくあまり正確ではないので、Silverlightのパフォーマンスではなく、この領域についてもう少し考えてみてください:)
  • GPSの更新が大いに役立つかどうかはわかりません。おそらく、粗すぎるからです。

幸運を!

Eyal

于 2010-12-12T14:23:28.033 に答える
0

開発時間に関しては、Silverlightはより高速で生産性が高くなります。xnaを使用する場合は、Silverlightですぐに提供されるコントロールまたは機能の実装に多くの時間を費やします。

パフォーマンスの面で。XNAは、より多くの制御とより良いパフォーマンスを提供します。

それらを一緒に混ぜることもできます。私はwp7ゲームを開発しました。これは、Silverlightよりもはるかに簡単なため、オーディオを処理するためにXNAAPIを呼び出します。

最善の解決策は、Silverlightを使用してアプリを作成し、必要に応じてXNAapiを呼び出してよりグラフィックを多用する要件を処理することだと思います。

于 2010-12-10T19:56:55.297 に答える