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だから遅いんだと思うが。世代別じゃねーし