DirectX C# vol.1

このエントリーをはてなブックマークに追加
広辞苑X9.0からC#に対応するらしい
C#に対応するのではなく.NETに対応だろう
なんでこんなに混同君が多いんだ?
936928:03/08/16 12:23
>>935
そうなんだよ。
なんかわかってるんだかわかってないんだかわからんままだれも突っ込まずに話が続くことが多いんで、
真面目にレスしていいものかどうか悩むんだよ。
もう >>919 なんてなにいってるのかさっぱり。
>C#に対応するのではなく.NETに対応だろう

うむ。.NET対応言語全てからDirectX9は呼び出せるな。
.NETの代名詞ってことで
>>939
.net ≒ C# とでも言いたいのか?
代名詞って…
ちょっと君には早いようだ。
ごめん、.NETって何を指してるの?
何を謝ってるの?
知ってて当然なのかと思い、謙ってみました。
.NETを代表する言語がC#ではないのか?
他にあるならそっち使う
>>945 F#
ありがとうございます
948919:03/08/16 23:37
.NET全てからDirectXが呼び出せるってぇ建前なのはわかるんだけどさ、
しかしC#とVBはいらないような気がするわけよ。
この辺は揚げ足取りだよな。わかってないと思って突っ込むなよ。
分かってないならこのスレどころかこの板に来ないって。

VBはもともと実行速度重視型の設計じゃなかったし、
C#は現状ではJavaみたいな「中間言語=>仮想マシン」って動きなわけだしさ。
その辺に関して、いずれはCPUごとに最適化がなされるようになるとかいわれてるけど、
むしろそういう環境が整ってから「DirectX対応」だろうって気がする。
最適化が計画倒れになったり、
リリースはされたけど実装した意味が全く感じられないような実行速度とかMSだからありうるし。
またはその辺いじった関係でDirectXの呼び出し方法また変わるとか。
まだ判ってない人がいるな。
.NETの実行環境(CLR)は、中間コードをJITでネイティブコードに
変換して実行する。仮想マシンと言っても、インタプリタじゃない。

確認はしてないけど、実行時CPUに合わせた最適化は、今の
JITでも、ある程度行われている様だ。

実行速度は >924 にもあるし、自分でも計ってみればいい。
>またはその辺いじった関係でDirectXの呼び出し方法また変わるとか。
DirectXのヴァージョンが変われば.NET環境に限らずAPIの使用法は変わりますし、
逆に特定のヴァージョンに定めて書くのであれば呼び出し方法は変わりません。
これはネイティブであろうと、.NETであろうと同じです。
無理な論理を展開する前に、少し頭を冷やしてください。
DirectXからみればVBやC#など必要ないかもしれないが
VBやC#からみればDirectXがないとどうにもならない場面がある
つーかせめて描画速度だけでももうちょっとマシにしてくれ
無益な議論スレになってしまっているわけだが・・・。
で、C#で高速な2D描画って本当にDirectX使うしかないの?
なんなんだこのスレは…
>>951なんかもう…
それとも新手の釣りか?
時間が解決する問題なんだから
956910:03/08/18 00:55
>>953
グラフィックはともかく、音とジョイパッドは。
Win32APIを使えばすみますね
Win48APIを使いましょう

馬鹿
960↑↑↑↑↑↑↑↑:03/08/18 12:19
自虐的な奴w
961デフォルトの名無しさん:03/08/18 17:36
>>902
統合したけど、ヘルプに出てきません。
DirectX8の項目は表示されるのですが・・・。
>>961
フィルタはずしてみて
963961:03/08/18 18:48
もう一度統合しなおしたら、表示されました。
>>962
ありがとうございます。
964961:03/08/18 18:51
>>962
確かに「日本語ドキュメント」のフィルタ掛けると消えてしまいますね。
”日本語ドキュメント”なのに、なんでだろう?
日本語ドキュメントのフィルターに含まれてないからですが、
なにか疑問点があるのでしょうか?
966919:03/08/18 21:32
>>940とか>>950とかさ、ちょっとそこに正座させて小一時間説教くれたいぐらいだ。

俺の言いたいのはそういう屁理屈が返ってくるようなことを言ってるわけじゃいわけ。
そもそもさ、直接実行と間接実行、ワンステップとツーステップって違いがあるでしょうが。
Javaを例に「中間言語=>仮想マシン」と言ったからって、Javaと同じに理解してると勘違いしているのはあなた方。
そうやって他人を貶める発言、2chだとすごい多いけど、ここでは止めてくれませんかね。

例で言ってるってことぐらいわかりそうなもんだが。
字面だけ追って挙げ足とることしか頭にないのかね。
「理解してないわけじゃない」って言ったでしょ!?なのになんでまだ「勘違いしている」と決め付けてかかるかな。
自分がC#をたとえるのに「中間言語=>仮想マシン」と言ったら、
それは何を指して言うと思う?

「初回起動は遅いけど・・・」って話題もこのスレでは既出だしね。
前レス読まずに参加していると思ってるのか?バカにして!!
初回起動速くできねーの?
968919:03/08/18 22:16
まさにそうなんだ。
話の筋を見れば、俺が「JavaとC#の類似点」をいおうとしているのは誰の目にも明らかだろうに、
こいつらはわざわざ「JavaとC#の相違点」を引き合いに出してきている。

釣りはお前らだろうが!!
(・∀・)イイヨイイヨー
とりあえずDirectXの話でお願いね
MSのサイトで、C#でスキンメッシュアニメーションを表示する
サンプルが公開されている。
>>966
>またはその辺いじった関係でDirectXの呼び出し方法また変わるとか。
これは理解していないということを如実に表しています。
指摘は顕著に受け止めて、何がいけなかったのかよく考えてください。
>>966
言ってることがよくわからん。

>>908で「C#にDirectXがくっつくようになって」とか、
>>919で「C#にDirectXが実装された」とか、「VBだって未だにDirectXに対応していることは疑問視されてる」とか
>>949で「C#とVBはいらない」とかの発言みたら、.NETと言語を混同していると思われても仕方ない。

みんなが指摘してるのは「.NETとプログラミング言語の混同」であって、「JavaとC#の類似点」については言ってない。
もうちょっと落ち着いて読んでよ。

>>924
FPS値の比較でもって同程度と判断するのは早計だろう。

 CPUの処理時間<グラフィックプロセッサ(+ドライバ+DirectX)の処理時間

のときは、CPUの処理時間がいくらだろうが1フレームあたりの処理時間は変わらん。
サンプルプログラムなんてたいした処理してねーし、
ちょっと実際のゲーム向けに複雑な演算組み込んだらガクッと落ちるんじゃねーのか。
で、今後DirectXはGPUでの処理に移行していくわけだが。
全部の処理をGPUに持ってけるわけぢゃあるまい。
GPUがあるならSPUもあるんだろうな
>>974
だからCPU側に多く依存するサンプルはFPSがガクッと落ちているわけだが
適当なところで、次スレよろ。
QuakeII .NET はManaged C++だけど、速度的には
without noticeable performance delays.
と言ってるね。
ttp://www.vertigosoftware.com/Quake2.htm

次スレ立てて見ます。
立てました。

Managed DirectX vol,2
http://pc2.2ch.net/test/read.cgi/tech/1061285378/
サンプルに三角形を描くのがありますが、三角形を2つ書きたい場合どうすればよいのでしょうか?

vertexBuffer = new VertexBuffer(typeof(CustomVertex.TransformedColored), 6, device, 0, CustomVertex.TransformedColored.Format, Pool.Default);
GraphicsStream stm = vertexBuffer.Lock(0, 0, 0);
CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[6];

// 1つめの三角形の頂点
verts[0].X=150;verts[0].Y=50;verts[0].Z=0.0f; verts[0].Rhw=1; verts[0].Color = System.Drawing.Color.Aqua.ToArgb();
verts[1].X=250;verts[1].Y=250;verts[1].Z=0.0f; verts[1].Rhw=1; verts[1].Color = System.Drawing.Color.Brown.ToArgb();
verts[2].X=50;verts[2].Y=250;verts[2].Z=0.0f; verts[2].Rhw=1; verts[2].Color = System.Drawing.Color.LightPink.ToArgb();
// 2つめの三角形の頂点
verts[3].X=350;verts[3].Y=50;verts[3].Z=0.0f; verts[3].Rhw=1; verts[3].Color = System.Drawing.Color.White.ToArgb();
verts[4].X=150;verts[4].Y=50;verts[4].Z=0.0f; verts[4].Rhw=1; verts[4].Color = System.Drawing.Color.Aqua.ToArgb();
verts[5].X=250;verts[5].Y=250;verts[5].Z=0.0f; verts[5].Rhw=1; verts[5].Color = System.Drawing.Color.Brown.ToArgb();

stm.Write(verts);
vertexBuffer.Unlock();

このように書いたのですがだめです。何かアドバイスいただけませんか?
自己レス。
頂点は時計回りじゃないと見えないというのに気づきました。
あとDrawPrimitive()呼び出すの忘れてました。