トップページ⇒tech
1001コメント303KB

C#でDirectX9 初心者の館

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
Windows Longhorn でGDIに取って代わって標準になりそうなDirectX9ですが
GDIと違ってドキュメントも難解で何をすれば描画できるのかさっぱりさっぱりなライブラリです。
その上知っている人はレベルが高すぎて聞いても宇宙語でしす(泣
そんなDirectX9を将来に備えて勉強してみようというスレです。
Microsoftの掲示板
http://www.gdncom.jp/general/bbs/ShowForum.aspx?ForumID=29
SDKをダウンロードできるところ
http://www.microsoft.com/japan/msdn/directx/downloads.asp#CDasp#CD
0763デフォルトの名無しさんNGNG
2Dの場合、Direct3DはDirectDrawより少し遅い
2004Summerでまたスプライト関数の引数が変更したらしいな
0764デフォルトの名無しさんNGNG
GDI+とどっちが早いですか?
0765デフォルトの名無しさんNGNG
GUI+使うなら DirectDrawをオススメします

3DSpriteは仕様変更がウンザリなのと
ちょっと古いPCやドライバの更新もできないような
ヘタレ君の環境だとマトモに表示されないケースが多いのがマズー
0766デフォルトの名無しさんNGNG
>>765
GUI+なる謎の物体を突然持ち出す君の方がマズー

君ってチンカス以下だね
0767デフォルトの名無しさんNGNG
>766
つまんね


C#にもC++並のサンプルつけてくれMS
VBに至ってはサンプルナッシングかよ
かわいそうに
0768デフォルトの名無しさんNGNG
>>767
オマエモナー
0769デフォルトの名無しさんNGNG
ぶっちゃけVBいらね
0770デフォルトの名無しさんNGNG
ぶっちゃけC#いらね
0771デフォルトの名無しさんNGNG
わざわざ無理にC#でやろうとしなくていいよ。
C++とかのほうが情報多いんだし。
0772デフォルトの名無しさんNGNG
でも、未開拓の言語って触るの面白いんだよ。
……これが仕事でなければ。
0773デフォルトの名無しさんNGNG
枯れた言語は掲示板のレスもツマンネ奴ばっかりだしな
0774デフォルトの名無しさんNGNG
つまりC#も枯れた言語というわけか。
0775デフォルトの名無しさんNGNG
C#のことは気にせず、
黒い箱にスパゲティ入れて遊んでな。
0776デフォルトの名無しさんNGNG
C#でMDX使い始めたらC++でDirectXは使いたくなくなった
0777デフォルトの名無しさんNGNG
>>776
M$の罠にかかった香具師がここにも一人。もうだめぽ。
0778デフォルトの名無しさんNGNG
>776
そんなに楽?すぴーどなどもよろ。
0779デフォルトの名無しさんNGNG
楽そうとかいう理由で使うやつは初心者。
C++のほうがパフォーマンスいいんだから、
そっちで無難にやっておけよと。
0780 ◆Rk6dvtD5gI NGNG
自分ではパフォーマンスの測定もろくにせず
一般的な文言を鵜呑みにして他人をも洗脳しようとする>>779の方がよっぽどクズ。


いろんな系統のプログラムで測定してみたが、
俺の環境ではManagedによるパフォーマンス低下は大体0〜15%。

当たり前のことだが、GPUよりCPUを酷使するプログラムでは
パフォーマンスはネイティブに比べ大きく低下する。
逆にパフォーマンスがほぼGPUでの処理のみに依存しているようなプログラムでは、
体感的にはもちろん、数値的な差もほとんど確認できない。

ただし、MDXが提供するクラスの中には、単なる状態取得プロパティ・メソッドに見せかけて、
実は呼ばれる度にオブジェクトを新規に確保→コピーを繰り返すという、なんとも迷惑なのがかなり多くある。
また最近のバージョンでは減ってきたとはいえ、>>755みたいなバグが未だ潜んでいる可能性は大いにある。

Managedでパフォーマンスを重視するなら、ネイティブでの開発経験はもちろん、
Managedメソッドとそれに対応するネイティブメソッドとの関係を詳細に把握しておくことが必要。

逆にManagedで開発するメリットとしては、やはり圧倒的な開発効率がある。
.NET Frameworkが提供する豊富なライブラリを利用できる上、
対象の説明まで表示してくれるインテリセンスなどIDEのサポートも非常に便利。
上では欠点ばかり書いてしまったが、
MDXのクラスはManagedの流儀に併せてきれいに再構成されているし、
ほとんどのクラスがMarshalByRefObjectから派生しておりAOP的なプログラミングも可能。


何にでも言える事だが、そのデメリットを充分に理解しているのなら、
そのメリットを生かすためにそれを使うことには躊躇しなくてもよい。

俺はもちろんネイティブDirectXも使うし、Managed DirectXもありがたく使わせてもらっている。
0781デフォルトの名無しさんNGNG
コピペ乙
0782デフォルトの名無しさんNGNG
>>772
>でも、未開拓の言語って触るの面白いんだよ。
ここは同意出来るが、C#が未開拓かと言えばそうでもない。
いつものように既存のものを名前変えただけだろ。

0783デフォルトの名無しさんNGNG
変なのが紛れ込んできたな。
どこかにここのリンク貼られたのか?
0784デフォルトの名無しさんNGNG
>783
へんなのってこれか?>780
至極まっとうな意見だが。
0785デフォルトの名無しさんNGNG
コピペじゃないと思われ
0786デフォルトの名無しさんNGNG
すべてのぎろんが>780見たいな物だったらいいスレができると思われ
0787デフォルトの名無しさんNGNG
起動が遅くて糞糞言われてるんだからネイティブもポジティブもないだろう。
0788デフォルトの名無しさんNGNG
>ネイティブもポジティブも
つりなのかどうなのか微妙なところだ
0789デフォルトの名無しさんNGNG
やっぱり780の意見は素晴らしいと思われ
0790デフォルトの名無しさんNGNG
>>788
微妙だな。
不覚にも微妙にワロテシモタ
0791デフォルトの名無しさんNGNG
チップ依存が吸収できる3Dエンジンなら、パフォーマンスなんかドブに捨ててもいいでつ。
趣味でプログラムしているうちが華だよもう (´・ω・`)
0792デフォルトの名無しさんNGNG
趣味でプログラムしてる漏れは勝ち組


といった、クソ厨のような発言をオマイにささげてみるテスト(debugビルド)
0793デフォルトの名無しさんNGNG
全然面白くない
0794デフォルトの名無しさんNGNG
俺的には、C#でDirectXは面白い。
0795デフォルトの名無しさんNGNG
面白いんだが
.netフレームワーク + DirectX + ManagedDirectX を
インストールさせなきゃならんのが
イイ手はないですか兄さん
0796デフォルトの名無しさんNGNG
LongHormをインストールさせるがよろ氏。
0797デフォルトの名無しさんNGNG
>>796
全然面白くない
0798デフォルトの名無しさんNGNG
>LongHormをインストールさせるがよろ氏。
もうβ出たっけ?

>全然面白くない
面白くする努力するなり
他へ逝くなりご自由に
0799デフォルトの名無しさんNGNG
ここで>>780氏による統括きぼん
0800デフォルトの名無しさんNGNG
真投げは駄目駄目
0801デフォルトの名無しさんNGNG
じゃ、じゃあ>>800氏によるすばらしい意見きぼん
0802デフォルトの名無しさんNGNG
今度の
0803デフォルトの名無しさんNGNG
衆議院選挙は
0804デフォルトの名無しさんNGNG
なぁ、C#+DirectXで作ったアプリを配布する時って、
.NET再頒布パッケージ入れてMDXランタイム入れてもらえば良いんだよな?
0805デフォルトの名無しさんNGNG
それとDirectXのインスコ
1パッケージで
全部インスコさせられたらいいのだがな
0806デフォルトの名無しさんNGNG
MSのやる気が無いから仕方が無い。
0807デフォルトの名無しさんNGNG
しばらくの間は報われそうにないな、俺ら(´・ω・`)
0808デフォルトの名無しさんNGNG
>>780氏がついてるかぎり、大丈夫だ。がんばれ!!
0809デフォルトの名無しさんNGNG
次期Winで
フレームワークが標準インスコされていて
かつDirectXにマネージドコードのも入れば・・

ウマーなんだがねアンダーソン君
0810デフォルトの名無しさんNGNG
フレームワーク標準インスコはもうなってるだろ。
0811デフォルトの名無しさんNGNG
2003Serverで?
0812デフォルトの名無しさんNGNG
.NET FrameworkとDirectXだけですまないんじゃあ、他人への配布用アプリとしてはつらすぎる
0813デフォルトの名無しさんNGNG
XPでデフォルトが1.0なのが辛い。
0814デフォルトの名無しさんNGNG
あれ、XPに標準搭載されてたっけ?
0815デフォルトの名無しさんNGNG
XPは、
.NET Frameworkは1
DirectXは8
0816デフォルトの名無しさんNGNG
そろそろ2.0が・・・(´Д⊂
0817デフォルトの名無しさんNGNG
全部インストーラに含められるツールか何かあるようなことを聞いたよ
英語版のみらしいが

ゲーム本体より付属品のほうが容量大きくて笑えそうなヤカン
0818デフォルトの名無しさんNGNG
四捨五入とか切り上げとかをする方法を教えてください
0819デフォルトの名無しさんNGNG
四捨五入
int b = (int)(a + 0.5);
切り上げ
int c = 1 + (int)a;
0820デフォルトの名無しさんNGNG
>>819
それ、切り上げの方、a が整数だったときに変になるよ。

Math.Floor, Math.Round, Math.Ceiling を使うべし。
0821デフォルトの名無しさんNGNG
aが整数だったら四捨五入も何も
0822デフォルトの名無しさんNGNG
>>821
アフォ?
0823デフォルトの名無しさんNGNG
>>821
バカ再来だな
0824デフォルトの名無しさんNGNG
だれかDirectShowのサンプルのSampleGeabberをC#に移植した方はいらっしゃいませんか?
はまってます。
0825デフォルトの名無しさんNGNG
はまってるんなら素直にC++でやればよかろう
0826デフォルトの名無しさんNGNG
Managed C++で作って.NETで使えるようにしたら?
0827デフォルトの名無しさんNGNG
そして、だったら全部C++で書いた方が楽だということに気が付くという。
0828デフォルトの名無しさんNGNG
824です。
C#のプロジェクトなんですけど、この部分だけC++で書くことにしました。
ていうか、何のためにC#使ってるかわかりません。
誰か教えてください。
0829デフォルトの名無しさんNGNG
MS も ゲイツ も好きだけど、Windows95 あたりから Windows が嫌いになりました。
だって、不具合多過ぎるんだもん。あとウィルス、セキュリティホール。
Windowsを買ってからセキュリティの問題で毎日Windowsアップデートでてんてこ舞い。
こないだはWindowsXP SP2にしたら起動しないアプリ勃発、まだ直らず。
業務に多大な損害が出た。
ハードウェアの構成を替える度、アクティベーションにどれだけの時間を割いたことか。
気軽にパーツも買えん。
こんなに使い買っての悪いクソOSがあの値段だよ。またセキュリティホールだウィルスだよ。もう疲れました。
なんてレスをしているとまたセキュリティホールだよ、ウィルスだよ。勘弁してください。
最初からクソだと思っていたけど、最近のMSは醜態が際立ってるね。
古川が張り切ってはじめたMSN BlogなんてMS社員しか使ってないしな。
MSN Musicにおいてはサービス開始に誰も気づいていないw
もうだめじゃんw
0830デフォルトの名無しさんNGNG
>>828
無難に情報量の多いC++でやれよw
0831デフォルトの名無しさんNGNG
何かあるたびにC++でやれば? だもんなぁ・・
いや、確かに正論ですよ 正論ですとも
んじゃ何のためにこのスレがあるのか
いや それ以前にC#にもC++並のサンプルつけろMS
0832デフォルトの名無しさんNGNG
まぁロングホーントレインの1千万パワーをまてという事ですよ
0833デフォルトの名無しさんNGNG
>>828
>>780に詳しく書いてある。
過去ログくらいちゃんと嫁
0834デフォルトの名無しさんNGNG
int a=1,b=1;

a=b=0;

この場合、どちらも0になりますか?
0835デフォルトの名無しさんNGNG
なる。
つーか、自分で調べなよそれくらい。
0836デフォルトの名無しさんNGNG
燃料のつもりだったのかな
0837デフォルトの名無しさんNGNG
a=b=0;

a=b;
b=0;

これって同じことですか?
0838デフォルトの名無しさんNGNG
DirectXと何の関係があるんだよ。
ネタとしても全く面白くない。
0839デフォルトの名無しさんNGNG
文句タレは一人前だが
いざDirectXに関する質問が出てくると
答えられない香具師ばかりなインターネッツで
面白いも糞もないかと思うのだ
0840デフォルトの名無しさんNGNG
一人で面白いと思って書き込んだあげく、否定されて憤慨。
アホの典型。
0841デフォルトの名無しさんNGNG
>>839
>>830
0842デフォルトの名無しさんNGNG
ひさしぶりにきてみたら
ものすごいくそすれになってますね
なんかかなしいです
なかよくやろうよもまいら
0843デフォルトの名無しさんNGNG
ひもなな?

そうだな、オレもひもななな気分だ。
0844デフォルトの名無しさんNGNG
0845デフォルトの名無しさんNGNG
くだらんミニゲームを作ってみた
ここで晒したら遊んでくれるだろうか・・
0846デフォルトの名無しさんNGNG
いいんじゃないの?
色々アドバイスくれるかも
0847デフォルトの名無しさんNGNG
bool a=b=true;

abともに真である条件式で
if(a & b){}
if(a && b){}
お前らはどっち書く?
0848デフォルトの名無しさんNGNG
a && bに一票
a & bだと
bitの andに見えるし
0849デフォルトの名無しさんNGNG
DirectXと関係ない話題をいちいち振る馬鹿と、それに答える大馬鹿。
0850デフォルトの名無しさんNGNG
その上マルチだ品
0851デフォルトの名無しさんNGNG
  (´⌒⌒⌒`) 
__ 〃|___|ヽ
ヽ\ ノノノ)ヘ)、!〉
 (0_)! (┃┃〈リ
  Vレリ、" lフ/     呼んだ? 
    l´ヾF'Fl  
    〉、_,ノ,ノ  
0852デフォルトの名無しさんNGNG
自作自演なんだからほっといてやれよ・・
0853デフォルトの名無しさんNGNG
じゃあDirectXの話題を投下。といっても俺はPlayしか知らないが。

一番目のパケットが届いてそれの処理をしている間に二番目にパケットが来た場合、
二番目のパケットの受け入れを一時的にロックしておくような機能ってある?

あと確認だが、一回目のReceiveイベントと二回目のReceiveイベントは非同期に処理されるよな?
0854デフォルトの名無しさんNGNG
受け取りたくなければ受け取らなければいい。
0855デフォルトの名無しさんNGNG
>一番目のパケットが届いてそれの処理をしている間に二番目にパケットが来た場合、
>二番目のパケットの受け入れを一時的にロックしておくような機能ってある?
漏れはそれっぽい機能を発見できなかったのでArrayListで解決したよ
パケットくるたびにキャッシュに叩き込んで逐次取り出すってのはだめなのか?
ArrayListはいじくるたびにlockしないと悲惨なことになるが

>一回目のReceiveイベントと二回目のReceiveイベントは非同期に処理されるよな?
デバッグウインドウに処理するたびにメッセージ表示するようにして検証すれ
たぶん非道鬼だったと思った

>受け取りたくなければ受け取らなければいい。
受け取りたいけど受け取れないから保留にしたいという話を・・げふんげふん(咳
0856デフォルトの名無しさんNGNG
Effect.FromFileのStringって2バイト文字が入ってると失敗するんですかね?
デスクトップにEmptyProjectのディレクトリ置いてたせいで実行出来なくて原因を
探すも今時そんな原因も無いだろと思ってたのでハマってしまってたんだが・・・。

あとデバッカのウォッチの動作がおかしいのはバグなんでしょか。
明らかに同一スコープ内のフィールドの中身が"スコープ外です"と表示できなかったり、
あるメソッド内で特定のメソッドを呼んでいるとウォッチで見るクラスや構造体の
定義されてるはずの中身が一部"error: cannot obtain value"と"<未定義の値>"になったり、
"<未定義の値>"をクリックして変更しようとすると文字が巨大化するし。
0857デフォルトの名無しさんNGNG
>>856
「スコープ外です」
「cannot obtain value」
は俺もしょっちゅうあるなあ。どうにかして欲しいよね・・・
0858デフォルトの名無しさんNGNG
なぁなぁ、ManagedDirectXの日本語ドキュメントをVSを使わずに見る方法があるはずなんだが、
どうやってやるんだっけ?
0859在日外国人参政権反対NGNG
マルチ(・A・)イクナイ!!
0860デフォルトの名無しさんNGNG
iexplorer.exe
0861デフォルトの名無しさんNGNG
>>858
#D、C#Bを入れる
0862デフォルトの名無しさんNGNG
I/O書籍シリーズはVC++で書いてるし
やっぱ、VBやらC#より
メンドイだろうけど
キッチリできるんだろうなぁ・・

と言いつつVBでやってみたり・・・('A`)
■ このスレッドは過去ログ倉庫に格納されています