【Xbox360】 XNA Game Studio その4 【C#】at GAMEDEV
【Xbox360】 XNA Game Studio その4 【C#】 - 暇つぶし2ch715:ひげねこ ◆oxtErU/kVM
08/03/03 17:34:28 Q5EkCE5+
>>706 こんな感じです。

// 抜きスプライトを描画
spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState);
GraphicsDevice.RenderState.DepthBufferEnable = true;
GraphicsDevice.RenderState.ReferenceAlpha = 128;
spriteBatch.Draw(...)
spriteBatch.End();
// 半透明のスプライトを描画
spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState);
GraphicsDevice.RenderState.DepthBufferEnable = true;
GraphicsDevice.RenderState.DepthBufferWriteEnable = false;
spriteBatch.Draw(...)
spriteBatch.End();
// Additveのスプライトを描画
spriteBatch.Begin(SpriteBlendMode.Additive, SpriteSortMode.Immediate, SaveStateMode.SaveState);
GraphicsDevice.RenderState.DepthBufferEnable = true;
GraphicsDevice.RenderState.DepthBufferWriteEnable = false;
spriteBatch.Draw(...)
spriteBatch.End();
// メニュー部分を描画
spriteBatch.Begin();
spriteBatch.Draw(...)
spriteBatch.End();

抜きテクスチャを描画する時にZバッファと、Alphaテストを使うのがコツです。こうするとAlpha値が1のものだけが
描画されると同時にZバッファも更新されるのでちゃんとしたdepthを指定すれば順不同に描画しても問題ありません
次にの半透明部分ですが、前の描画でZバッファには情報が入っているので既に描かれているものより手前のピクセルしか描画しません。
Zバッファは参照するけど、更新はしないというのがミソです。続くAddtiveの部分も一緒です。

これで見た目上一番問題のある抜きスプライトとそれ以外のスプライトの前後関係は正しくなります。ただし、半透明同士が重なったとき
の前後関係はおかしくなりますが、見た目上の問題は大幅に減るはずです。

716:ひげねこ ◆oxtErU/kVM
08/03/03 17:44:53 Q5EkCE5+
>>705
確かにBasicEffectはFogパラメーターを頂点シェーダーで出力していませんが、独自のFogパラメータを持っています。
Fogパラメータを出力するように変更することができますが、Xbox360にはFog関連のレンダーステートが無いので、BasicEffectを
使う場合はそのパラメーターを変更することをお勧めします。

>>707
文面から察するにSpriteFontを使っていないように見えますが、そうであればSpriteFontを使うことで文字列描画できます。
このスプライトフォントには表示につかう文字コードを指定する必要があり、デフォルトでは英文字が追加されています。
それ以外の文字を表示するには以下が参考になります。
URLリンク(blogs.msdn.com)
URLリンク(blogs.msdn.com)

>>711Effect Fileを書くとき入力支援機能があると楽なんだが3.0に搭載してほしい
これはインテリセンスが動作して欲しいということでしょうか?確かにあると便利なので要望として出しておきます。

717:名前は開発中のものです。
08/03/03 18:05:24 S1J4GBTq
RenderTargetでColor.Singleのフォーマットが作れないんですけど、
作成できるかチェックする方法ってあるんですか?

718:名前は開発中のものです。
08/03/03 18:18:16 ST1FZc0o
>>714
>例えば、XAMLとかをそのまま正直にランタイムで処理すると時間が掛かるので、GPUフレンドリーなデータ構造に変換したり、
>ツール内でベクター使いまくって作ったボタンイメージとかをコンバート時にビットマップに変換してくれたりといった機能ですね

なるほど。

そういったパーツを多関節でつなげたり、
スキニングみたいにトランスフォームしたりでアニメーションさせたいですね。
ってその程度であればスプライトで代用できるんで、拡大縮小で劣化を防ぐ以外にはあまり意味がないような。

そういうのをリアルタイムでやりたいんで、
グラフィックスパスをポリゴン化するようなサンプルが欲しいなぁと。

719:名前は開発中のものです。
08/03/03 18:51:45 zo2Ibxr1
Win2kで動くように…
無理か

720:ひげねこ ◆oxtErU/kVM
08/03/03 19:13:41 Q5EkCE5+
>>717
GraphicsAdapterクラスのCheckDeviceFormatを使います。

bool canUse = GraphicsDevice.CreationParameters.Adapter.CheckDeviceFormat(
graphics.GraphicsDevice.CreationParameters.DeviceType,
GraphicsDevice.DisplayMode.Format,
TextureUsage.None, QueryUsages.None, ResourceType.RenderTarget, SurfaceFormat.Single);

この戻り値がtrueなら使えることになります。

>>718
Triangulationサンプルということですね。ここら辺の処理は他のグラフィクス処理に比べると地味ですが、あるとなにかと便利なんですよね

>>719
Win2Kがサポート外なのはXNAが依存しているものの問題なんで、厳しいですね。


明日は月曜日なので、今日はもう落ちます。ではでは


721:名前は開発中のものです。
08/03/03 19:48:20 S1J4GBTq
>>720
> GraphicsAdapterクラスのCheckDeviceFormatを使います。
ありがとうございます。945GMで無事にfalseが帰ってきましたorz
色々なサンプルを見るだけでも影のハードルは高いっすね・・・。

>>716
> これはインテリセンスが動作して欲しいということでしょうか?確かにあると便利なので要望として出しておきます。
個人的にはシェーダーでリファクタリングが使えるようになって欲しいですね。
同じようなシェーダーを書き換えたり、コピペしたりするときに欲しいなと思います。


722:名前は開発中のものです。
08/03/03 20:07:26 EdvlV9oX
XNAのインストールから会員の入会方法、XBOXで動かすのを具体的に解説してるページってないですか?

723:名前は開発中のものです。
08/03/03 20:35:22 aH5g85ZF
>>712

724:696
08/03/03 21:12:34 vsU7ZvID
>>714
おお、ちゃんと再生できました!!
ありがとうございます

725:名前は開発中のものです。
08/03/03 22:33:54 CwLMLFGc
>>722
URLリンク(xna-studio.jp)
スターターのダウンロード
ゲームを動くようにする
メンバーシップへ参加
スターターのダウンロード
パソコンとの接続設定
ゲームを動くようにする
Xbox 360 へ展開する
ゲームサンプル

てあるから読んでみたら?

726:名前は開発中のものです。
08/03/03 22:54:32 EdvlV9oX
その人と一緒にがんばってみます

727:名前は開発中のものです。
08/03/03 23:59:09 b9qJgCmK
スレ違いで恐縮なんですけども、win向けのXNAバイナリがどれもこれも動作しません。
・(問題の環境がVistaなので).Net2.0再頒布可能パッケージインストーラは蹴られる
・DirectX End-User Runtime Web Installerは「最新です」と言われる
 (DxDiagも正常、AeroGlass環境なのでGPU要件は問題無い、筈)
・Microsoft XNA Framework Redistributable 2.0はインストール済
・イベントビューアによると何らかのコンポーネントが足らないか壊れている、らしい

で、ここからが要望なんですが、もう少しエラーメッセージ周りをどうにかするか
(実際に何が欠けているかが解らないので、どれを疑ってよいのか解りません)
XNAバイナリを動作させる為の必須コンポーネントのAll-in-oneパッケージのようなもの
を用意していただけるとありがたいのですが。

728:名前は開発中のものです。
08/03/04 00:47:09 sCnHkz0D
おちんちんびろんびろ~ん

729:名前は開発中のものです。
08/03/04 01:03:46 s/9UoCnb
それができたら苦労しない
そもそもPCでXNAやること自体間違っとる
箱でやれよ

730:名前は開発中のものです。
08/03/04 08:40:03 RsF5/lls
>>727
CRT8SP1だったか.NETFX2.0SP1だったかが足りにゃい

731:名前は開発中のものです。
08/03/04 09:20:55 s/9UoCnb
こんな得体の知れないランタイム要求するなんて
Vista買った初心者は全員XNA挫折だな

732:名前は開発中のものです。
08/03/04 10:19:39 j0/ST36S
XNA End-User Runtime Web Installerが必要かもな。
・DirectXをチェックしてインストール
・.Net Framework 2.0 SP1をチェックしてインストール
・XNA Framework をチェックしてインストール
このぐらい自動でやってもらいたいものだ。


733:名前は開発中のものです。
08/03/04 10:44:53 s/9UoCnb
無理だな
できるなら既にやっている
もうXNAが出てから何年も経ってるんだぞ

734:名前は開発中のものです。
08/03/04 10:50:42 OToBjVMK
ベータ含めて1年半だろ

735:名前は開発中のものです。
08/03/04 11:30:35 dikiCYmh
3.5入れさせとけ

736:名前は開発中のものです。
08/03/04 12:06:08 RsF5/lls
>>731
何が知れないのか知らんがCRTは要するにCランタイムでVS2005で
開発されたほぼ全てのアプリに必要。

VS2005SP1で更新されたんだが今いち内部ですら認識されてなさげ

つか見てみたがこれXna redistパッケージのバグと言ってもいい気がしてきた。

CRTだけで大丈夫なら同封すべき。NETFX2.0SP1必要ならNotWinFx2Actionの
カスタムアクションが間違ってる。とりあえず依存関係抽出してパッケージ
作るぐらいはして下さい>これつくった人

WiX使ってるようだけどこれは詳しくないと火傷するぽ


737:名前は開発中のものです。
08/03/04 12:33:49 Q04dOBkw
>>575のリンク先の原因と同じかな?
ちゅーかこれXNAに限らずC++/CLIアプリを配布する時に気をつけた方が良いなぁ。

738:名前は開発中のものです。
08/03/04 12:45:45 ij7C/RJ0
プレイさせるだけでも一苦労だな

739:名前は開発中のものです。
08/03/04 12:54:30 NA3DgFZP
さっさと>575の「この投稿は参考になりましたか?」の「はい」を押す作業に戻るんだ。

740:名前は開発中のものです。
08/03/04 13:02:16 ozuNs0rT
不毛なインストール作業を強いる時点で
ゲームプレイ環境としては失格だな

741:名前は開発中のものです。
08/03/04 13:24:57 RsF5/lls
>>738 >>740
その辺パッケージで吸収せなならんのにというそれ以前の問題っつーか
これつくったやつと通したQA出てこいっつーか…


742:名前は開発中のものです。
08/03/04 13:26:36 s/9UoCnb
MDXと違って金が入るからC#もXNAもこの先生きのこると思う人も多いかもしれないが
その期待をことごとく裏切るのがM$流
既にGDKなんて出してるくらいだからな
箱の寿命かDX10世代が来るまでの命だろ

743:名前は開発中のものです。
08/03/04 13:27:23 AVay9o0V
途中送信しかけた…
>>740
文句は言うのは自由だが、非生産的な文句は誰も得しないからやめれ

744:名前は開発中のものです。
08/03/04 13:31:48 dikiCYmh
GDKはサードパーティー製品の制限版だぞ

745:名前は開発中のものです。
08/03/04 13:42:19 s/9UoCnb
>不毛なインストール作業を強いる時点で
>ゲームプレイ環境としては失格

認識を持たせるという意味では生産的な意見だな

746:名前は開発中のものです。
08/03/04 14:09:42 ozuNs0rT
>>743
どうやら君の1bitの情報量も無い書き込みよりは生産的みたいだよ?

747:名前は開発中のものです。
08/03/04 14:11:24 6jZ5YXCn
>>745
かえって問題の本質をぼかしているだけだろ

748:名前は開発中のものです。
08/03/04 14:35:23 tkXnqvSo
この前のイベントが海外への良いアピールになっているといいなぁ
ひげねこ氏も積極的に動いてくれているみたいだし
要望を踏まえた3.0の成長に期待

あとは新機能が追加されてもそれを上手く使わせるサンプルが不足していることだと思う
ジオメトリインスタンシングのサンプルなんて複数のサンプルがごちゃごちゃしすぎて分かり難いし
スターターキットに至っては(ry

749:名前は開発中のものです。
08/03/04 14:38:21 du42uvgl
MSの開発ツールってドキュメントはMSDN Libraryに代表されるように非常にしっかりしてるんだが
サンプルが今ひとつな事が多いよな

750:名前は開発中のものです。
08/03/04 14:51:11 CujTJOWH
断片的な情報しかないのは仕様です。


751:名前は開発中のものです。
08/03/04 15:13:19 0b6eMKRw
翻訳何とかして欲しいなあ。
調べ物は英語でいいけど、パラパラ読みができん

752:名前は開発中のものです。
08/03/04 16:28:19 sCnHkz0D
おちんちんびろ~ん

753:名前は開発中のものです。
08/03/04 17:04:20 s/9UoCnb
戻らなくなるぞ

754:名前は開発中のものです。
08/03/04 17:23:51 sCnHkz0D
皮が伸びて被ったままになっちゃった・・・最初からだけど
つω;) ウッ・・・

755:名前は開発中のものです。
08/03/04 22:14:38 /QfDBMTz
>>728-729
wwwwwwwwwwwwww箱だとびろ~んできますか?wwwwwwwwwww

756:名前は開発中のものです。
08/03/04 23:08:18 mWxzbpcN
サンプルの充実と解説の和訳が欲しい
できればサンプルには、それを学ぶことでどのような知識が得られるのか、
落とす前に体系的にわかるようにして欲しい
基礎から応用まで


757:名前は開発中のものです。
08/03/05 00:02:31 G13W8xfV
2Dで、BoundingBoxとBoundingSphereを使って
矩形同士の衝突判定と、矩形と円の衝突判定をやっています。
ですが、矩形の方を回転させて、斜めになってる状態で判定する必要がでてきました。
そこでちょっと教えて頂きたいのですが、BoundingBoxを回転させる方法はありますでしょうか。
MSDNで探してみたつもりなんですが、そういうメンバは見あたりませんでした。
どうすればBoundingBoxを回転させて衝突判定させられるでしょうか。
それとも、回転する矩形の衝突判定する方法は提供されてなくて、
4点取って自分で衝突判定処理を実装しなければならないのでしょうか。
教えて頂けると助かります。よろしくお願いします。

758:名前は開発中のものです。
08/03/05 00:18:28 tt2IYbDX
>>757
ごめん、俺XNAは全然素人なんで正しい答えは返せないんだけど
元々矩形で当たり判定してるなら中身が回っても矩形的には無視
できるんじゃない?
中央の座標だけ揃えとくとか、そんなんじゃ駄目なんかな?

759:名前は開発中のものです。
08/03/05 00:35:26 iMklzerV
>>758
ええと、言いたいことが伝わってないかもしれません
ε=○□=3 と ε=□□=3
とやってたのを、
ε=○◇=3 と ε=□◇=3
とやりたい、ということです。

 /\○ ←当たってない
/  \
\  /
 \/
と、矩形の傾きで衝突してるか否かが変わってくると思います
で、BoundingBoxは原点に近い方の座標と遠い方の座標で値として持つので、
座標を傾けても、矩形の縦横の長さが変わるだけで傾きはないという認識です
で、もしBoundingBox自体を回転できなくても、BoundingBoxと傾き角度を引数とかで
渡してやれば衝突判定してくれるメソッドとかXNAで提供されてないかなぁと思いまして

760:名前は開発中のものです。
08/03/05 00:40:56 dCj5PHbb
おまえはBBの意味が分かっていない

761:名前は開発中のものです。
08/03/05 07:37:59 vf5nbNmt
>>759
XNAは知りませんが、普通2DのBBはAABBの一種で、座標軸に平行な矩形です。
回転するBBと円との当たり判定を行いたい場合、円の座標を変換して
AABB vs 円にしてから判定を行うとよいでしょう。
数学的に難しくは無いですが多少重いです。

762:名前は開発中のものです。
08/03/05 07:47:03 vf5nbNmt
訂正。
円の座標ー>矩形と円の座標


763:名前は開発中のものです。
08/03/05 08:17:04 iMklzerV
>>761
あーなるほど、円と矩形回転させてやって、軸に平行な矩形を作って、そちらと判定する訳ですね
矩形同士の衝突の場合も、片方の矩形は軸に平行になるようにして
あとは斜めになってる方の矩形の四点が、回転してない矩形に進入してるかどうか、ですかね?

764:名前は開発中のものです。
08/03/05 10:23:06 PKtFPGkc
759のようにもっと正確に判断したい場合
回転バウンディングボックス(OBB)と球の判定になるんだけれど
XNAのライブラリには含まれていないぽい

リアルタイム衝突判定本の中に説明とサンプルが含まれているので
自作するか誰かのコードを流用させてもらうのが良いかと

765:名前は開発中のものです。
08/03/05 12:13:04 wiI7nq2k
>回転バウンディングボックス(OBB)と球の判定になるんだけれど
>XNAのライブラリには含まれていないぽい

こういう中途半端なところがあるから嫌いだ。
物理エンジン書いたこともないような素人の算術ライブラリなんかのせるな。
自前で用意するからいいが、はっきり言って萎える。
依存箇所全て書き直しか?ふざけるのも大概にしろ。

766:名前は開発中のものです。
08/03/05 14:20:57 ptj03fcF
日本人がいかに完璧主義かがよく分かるスレだな。

767:名前は開発中のものです。
08/03/05 14:33:06 Cu5Bc2PE
少なくともこんなくだらないことで騒いでる奴よりは中の人の方が頭いいと思うよ

768:名前は開発中のものです。
08/03/05 14:35:13 x2y+3/wK
外人マッチョ「XNA初めてか?力抜けよ」

日本人「エ・・・、X、N、Aッー!」

769:名前は開発中のものです。
08/03/05 15:09:53 mPAG9DMI
URLリンク(xoops.peak.ne.jp)
中の人の頭の良さは別次元だからな。
>C# によるリテール版開発は、 Microsoft 自身が XNA 環境では XBOX360 コンテンツに課す要求クオリティレベルをクリアできないだろうと発言しています。

 そりゃ端からプロデビューして、C/C++ とインラインアセンブリでunreal engineも会社の経費で使い放題の奴らと
同じ事を考えろなんて無茶言うなよ。('A`)

770:名前は開発中のものです。
08/03/05 15:16:55 HhOx8svu
なんでもやろうとするからいけないんだ。
コンシューマーゲームって本来ハードスペックとの戦いだろ?
XNAも同じさ。XNAという仕様の中でいかにおもしろいもの作るかってことだ。
初心に戻って今のXNAでできることをやろうぜ?

771:名前は開発中のものです。
08/03/05 15:22:22 nSoZ+6/k
何か当たり前の事を書いてる記事だな。あぁ・・・そう・・・としか反応できんわ

772:名前は開発中のものです。
08/03/05 15:23:52 mPAG9DMI
>770
なんだよ。オマエ。 すげーエスパーだな。 俺の自作自演かと思ったぜ。
まーそう言う事だ。

773:名前は開発中のものです。
08/03/05 19:25:51 JIb0oR1t
>>768がじわじわくる

774:名前は開発中のものです。
08/03/05 22:01:40 iMklzerV
>>770
XNAは仕様じゃなくて手段だと思うな

775:名前は開発中のものです。
08/03/05 23:21:57 gnjL6vbU
>>771
2chの1レスを記事とか書いちゃうお前、嫌いじゃないぜ……

776:名前は開発中のものです。
08/03/06 01:06:36 T3j+VmAd
バイリニアフィルタとマルチテクスチャを使った草と土の綺麗な繋ぎ方ってどうやるんですか?
前から気になってはいたんですが、ポリゴンの分割とUVの微調整をしているのだと思っていました
DirectX7&8時代に使われた知られざる中級テクニック教えてください

777:名前は開発中のものです。
08/03/06 11:47:40 jWMG+kMJ
もしかしてMicrosoft.Xna.Framework.Game.dllってC++/CLIじゃなくてC#で書かれてる?
そのためにDLL分けてるのかな
そうだったからって別にどうでもいいんだけどやっぱりMSとしてはC++/CLIは
橋渡し言語としてしか使わない/使わせない方針なのかなあ

778:名前は開発中のものです。
08/03/06 14:22:02 L4hyp2ZA
むしろマーシャリング上の手抜き以外の理由でC++/CLIを使いたいって人が
意外と多いのが謎だけどな。そんなに新しい言語(C#)覚えるの嫌なのかしら。


779:名前は開発中のものです。
08/03/06 14:46:26 Xs46mVOD
オマエら幸せだな。
 人のソースとか読まないし。ボックス化とか聞いた事も無いだろう。

// position += velocity ;
// velocity *= frication;
position.x += velocity.x;
position.y += velocity.y;
position.z += velocity.z;

velocity.x *= frication;
velocity.y *= frication;
velocity.z *= frication;

こんなのでな、コメントアウトした行の3.8倍のスピードがでるんだぜ。

780:名前は開発中のものです。
08/03/06 14:50:18 a8Un48/x
VertexBufferとIndexBufferってビデオメモリに置いた方が高速なんだよね?
それってどうすればいいの?
Meshクラスはビデオメモリに作るようになってるの?
でもDrawIndexedPrimitiveってやってるよね?

781:名前は開発中のものです。
08/03/06 14:56:55 Xs46mVOD
これがよさげ、
URLリンク(creators.xna.com)
vertices[0].SetFrequencyOfIndexData(instanceTransforms.Length);
あたりを気を付けて読むと良いよ。

っていうか >683が既出。

>779 コメントアウトした方に戻すと。 0.26倍まで低下って書いた方がオマエらのレベルに合うな。

782:名前は開発中のものです。
08/03/06 14:57:02 jWMG+kMJ
>>779
それボックス化全く関係ないからw
演算子を実装するメソッド間の受け渡しが発生するから遅くなるだけ

783:名前は開発中のものです。
08/03/06 15:20:27 L4hyp2ZA
>>779
boxing覚えたてか?
上のコードが遅い原因は+=がop_Additionに変換されてVector3のビットコピーがx3発生。
さらにAdd(ref Vector3, ref Vector3, out Vector3)のようなメソッドを呼ぶにしても
jitのインライン条件が厳しすぎてやっぱりベタ書きの方が早い。
ってところまで書かないとお前勘違いしてそうだな。

>>780
何もしなけりゃビデオメモリにおかれてるよ。Drawうんたらは多分認識が間違ってる。

784:名前は開発中のものです。
08/03/06 15:35:09 Xs46mVOD
>それボックス化全く関係ないからw
さすがに解るよ。('A`)
俺の書き込みで、ボックス化と全く関係ない事に気付ない奴を連れてこいよ。

おまえらもうちょっと頑張れ。
問題はC#のILコードが糞だって事な事だろ。


785:名前は開発中のものです。
08/03/06 15:37:58 jWMG+kMJ
インライン展開される(ことがある)のはC#をILにコンパイルするときじゃなくて
実行時にネイティブコードにJITコンパイルされるときだぞ
それをいうならCLRが糞

786:名前は開発中のものです。
08/03/06 15:42:21 Xs46mVOD
>CLRが糞
すまんかった。
だけど C++/CILにはマクロがある Ok?

折角だから質問していく。
>何もしなけりゃビデオメモリ
ってDraw***Primitive系のメソッドでも良いのか?
mesh.Draw();が良いのはイメージできる。


787:名前は開発中のものです。
08/03/06 15:47:37 kWblePHM
>>779
つい最近、どっかで仕入れた知識をそのまま披露かw

788:名前は開発中のものです。
08/03/06 15:49:15 Xs46mVOD
>787
そういう事だ。
 C#初心者系のスレで、「効率を考える奴がC#をつかうなんてありえないよね」とか言われてきた。

789:名前は開発中のものです。
08/03/06 15:59:02 L4hyp2ZA
>>786
ModelMesh.Drawのことなら中でDrawIndexedPrimitiveが呼ばれてるだけだぞ。
てゆーかなんでジオメトリインスタンシングなんて紹介した?
ありゃカーネル<->ユーザーモードの推移を抑えて速度稼ぐものだから
>>780の質問のデータの配置云々はあんま関係ねーぞ。

>だけど C++/CILにはマクロがある Ok?
それを先に言え。だがプリプロセッサマクロごときの微妙な可読性/記述性を得るために
C#からC++/CLIにプロジェクト全体を鞍替えするのか?
残念だが、プロファイラでクリティカルな部分だけ探してベタ書きする方がなんぼかマシだ。

790:名前は開発中のものです。
08/03/06 16:12:14 Xs46mVOD
 ビデオメモリとDrawはVertexStream.SetSource()を見て、自己解決した気になってるが、
ビデオメモリに保存する事を狙ってやってるソースを見た気がしない。


...こりゃ、後から開き直るのがどうこう ってレスがつくんだな。
オマエらそれだけ解ってるのに、なんでC#つかってるんだ?
C#厨がマンセーしてると思って、やってきて釣られたようなもんだぜ。

>789
>残念だが、プロファイラでクリティカルな部分だけ探してベタ書きする方がなんぼかマシだ。
フォロー サンキュー。

791:名前は開発中のものです。
08/03/06 16:50:37 1SbOg85e
なんでって、、、Xbox360で動かす手段が事実上これしかないからだ

792:名前は開発中のものです。
08/03/06 19:33:22 a8Un48/x
例えば頂点の位置と色とテクスチャ座標をもった三角形をContent.Loadを
使わないでビデオメモリにVertexBufferとIndexBufferを自分で作成するにはどうすればいいのですか?

あと毎フレーム頂点の位置を(VertexShaderではなく)アプリケーションで変える
頂点をセットするような使い方のときはどういうふうにVertexBufferとIndexBufferを作成すればいいのでしょうか?

793:ハコ太郎
08/03/06 19:49:27 rAQJhDRv
リファレンスに載ってなかったっけ

794:ハコ太郎
08/03/06 19:50:27 rAQJhDRv
見当違いならすまん

795:名前は開発中のものです。
08/03/06 20:42:21 L4hyp2ZA
>>792
答えたはずだがな・・・何の反応もなくしかも質問内容増えてるし。ちょっとは自分で調べたか?

1.普通にコンストラクタで作ってSetData。ネイティブで考えればシステムメモリにも
頂点バッファは作れるが、恐らく360との絡みでXNAでは意識できないようになってる。

2.めんどくさいのでヘルプより抜粋

Xbox 360 does not support dynamic vertex buffers that use the Overwrite/Discard semantic.
This affects calls to DrawPrimitives. For this reason, when rendering dynamic geometry,
DrawUserPrimitives is recommended at all times on both Xbox 360 and Windows.
(The performance disadvantages of DrawUserPrimitives, though previously a factor on Windows,
are largely obsolete in newer video drivers.)

結論だけ書くと「DrawUserPrimitives使え」
個人的にはDynamicVertex/IndexBufferの存在がXNA2.0最大の謎。

796:名前は開発中のものです。
08/03/06 20:58:31 T8fo1IZY
URLリンク(www.bba.or.jp)

XNA、ひろゆき、新清士、ニワンゴ・・・

なんという異色の協演・・・

797:名前は開発中のものです。
08/03/07 10:35:28 fLmqr2Fy
誰かひろゆきにXNAについてどう思うか聞いてきて~

798:名前は開発中のものです。
08/03/07 13:42:25 fxAYtVJw
実機で動かすのに金いるのか
配布するときに入会させればいいのに
面倒だからやーめた

799:名前は開発中のものです。
08/03/07 15:28:02 gESQYUPJ
xnaはC++/CLIやvb.netでも書けるだろ

800:名前は開発中のものです。
08/03/07 16:15:54 1NfIumuY
C++でXNA使うなら、機能面で既存の別のライブラリ使うな


801:名前は開発中のものです。
08/03/07 17:51:50 wZGs4Gxf
「書ける」と「箱で動く」は別問題だよね。

802:名前は開発中のものです。
08/03/07 20:44:59 2hUQvDJc
MS、「XNA Game Studio Japan 2008 Spring Contest」受賞作を発表
URLリンク(journal.mycom.co.jp)

いろんなのがあるな

803:名前は開発中のものです。
08/03/07 21:58:15 B9T8jdIP
>>2,5
HSPコンテストのレベルと大して変わらんのじゃねーか

804:名前は開発中のものです。
08/03/07 22:10:04 NP1Sf3E1
そう言ってられる内の方がまだよくね?
どうせそのうち空気読めない外人が何億と金かけたゲーム作り始めて
ここはそういう力のある集団だけのコミュニティになる
俺たちアマチュアの居場所など無くなるさ

805:名前は開発中のものです。
08/03/07 22:52:04 1WoBL1I/
>>800
いやいや。
CRTには依存できないから既存のライブラリは使えないでしょ

806:名前は開発中のものです。
08/03/08 01:28:46 vb/FCMXc
URLリンク(xna-studio.jp)
動画になってるー

807:名前は開発中のものです。
08/03/08 14:59:20 eGTZlkp3
このスレの過去ログでを見てないだけの>791の人気に嫉妬。
つ/clr:pure
boost程度は行けるんじゃ無い? libを使うregexやpythonはダメだろうけど。
C#2.0でNGのfunction(ラムダ式とか)がいけるハズ。

入会してるやつに聞きたいんだけど、C#のunsafeオプション付けてポインタ使ったソースを実機でうごかした奴いる?

808:名前は開発中のものです。
08/03/08 15:26:09 ylYCbKqV
PCと箱でも違うだろ
相変わらず検証もせずにできるんじゃね?ばっかだな

809:名前は開発中のものです。
08/03/09 10:31:35 jqFDLiaS
C++/CLIが使えるっていうんだったらC#3.0も使える
LINQも使えないこともない

810:名前は開発中のものです。
08/03/09 14:39:46 XqL6geom
360で動かす気ならマルチスレッド化はゼッテー、とか聞いて速攻やる気無くなった

811:名前は開発中のものです。
08/03/09 14:56:17 49SSB0i8
ZUNEで動かすならシングルスレッドでおk

812:名前は開発中のものです。
08/03/09 15:00:08 H9PKMdul
ロスプラの記事?
あれはやる気なくなる
そもそもXNA マルチスレッドのサンプルっつーか
情報がまったくないんだが

813:名前は開発中のものです。
08/03/09 15:11:31 EmgsrfLc
>>807
BoostがXNAの代わりになるんだ、へ~(棒読み

814:名前は開発中のものです。
08/03/09 18:02:08 7kYlwlzQ
今回のコンテスト程度のゲームならシングルスレッドで十分だろ
どんなすげえ大作ゲーム作るつもりなんだよ
計画を聞かせてもらいたいね

815:名前は開発中のものです。
08/03/09 18:12:35 5/FT7FE1
処理の重さと作品規模は全く関係ないわけで

816:名前は開発中のものです。
08/03/09 18:16:06 5KzUSteu
そうだ!スローモーションゲームをつくろう!!

817:名前は開発中のものです。
08/03/09 18:27:14 7kYlwlzQ
>>815
小規模で高負荷ってーと、パーティクル出しまくって弾幕~とかやるぐらいか?
・・・それぐらいしか思いつかん俺もレベル低いな

818:名前は開発中のものです。
08/03/09 19:03:19 KeTdRw33
ゼッテーかどうかはともかく本腰入れるなら避けては通れないだろうなぁ>マルチスレッド

819:名前は開発中のものです。
08/03/10 00:26:56 Vk26lBz9
Draw1回にUpdate1回なら、Updateがマルチスレッドしてても、Draw完了まで空ループさせとくとかは?
…日本語ヤバイので、脳内仕様だけどモデルも書く。
Draw()//60fps
{
  if (threadA.count==0||threadB.count==0||threadC.count==0) return;//空ループ:処理落ち。
  //同期処理 & 描画処理
  threadA.count = 0;  threadB.count = 0;  threadC.count = 0;  //描画処理の前に置くと、4スレッド並走。
}
Update(){//入力とか60fps}

threadOya //スレッド継承元
{
  public int count =0;
  threadOya() //コンストラクタとか
  {
    thread = new Thread(new ThreadStart(running));
    thread.Start();
  }
  void running() //60fps以上のハズ。
  {
    thread.Sleep(0);
    if(count > 0 ) return;//空ループ:同期待ち
    //スレッド内処理、入力を見たり、行列を弄ったり。
    count++;  //boolでも良かった…。
  }
}
 スレッド内処理でthreadAの持ってるオブジェクトとthreadBの持ってるオブジェクトがぶつかったりすると、
すり抜けたり、残像に衝突したり、デッドロックする。

820:名前は開発中のものです。
08/03/10 00:33:21 9gm0l7t/
どういうゲーム作るかの前提無しに、プログラム設計だけ語っても仕方が無いだろ
まずはゲーム内容を決めてから、必要ならマルチスレッド化を検討すればいい

821:名前は開発中のものです。
08/03/10 09:37:05 wOwdHCnQ
360のベータ終了しました

822:名前は開発中のものです。
08/03/10 11:15:05 oL43JEi6
>>813
なんかかわいそうな子みたいだから触るのやめたわ、私は。

823:名前は開発中のものです。
08/03/10 13:07:19 mR//SHEf
boostは最強だろ

824:名前は開発中のものです。
08/03/10 14:05:52 5xBAafCs
>>822
>>800読んだ上で言ってる?

内部でnewするものは一切使えない
インライン展開による処理コスト低減が目的じゃないなら素直にC#3.0使えよと思う

825:名前は開発中のものです。
08/03/10 14:09:48 Uj9vviuV
>>824
だったらそれでXbox360で動かしてくれよ。
話の流れが読めないやつだな。

826:名前は開発中のものです。
08/03/10 14:21:59 Bcod4ZKE
自己満足の技術雑談とフレーム合戦ばかりで、ゲーム製作を実行する奴が少ない・・・
ワンダーウィッチの時の状況にそっくりた。

827:名前は開発中のものです。
08/03/10 14:47:09 wteaVBEy
ワーカーばかりでクリエイターがいない今の日本

828:名前は開発中のものです。
08/03/10 15:57:34 W43Q16wA
クリエイター(笑)

829:名前は開発中のものです。
08/03/10 16:37:57 MN338FyH
>>825
読めてないのはお前。
C#3.0はilレベルで互換性がある。
互換性が無い部分はLINQ等ライブラリに依存している部分のみ。
まさか>>472を見て、ilレベルで互換性が無いと思ったわけではないよな?
普通に動く


830:名前は開発中のものです。
08/03/10 16:41:37 bMJbJ2iH
>>827みたいな何か言った風で何も言ってない奴らばかりなのが今の日本

831:名前は開発中のものです。
08/03/10 17:24:13 sUorN5Yv
>>830
自己紹介乙

832:名前は開発中のものです。
08/03/10 17:52:06 BqL/OQgN
言い合ってるより、ゲームつくったほうが早そうだな。

833:名前は開発中のものです。
08/03/10 19:14:55 RLf5EWSW
某受賞作で、構造体の配列を自前でガベコレしてるのには泣いたので、
C++/CLIでもC#3.0でも、どっちでも良いから頑張ってほしい。

そして巨大な構造体の配列をポインターでやりくりするunsafeってネタも投下。
URLリンク(forums.microsoft.com)

日本語でURLリンク(forums.xna.com)ができれば、俺含めそう言う輩は幸せになれる事に気づいた。

834:名前は開発中のものです。
08/03/10 20:33:58 OjMru5Aq
>某受賞作で、構造体の配列を自前でガベコレしてるのには泣いたので、

でも、こうゆうの聞くとがんばろうとも思うよな。
自前でやってまでカタチにしてる姿勢は見習いたい。

835:名前は開発中のものです。
08/03/10 20:53:45 BQQtszMo
ガベコレが走る以上、言語レベルで頑張ってどうにかなる時が来るとは思えんけどねー。
ぶっちゃけGCとハードリアルタイムで求められるパフォーマンスをうまく実現できる
処理系も言語も見たこと無いよ。
むしろそのへんC#というか.NETがもっとも現実主義に見える。

836:名前は開発中のものです。
08/03/10 21:07:53 TDrO6x61
細かいパフォーマンス気にしてる奴ってそんなギリギリの性能が必要なゲーム作るの?

837:名前は開発中のものです。
08/03/10 23:19:34 TpVcEEJ9
というかGCはCFだから遅いんだと思うが。世代別じゃねーし


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch