2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C#でDirectX9 初心者の館 2頂点目

1 :デフォルトの名無しさん:04/12/26 03:17:29
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

2 :デフォルトの名無しさん:04/12/26 04:03:23
糞スレで2ゲットするのが趣味

3 :デフォルトの名無しさん:04/12/26 14:22:23
>>1
前スレのURLくらい貼れや

C#でDirectX9 初心者の館
http://pc5.2ch.net/test/read.cgi/tech/1069666471/

4 :潜伏中の1:04/12/26 20:56:48
おや、新しいスレたてたんですね、皆さんのんびりまたーりと行きましょう。

5 :デフォルトの名無しさん:04/12/29 08:13:51
前スレのが上になってるからageとこう。

6 :デフォルトの名無しさん:04/12/30 16:54:28
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
高速にきれいな文字を表示するにはどうしたらいいんでしょうね?


7 :デフォルトの名無しさん:04/12/30 17:44:20
そして誰も高速にきれいな文字を表示するやり方を提示できないわな

8 :デフォルトの名無しさん:04/12/30 18:28:27
無益なカキコするやつは、
無難に情報量の多いC++でやれよw

9 :デフォルトの名無しさん:04/12/30 18:50:35
普通にやっても高速で綺麗だよ

10 :デフォルトの名無しさん:04/12/30 19:16:19
>>9
おせーよ

11 :デフォルトの名無しさん:04/12/30 19:26:14
>>10
どのぐらい?

12 :デフォルトの名無しさん:04/12/30 19:32:30
30っこぐらいダストもっさりする。1.3G

13 :デフォルトの名無しさん:04/12/30 20:30:41
>>12
ということは1秒で1800個ぐらいからもっさりなのか。
でもそれだとエロゲのスキップでも結構高速な部類だぞ。
どれぐらいまで速くしたいの?

14 :デフォルトの名無しさん:04/12/30 21:56:57
自分ではパフォーマンスの測定もろくにせず
一般的な文言を鵜呑みにして他人をも洗脳しようとする>>1-13の方がよっぽどクズ。


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

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

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

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

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


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

俺はもちろんネイティブDirectXも使うし、Managed DirectXもありがたく使わせてもらっている。

15 :デフォルトの名無しさん:04/12/30 22:03:32
>>14
>の方がよっぽどクズ。
いつものセリフでベタですねw

16 :デフォルトの名無しさん:04/12/30 22:11:40
こぴぺおつ

17 :デフォルトの名無しさん:04/12/30 23:28:05
いちいち反応する>>15が一番クズだな。

>>14は前スレの780のコピペ。
いきなりそのままコピペする意味が分からんが。

18 :デフォルトの名無しさん:04/12/30 23:58:38
>>17
オマエモナー

19 :デフォルトの名無しさん:04/12/31 01:45:35
いいけども持病が早くする方法俺も知りたい。
今メッシュでやってるけどこれだと10文字ぐらいの文字列10個で90ミリセクぐらい増加する。

20 :デフォルトの名無しさん:04/12/31 01:46:27
文字描画

21 :デフォルトの名無しさん:04/12/31 02:50:34
ここで文字列おせーおせー、ってうるさい奴らってさあ、
Direct3D.Font(ID3DXFont)の速度じゃ満足できないってこと?

これは内部でGDIで描画→コピーを繰り返してるから、
確かに速度はあまり出ないけど、
バージョンが細かく上がるたびに結構速くなってる。
んが、Spriteと共にインタフェイスが変わりまくるから、有用な資料が少ない。

22 :デフォルトの名無しさん:04/12/31 03:37:02
あれだろ、2次元の画面に文字表示したいんでなくてポリゴンと一緒に3次元で表示したいってことだろ。

23 :デフォルトの名無しさん:04/12/31 15:56:36
メモリBmpから作ったテクスチャの透過職を指定したいんですがどうやったらいいんでしょうか?
TextureLoder.FromFileだと引数で指定できるようですが、FromBMPからの場合後から指定するやり方がわかりません。
それらしいメソッドも見当たりません。

24 :デフォルトの名無しさん:04/12/31 17:29:33
>>23
透過職(´,_ゝ`)プッ

Bitmapのアルファ成分を活用するんじゃだめなの?
Bitmapにアルファ付きPNGをロード→FromBmpでやってみたが、普通に行けるんだが。

25 :デフォルトの名無しさん:04/12/31 19:28:09
>>24
字間違えて悪かったな。ヽ(`Д´)ノウワァァン

んーとGDI+でbmpに描画してそれをテクスチャにしようと思ったんだけど、考えてみりゃそのときにアルファ値つけて描画できるのかな?ん出それ読み込めばアルファ値つきテクスチャになるのかな?その辺よくわかってません。ためしてみます。

26 :デフォルトの名無しさん:04/12/31 21:03:34
>>25
ん出それ (´,_ゝ`)プッ

> 考えてみりゃそのときにアルファ値つけて描画できるのかな?
できる

> ん出それ読み込めばアルファ値つきテクスチャになるのかな?
なる

分かってる分かってないじゃなくて、ちょっと試してみれば確認できるだろ・・・
つかアホだろお前

27 :デフォルトの名無しさん:04/12/31 21:38:43
>>26
知性の低そうな揚げ足取り乙

28 :デフォルトの名無しさん:04/12/31 23:17:02
よいお年(´,_ゝ`)ヲッ


29 :デフォルトの名無しさん:05/01/01 00:07:31
今年こそまともな議論がされますように

30 :デフォルトの名無しさん:05/01/01 00:53:28
誰か作った面白いやつさらしてくれ
できればツール系

31 :デフォルトの名無しさん:05/01/01 02:04:10
>>29
前スレの780氏みたいなのが多ければ、ちょっとはまともになるかもな。
>>29みたいなのばっかだとクソスレ確実だな。

32 :デフォルトの名無しさん:05/01/01 02:04:33
ゲ製作みたいに全ソースを晒す文化ってこの板にはないよね。

33 :デフォルトの名無しさん:05/01/01 17:54:53
ゲ製作にもないような気がする・・・

34 :デフォルトの名無しさん:05/01/01 19:06:01
高速な文字列表示できました。お騒がせして申し訳ありませんでした。
しかしながらこのすれは2%ぐらいしか役立ちませんでした。
なんつーかもう・・・

とったやり方
一枚のテクスチャに複数文字割り当てて表示。数百文字列でもパフォーマンス十分

35 :デフォルトの名無しさん:05/01/01 20:48:20
>一枚のテクスチャに複数文字割り当てて表示

つーか普通だろう。
誰でもやってるし、サンプルのフレームワークでもやってる。

一人で正月から騒いでんじゃねぇよ。

36 :デフォルトの名無しさん:05/01/01 21:09:59
当然やっているであろう手段をやってなかったのか。
こりゃ一本とられたな。

37 :デフォルトの名無しさん:05/01/01 22:06:51
当たり前なら最初から教えろボケ。こちとら初心者なんだよ
だから引きこもりプログラマなんだよお前ら

38 :デフォルトの名無しさん:05/01/01 22:56:47
正月早々おいしいやつらだなおい

39 :デフォルトの名無しさん:05/01/02 01:32:03
>>37
サンプルでも堂々とやってるから、当然見てるものだと思ってたよ。

サンプルくらいちゃんと見てから質問しまちょうね。

40 :デフォルトの名無しさん:05/01/02 04:09:45
>>39
サンプルでやってんのも文字の貼り付けなの?見てないから知らんが。
一枚のテクスチャから貼り付ける基本のことを言ってるんでなくてテクスチャでやるしかない?ことの指摘を誰もしなかったこといってんじゃねーの?
D3DXFontのこと説明して悦に入ってるやつもいたしな。

41 :デフォルトの名無しさん:05/01/02 08:55:06
情報を小出しにされてもなあ……

42 :デフォルトの名無しさん:05/01/03 17:37:35
分からない分からないって人に聞いてばかりで自分では何も試そうとシナい。
自覚してるのかもしれないが無能だからそれすらできない。
挙句の果てにムシャクシャして他人を罵倒する



43 :デフォルトの名無しさん:05/01/03 17:59:01
あほか、いろいろ試してんだよ。お前と一緒にするな
このスレの住人が無能の高慢ちきぞろいだから罵倒してるんだろ

44 :デフォルトの名無しさん:05/01/03 18:41:52
>>42
もちろん、そんな奴らばっかりではないが、
>>43に代表されるような、どうしようもない無能が多いことも事実だな。

45 :デフォルトの名無しさん:05/01/03 18:48:57
おまいもなー

46 :デフォルトの名無しさん:05/01/03 23:10:35
なんか煽り耐性低いよな。質問する奴はこれから要トリップにして、
トリップ無い質問は完全無視という文化が必要だ。


47 :デフォルトの名無しさん:05/01/03 23:37:51
もうその辺の話はいいよ

48 :デフォルトの名無しさん:05/01/03 23:40:50
じぶんである図形をあらわすクラスを作ったんだけど、そのくらすごとにVertexBuffer を持つのは作法悪いのか?
まとめてひとつのVertexBufferでもつべき?

49 :デフォルトの名無しさん:05/01/05 10:31:09
別にいいんじゃねーの?
それでわかりやすいってなら特に問題ないと思うが

ただ、表示する図形が3種類くらいしかないのに
膨大な数のクラスのインスタンスそれぞれが頂点バッファ持ってるんだとしたら
メモリの効率はいくないよな
そいう場合は1つにまとめて各クラスで共有するようにすれ

50 :デフォルトの名無しさん:05/01/05 11:05:33
それは、メモリ量の効率のことで計算速度のほうは問題ないということでしょうか?
パイプラインの仕組みがよくわかってないのですが、SetStreamをすることで内部的にどうなってるのか見当つかずにいます。

51 :デフォルトの名無しさん:05/01/05 11:17:10
各インスタンスの頂点バッファでも
共通の頂点バッファからでも
SetStreamの回数が同じなら
速度的にあまりかわりはないような気ガス

共通の頂点バッファをSetStreamして描画*1000=245ms
1000のインスタンスの頂点バッファをSetStreamして描画=268ms

同じ図形を描画するときには
いちいちSetStreamをしないように細工すると
いくらか早くなった気ガス

まぁ簡単なサンプル作ってためして美空ひばり
テスト結果はここに貼ってくれると有意義なスレになるであろう

52 :デフォルトの名無しさん:05/01/05 12:39:36
確かCOM呼び出しをいかに減らすかが高速化の鍵だったような。
DrawPrimitiveって1回の呼び出しで500プリミティブだか1000プリミティブだかに
最適化されてたという話を昔聞いたことがあるが
今はドライバもVGAもPC自体も色々変わったし数値も大分変わるだろうね

53 :デフォルトの名無しさん:05/01/05 13:42:11
> 確かCOM呼び出しをいかに減らすかが高速化の鍵だったような。
そんな鍵はない。

54 :デフォルトの名無しさん:05/01/05 23:45:25
鍵っつーか、実際COM呼び出し回数を減らすことが高速化になるのは正しい
http://www.microsoft.com/japan/msdn/directx/techart/DirectX8faq.asp
パフォーマンスチューニングを参照。これ見ると100プリミティブ前後らしいな

55 :デフォルトの名無しさん:05/01/05 23:59:03
それを「COM呼び出し」と表現してしまうのはなんか違うだろう。

56 :デフォルトの名無しさん:05/01/06 00:08:15
独自用語で頓珍漢なことをいう馬鹿はどこにでもいるが、COM呼び出しどころか、
ポリゴンとプリミティブを混同している時点で救いようがない大馬鹿。

57 :デフォルトの名無しさん:05/01/06 11:57:53
Managed World - Tom Miller Interview
http://members.gamedev.net/managedworld/articles/interviews/tommiller.html

58 :デフォルトの名無しさん:05/01/06 13:26:05
カリスマ、トムたんキター

59 :デフォルトの名無しさん:05/01/06 14:10:12
>>57
MCS (Microsoft Consulting Services) ってなに?

60 :デフォルトの名無しさん:05/01/06 23:38:29
ゲーム等で地形MAPのような巨大なモデル(約1000万ポリゴン)を読み込み表示させたいのですが
モデルのすべてを表示させるのはあまりにも時間がかるので可視部分だけ表示させたいと思います。

それで質問なのですが
視点が変わり可視部分のポリゴンを描画するとき、その都度新たにインデックスバッファとバーテクスバッファを
毎フレーム作成しDrawPrimitiveする必要があるのでしょうか?
(つまり毎フレーム、可視部分のポリゴンのみで新規にモデルを作成するのだろうかということ)

それとも巨大なモデル自身が可視部分のポリゴンだけを表示し、あとは表示しないようにしているのでしょうか?


61 :デフォルトの名無しさん:05/01/07 00:22:26
>>60
そんなの、お前の技量次第だろ。
やり方はいくらでもある。
描画速度とかクオリティを見比べながら、
自分が作りたいものに近づくようにいろいろ試行錯誤してみればいいんじゃないの

62 :デフォルトの名無しさん:05/01/07 03:29:16
適当な大きさに分けて、まず簡易クリッピングしる!

63 :デフォルトの名無しさん:05/01/07 09:34:36
>62
適当な大きさにわけるってのは
1つのマップを15×15に刻むようなイメージでいいんだろうか?
あと簡易クリッピングって何?

64 :デフォルトの名無しさん:05/01/07 14:33:57
AudioVideoPlaybackでmp3を再生しようとしているのですが
特定のMP3を再生しようとすると

アプリケーションでエラーが発生しました。-2147221231(Unknown) at Microsoft.DirectX.AudioVideoPlayback.Audio.Open(String fileName,Boolean autoRun)
・・・

とかエラーメッセージが出ます
他のMP3は問題なく再生できるのですが、一部のMP3を再生しようとすると必ずこのエラーが出ます
再生できるMP3とできないMP3の違いもよくわかりません。
どうすればいいでしょうか?

65 :64:05/01/07 16:49:12
再生できないMP3の条件がわかりました。
どうやらID3V2タグのサイズ指定がおかしい奴は再生できないようです。
具体的にいうと、ID3V2タグのサイズをXとしたときファイルの先頭からX+10番目のアドレスから
曲本体のデータが始まっていない場合エラーになるようです
でも、普通のMP3プレーヤーではサイズ指定がおかしくても普通に再生できます
サイズ指定の狂った奴でも再生できるようにするにはどうすればよいでしょうか?
なるべく、MP3ファイルの方はいじらないようにしたいのですが・・・

66 :60:05/01/07 19:49:16
とりあえず、巨大なモデルを空間分割し、ゲーム開始前にボクセル毎にモデルを作成することにしました。
この時2個以上のボクセルにまたがってるポリゴンはloose octree的な考え方で対処します。
これでバーテクスバッファを毎フレーム作成するような無駄はなくなルト思います。

67 :デフォルトの名無しさん:05/01/07 22:53:41
あ、そう。

68 :デフォルトの名無しさん:05/01/07 23:38:00
>>67
無駄な事書くなら、
無難に情報量の多いC++でやれよw

69 :デフォルトの名無しさん:05/01/08 03:19:45
>>67-68
ほんとにお前らみたいなの死んでくれ

70 :デフォルトの名無しさん:05/01/08 12:09:18
一般的な文言を鵜呑みにして他人をも洗脳しようとする>>1-69の方がよっぽどクズ。


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

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

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

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

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


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

俺はもちろんネイティブDirectXも使うし、Managed DirectXもありがたく使わせてもらっている。

71 :デフォルトの名無しさん:05/01/08 15:51:05
> いろんな系統のプログラムで測定してみたが、
>俺の環境ではManagedによるパフォーマンス低下は大体0〜15%。

両方同じように作ってあるのはSDKのサンプルぐらいだが、
>大体0〜15%。
この範囲からは完全に外れた数値が出ている。
ということは別のプログラムを用意したと言うことなのだろうから、
そのいろいろなプログラムとやらを具体的に提示してみろ。

とりあえず、逃げるなよ。

72 :デフォルトの名無しさん:05/01/08 15:57:45
>>71
MS公式アナウンスに噛み付いてるのはおまいさんなんだから
一応は参考値ぐらい出すのが筋じゃないか?

73 :デフォルトの名無しさん:05/01/08 16:55:21
参考値も何も、SDKのサンプルを実行すれば確認できるだろう。
C#とVC版で0%は皆無、最悪なものになるとFPSは半分になる。
で、まずは0%だったものを提示してみろ。
いつまでも言い訳をこねて逃げ回るなよ。

74 :デフォルトの名無しさん:05/01/08 16:57:51
なんで怒ってんだ?カルシウム取れよ。

75 :デフォルトの名無しさん:05/01/08 17:13:07
どれもFPSが半分になんてならないけどなぁ

76 :デフォルトの名無しさん:05/01/08 17:16:24
>>71
コピペにレスご苦労さん。

ところで、どのサンプルで試してどのくらいの数値が出た?

77 :デフォルトの名無しさん:05/01/08 17:33:07
ちなみにDecemberだとManagedで遅くなる、都合の悪いサンプルは添付されなくなっている。

78 :デフォルトの名無しさん:05/01/08 18:08:13
カルシウムはマグネシウムと一緒に摂らないと意味がないよ
野菜食っても肉とらないのと同じくらい無意味


79 :デフォルトの名無しさん:05/01/08 19:06:06
>>77
じゃぁ October でも Summer でもいいから
劇的に差がつくやつを具体的にどれか挙げてくれよ


80 :77じゃないけど:05/01/08 19:51:17
サンプルを試した結果。1年以上前だけど。

http://pc5.2ch.net/tech/kako/1040/10404/1040435898.html
ここの924
まぁ、漏れが書いたレスなんだが。

BillBoardやVertexBlend は結構な差があるけど、今のバージョンで
シェーダ環境下で同じ事やったら、どれぐらい差が付くかは不明。

ゲームはベンチマークじゃないのだから、実行速度だけで
評価するのもどうだかと思う。

81 :デフォルトの名無しさん:05/01/08 19:52:37
>>70の文章は何度コピペされれば気が済むんだ。もう見飽きたんだが。

>71
>この範囲からは完全に外れた数値が出ている。
「GPUよりCPUを酷使するプログラムでは パフォーマンスはネイティブに比べ大きく低下する」
って書いてるじゃん

82 :デフォルトの名無しさん:05/01/08 20:08:23
どんなにGPU側の処理が重かろうと、CPUが処理を行う限り0%はあり得ないはずだが、
どうやったら0%になるの?

83 :デフォルトの名無しさん:05/01/08 21:17:39
>>82
正真正銘のバカだな。何が「ありえないはず」だよ。自分ではちょっとでもやってみたの?

あるフレーム描画で、CPU側の処理よりGPU側の処理の方が時間がかかったら、
そのフレームのプレゼンテーションが終わるまで、CPUは待たされることになる。
結果、フレームレートはGPU側の処理のみに依存する。
念のため言っとくと、VSYNCどーのこーのは関係ないぞ。

例になるかは分からんが、俺の環境(しょぼい)では
画面のクリアだけを行うループでは、どっちでも約4010fps、
クリアして疾走Tinyのみを表示するループでは、どっちでも約1560fpsで、全く変わらず。

84 :83:05/01/08 21:20:53
ごめん、俺大嘘書いてるわ。
とりあえず>>83はスルーしてください。

85 :83:05/01/08 21:22:58
あ、計測結果は本当で間違いないです。

86 :デフォルトの名無しさん:05/01/08 21:57:24
おまいら頭良さそうだから聞くけど>>57ってどんな内容だった?

87 :デフォルトの名無しさん:05/01/08 23:33:57
>>86
Excite翻訳すごく使えそうだから使うけど>>57ってこんな内容だった。


JO: Managed DirectXの周りのあなたの3つの最も好きなものが何ですか?

Tm: それは方法の解釈されたa多数であるかもしれません。
例えば、私は、私が設計して、建てたAPIを使用している(そして、エンジョイ)人々が全くすさまじいと考えます。

JO: あなたは、どんな領域がManaged DirectXに最も多くの改善の余地を持っていると感じますか?

Tm: API明快。 APIは、CLR用途の残り、
それがまだそこでないところのそうであるガイドラインで既に'ネイティブのAPIより清潔で'、さらにインラインですが。

JO: あなたが読者のためにむこうでManaged DirectXに関して言いたい何か最後のこと?

Tm: さて、私はたった今を考えることができるというわけではありません。 =) ゲームとアプリケーションを書き続けてください。

JO: これらの質問に答えるには時間がかかってくださってありがとうございます!


88 :デフォルトの名無しさん:05/01/09 02:13:39
どの辺に改善の余地が有ると思います?

APIの明快さかな。まだ一部に残るAPIの難解だからね。ネイティブAPIよりは明快になったんだけど。
Whidbey(VS2005)で、搭載される新機能例えばジェネリクスなどは全く考慮されてないからね。
近い将来それらの問題を扱うことが私の計画です。



89 :デフォルトの名無しさん:05/01/09 03:30:21
Decemberを入れて、参照を最新のものに変えたら、
さっきまで動いてた自作のXファイルプレイヤーが
読み込みで失敗するようになってしまった。
どこで止まるのかよくわからなくて、最新のtinyプレイヤーサンプルと比較しながら
調べてます。
同じ経験の方います?

90 :デフォルトの名無しさん:05/01/09 03:42:20
そういう場合、大抵はグラボのドライバを最新のものに更新すれば直ったりする。

91 :デフォルトの名無しさん:05/01/09 11:03:49
C#の本ヌレってどこ?

92 :デフォルトの名無しさん:05/01/10 04:38:28
>>90レストンクス。ダメですた。

Mesh.LoadHierarchyFromFileの引数の、
AllocateHierarchy継承クラス内の
コールバック関数のCreateMeshContainerが呼ばれた後に
エラーが出るようです。

検索して同じ症例を探しても見つからなくて、サンプルと
見比べても(全く同じでは無い)問題無いと思うんだけど、
ずっと調べてるけどわからない・・・
ちなみに
心当たりある方よろしくお願いします。
どう調べたらもわからない状態なんで寝て明日考えますorz

93 :89==92:05/01/10 04:43:31
ちなみに自作のものはCutting Edgeを見ながら
作ったものです。明日そのままのソースで問題無いか
調べてみよう

94 :デフォルトの名無しさん:05/01/10 13:00:43
どんなエラーが出るか書いてくれれば、解答は出ないかもしれないけどより有用なレスになると思う

95 :89:05/01/10 14:43:39
>>94レストンクス。

December付属のSimpleAnimationサンプル(そのままなら問題無く動く)を、
SimpleAnimation.csのみで動くように改造してみたら、同じ現象が起きました。
Mesh.LoadHierarchyFromFileを呼んで、終わる前に以下のようにスローされます。

'Microsoft.DirectX.Direct3D.Direct3DXException' のハンドルされていない例外が
microsoft.directx.direct3dx.dll で発生しました。
追加情報 : アプリケーションでエラーが発生しました。

どうやらデバイスの作成など、事前の処理に問題があるようです。
GPUはRadeonX600で、Formを継承したクラスを使用してます。
やっているのはドライバの作成くらいで、以下の感じです。

PresentParameters presentParams= new PresentParameters();
presentParams.Windowed=true;
presentParams.SwapEffect=SwapEffect.Discard;
presentParams.EnableAutoDepthStencil=true;
presentParams.AutoDepthStencilFormat=DepthFormat.D16;

device = new Device(0,
DeviceType.Hardware,
this,
CreateFlags.HardwareVertexProcessing,
presentParams);

96 :デフォルトの名無しさん:05/01/10 14:49:19
削ったんならどこかにそーそあげて見れ

97 :デフォルトの名無しさん:05/01/10 14:49:50
スタックトレースくらい書けよ

98 :デフォルトの名無しさん:05/01/10 16:30:29
>>96
ttp://gamdev.org/up/img/2226.zip
upしますた。
*注意点*
・1ソースだけで動くように改造したものです
・Mesh.LoadHierarchyFromFileが通るか通らないかのテスツなので、メインループの処理は
 実装してません
・パスの部分は任意に変更して下さい

>>97
すみません、意味がわかりません。
よろしかったらご教授願います

99 :デフォルトの名無しさん:05/01/10 17:12:04
スタックトレースを調べて(↓)、出力してみました。
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1041/cpref/html/frlrfsystemdiagnosticsstacktraceclasstopic.htm

Method: Void .ctor()
Line Number: 60

Method: Int32 Main()
Line Number: 376

100 :デフォルトの名無しさん:05/01/10 19:48:29
>>98
意味がわからないというのは「スタックトレース」という単語のことか?
それともスタックトレースを書く理由か?

101 :98:05/01/10 20:13:23
>>100
すみません単語の意味も書く理由もわかりません。
Helpで調べて>>99のように出力されました。
でもこれからどう原因を突き止めるのかわかりません。

102 :デフォルトの名無しさん:05/01/11 01:10:30
メソッドの呼び出し履歴

103 :デフォルトの名無しさん:05/01/12 00:17:52
まっさらの状態からDirectXSDKインスコする場合
8月 10月 11月の順に入れればいいんでしょうか?

104 :デフォルトの名無しさん:05/01/12 01:19:45
>>103
一番新しい奴だけでOK

105 :デフォルトの名無しさん:05/01/12 23:03:59
>>104
削られてるサンプルとかなかったっけ

106 :デフォルトの名無しさん:05/01/15 16:25:53
マジックアイ見たいな立体に見えるやる作って動かしてみたが動画だと著しく疲れるな・・・・

107 :デフォルトの名無しさん:05/01/18 04:02:13
IndicatedConnectAbortedイベントってどういう時に使うのよ?

というかC# + DirectPlayについて言及しているサイトって無いのか?

108 :デフォルトの名無しさん:05/01/18 05:45:59
DirectPlayってもう次で消えるんでしょ?

109 :デフォルトの名無しさん:05/01/18 07:03:13
これか・・・。
ttp://www.microsoft.com/japan/msdn/directx/dxreadmej.asp

その他の注意点

DirectPlay は不適切となり、旧式のものとみなされています。
DirectPlay ランタイム コンポーネントは、オペレーティング システムでサポートされていますが、
ヘッダー・ライブラリ・ドキュメントは将来のリリースの SDK で削除されるでしょう。
既存のアプリケーションを修正するとき、このコンポーネントへの依存性を削除することを強く推奨します。


110 :デフォルトの名無しさん:05/01/18 07:15:01
便利なのになぜ削除されるんだろ

111 :デフォルトの名無しさん:05/01/18 11:15:10
いままさにDirectPlayの勉強してるところなのに
シネと言われたような気分だ・・

Winそけっとで通信しろと?
それとも新たなライブラリでも作るんか?

それとボイスチャットはどうなるのだね
あれだけのためにDirectPlay使っておったのに

112 :デフォルトの名無しさん:05/01/18 12:31:16
Indigoになるんだろ

113 :デフォルトの名無しさん:05/01/19 02:05:08
Direct3Dで、

device.Dispose();
を呼ぶと2分近く待たされるようになったんですが
何か「これじゃね?」という事例ありませんでしょうかorz

色々いじってるもんで、原因の切り分けがしづらくて困ってます
Athlon64+RADEON9600XTのマシンでも、ノートマシンでも発症してます

114 :デフォルトの名無しさん:05/01/19 07:13:59
SetPeerInformationメソッドを呼び出すとInvalidFlagsExceptionを吐くんだが、
PlayerInformationってのは接続後には変更できないのか?

115 :デフォルトの名無しさん:05/01/19 13:19:25
>113
ラデ9600Proだがそんな事象はデテナイ
オタフクソース晒すなら検証するが?

116 :113:05/01/19 14:09:48
>>115
ソースを大きくいじる前は起こってなかったので
99%ソースがウンチョスなんだと思いますorz

Dispose()って実際どんな処理してるんでしょ?
確保して解放されてないメッシュとかの解放も
ここでやってるんでしょうか?

こういう情報はどうやって調べていいのかもわからないので困ります。。。

117 :デフォルトの名無しさん:05/01/19 14:33:59
>>116
ManagedCodeの中身が知りたいなら.NET Reflectorでも使えば

118 :デフォルトの名無しさん:05/01/21 02:26:27
Mesh Intersectは内部でどんなロジックで動いてるんでしょう?
またMeshとMeshの接触はどう計算すればいいんでしょう?

119 :デフォルトの名無しさん:05/01/21 07:02:35
>>118
釣りは他所でやってね

120 :デフォルトの名無しさん:05/01/21 09:42:25
>>119
つりじゃねーよ。それともそんなにへんなこと聞いてるのか?

121 :デフォルトの名無しさん:05/01/21 14:04:31
トム・ミラーたん他、神々によるトーク
DirectX(C++)マネージャもMDXまんせーです

MSDN Online Chats is a forum to engage in discussions about Microsoft products or technologies.: Background Intelligent Transfer Service (BITS)
http://www.msdn.microsoft.com/canada/chats/transcripts/2005_1_13.aspx


122 :デフォルトの名無しさん:05/01/21 21:14:38
>>118
一行目は真上に書いてある。
二行目は色んなところで散々ガイシュツ。

123 :デフォルトの名無しさん:05/01/22 00:31:13
>>121
通信は.NET frameworkで面倒みるからDirectPlay廃止!
と言ってるようにみえるのは邪推かな。

124 :デフォルトの名無しさん:05/01/22 01:41:29
VertexBuferとかいじったときにブルースクリーン出るぞ( ゚Д゚)ゴルァ!!
恐ろしくてデバッグできん・・・orz

125 :デフォルトの名無しさん:05/01/22 02:29:33
Mesh.BoxでMesh作ってその中で次のように呼ぶと

VertexBuffer vb=null;
using (vb = mesh.VertexBuffer)
{
if (vb != null)
{
   CustomVertex.PositionNormal[] verts =
(CustomVertex.PositionNormal[])vb.Lock(0,LockFlags.NoDirtyUpdate);  <--ここ

ここでヌルリが出るんですが、なんででしょう?
やりたかったのは頂点データ持ってきて衝突判定とかにつかおうとしてます。
LockFlagはReadOnlyとかNoneも試しました。

126 :デフォルトの名無しさん:05/01/22 21:03:05
vbがnullだって怒られるの?

127 :125:05/01/22 22:43:32
解決しました。
vbがnullではなく中のオブジェクト取得(よくわからんが配列生成呼び出し履歴で落ちてた)で出ていたようです。
CustomVertex.PositionNormal[] verts =
(CustomVertex.PositionNormal[]) vb.Lock(0,typeof(CustomVertex.PositionNormal), LockFlags.NoDirtyUpdate,8);
頂点サイズを指定することで解決しました。

128 :デフォルトの名無しさん:05/01/22 23:08:24
座標変換で質問です。
スクリーン座標を得るのに次のようなコードを書いたのですが中心から5%ほど外側に大きくずれる感じです。
だめだしお願いします・・・
static public Matrix ViewportMtx(int x, int y, int width, int height, float minz, float maxz)
{
Matrix mat = new Matrix();
mat.M11 = width / 2;
mat.M22 = -height / 2;
mat.M33 = maxz/(maxz - minz);
mat.M41 = x + width / 2;
mat.M42 = y + height / 2;
mat.M43 = minz;
mat.M44 = 1;
return mat;

}
static public PointF ConvertV3To2DPoint(Vector3 v, Matrix world, Matrix view, Matrix proj, Viewport vport)
{
Matrix mat = world * view * proj * ViewportMtx(vport.X, vport.Y, vport.Width, vport.Height, vport.MinZ,vport.MaxZ);
Vector4 afterV = MultiplyV3MtxToV4(v, mat);
return new PointF(afterV.X/afterV.W, afterV.Y/afterV.W);
}

129 :デフォルトの名無しさん:05/01/23 01:26:27
ちなみにおまいらどのぐらいパフォーマンス出るんですか?
うちの環境では8500ぐらいのMesh.BOxを表示しただけで3fpsぐらいになりますが。
1.5GCeleGEForce2です

130 :デフォルトの名無しさん:05/01/23 03:07:28
>>129
コード置いといてくれれば図る人いると思うけど
わざわざ調べたりするのは酔狂な人だけだと思う

131 :129:05/01/23 04:08:27
いや大体どのぐらい出るかの目安を知りたかったので・・・

132 :デフォルトの名無しさん:05/01/24 07:15:39
Microsoft.DirectX.dllのバージョンについてごちゃごちゃ調べてたんだが、
「Runtime Information」を使用すると[5.04.0000.2904]と出るのに、
C:\windows\assembly\内のMicrosoft.DirectX.dllアセンブリのバージョンは[1.0.2902.0]ってなってたんだ。
これって不味くない?

133 :デフォルトの名無しさん:05/01/24 15:41:16
C#でDirectXのバージョンを取得するコードってどう書くの?

134 :デフォルトの名無しさん:05/01/24 16:19:20
バージョンとアセンブリは全く違う。
勘違い甚だしいこと極まりないな。

135 :デフォルトの名無しさん:05/01/24 17:05:51
半透明なめっしゅってどうかいたらいいんでしょう?

136 :デフォルトの名無しさん:05/01/24 21:37:39
SetAlpha(1.0f);
DrawOpaqueMesh();
SetAlpha(0.5f);
DrawTransparentMesh();

137 :デフォルトの名無しさん:05/01/25 21:43:34
>>132
Runtime Informationって何ですか?何を実行すれば見られるんでしょうか?

138 :デフォルトの名無しさん:05/01/26 18:48:26
最近の厨房様は検索するという行為をご存じないらしい
ttp://www.google.com/search?hl=ja&q=Runtime+Information+DirectX


139 :デフォルトの名無しさん:05/01/26 19:31:04
ここ最近の厨房様に共通する特徴でいらっしゃいます。
他スレでもここ数日だけで単純にググればすぐ分かるようなご質問を、畏れ多くても
何点か指摘させていただきました。


140 :デフォルトの名無しさん:05/01/28 15:24:18
海外サイトでPurple#という3Dライブラリを発見したのですが、このライブラリを
使ってる人いますか?
それと、このライブラリを紹介している日本語サイトがあったら教えてください。

141 :デフォルトの名無しさん:05/01/28 15:49:28
>>140
英語わからねぇなら無理して使うなよ背伸び厨

142 :デフォルトの名無しさん:05/01/28 16:08:54
使っていません

143 :デフォルトの名無しさん:05/01/29 02:24:25
>>141
君は怒りっぱなしだな。
C丼の使いすぎじゃないのか?

144 :デフォルトの名無しさん:05/01/29 05:29:06
中華丼?

145 :デフォルトの名無しさん:05/02/02 17:16:23
directSoundで、再生の早さを変えず音の高さを変えるにはどうすれば?
Frequencyだと、早さと音が変わってしまう。
どなたか教えて下さいm(_ _;)m

146 :デフォルトの名無しさん:05/02/02 19:04:59
信号処理を勉強して自分で変換を書くか、
適当なライブラリを使う。

俺は以前ここのFFTパッケージを使わせてもらった。
ttp://momonga.t.u-tokyo.ac.jp/~ooura

俺が使ったときはWAVファイル出力だったんだが、
もちろんDirectSoundのバッファに対しても可能。

147 :デフォルトの名無しさん:05/02/04 13:52:26
スプライト使って立ち絵表示するとき、別のグレースケール画像を
アルファマスクにして部分的な半透明を施す方法ありますか?

『マスク画像の黒⇒0%、白⇒100%、灰色⇒半透明』な感じで

148 :デフォルトの名無しさん:05/02/04 22:44:18
>>147
ある。

149 :デフォルトの名無しさん:05/02/05 02:26:12
>>147
あるなぁ。

150 :デフォルトの名無しさん:05/02/05 02:37:29
>>147
あるでげす。

151 :デフォルトの名無しさん:05/02/05 03:55:54
>>147
あるびんとらヴぃ

152 :147:05/02/05 15:07:07
>>148-151
キーワードだけでいいから何か教えろよw

153 :147:05/02/05 19:59:45
Sprite.Draw 時にマスク、じゃなくて Texture に直接加工を施すのか
『Texture.LockRectangle ⇒ unsafe カリカリ』で良いの?

154 :デフォルトの名無しさん:05/02/05 20:15:20
ありますか?って質問だから実に正しい回答だと思う

155 :147:05/02/05 20:19:52
>>154
俺もそう思う。なにか不満でも?

156 :デフォルトの名無しさん:05/02/05 20:21:46
>>154
それ以前に>>150>>151は何語なのかすら分からんぞ

157 :デフォルトの名無しさん:05/02/07 11:08:58
きもっ

158 :デフォルトの名無しさん:05/02/08 20:43:03
ひさしぶりにきてみたら
きもいすれになってしまってるのな
おまいらもっとなかよくしる

159 :デフォルトの名無しさん:05/02/11 11:31:57
C#←なんて読むの?

160 :デフォルトの名無しさん:05/02/11 13:06:51
しーしゃーぷ とよみます。

161 :デフォルトの名無しさん:05/02/11 23:26:08
きもっ

162 :デフォルトの名無しさん:05/02/12 01:35:52
C丼→何て読むの?

163 :デフォルトの名無しさん:05/02/12 01:59:58
たね とよみます。

164 :デフォルトの名無しさん:05/02/12 10:29:04
きもっ

165 :デフォルトの名無しさん:05/02/15 22:09:30
くそすれさげ

166 :デフォルトの名無しさん:05/02/16 02:28:12
きもっ

167 :デフォルトの名無しさん:05/02/27 02:27:08
05/02/16 02:28:12

168 :デフォルトの名無しさん:05/03/11 01:52:20
しつもーん

VisualStudio.NET2003
が既にインストールされている環境で
DirectXSDK(Oct2004)をインストールしたのですが、
プロジェクト作成時のテンプレートにDirectX9 C# Wizardのアイコンが出てきません。

バージョン情報を見ると、「セットアップされている製品」の中に
DirectX extensions for Visual Studio .NET
と表示されているので一応SDKはインストールされているはずなのですが。。。

なぜでしょうか。


169 :デフォルトの名無しさん:05/03/11 02:29:26
おやまあ、お客さんだよ珍しい。

170 :デフォルトの名無しさん:05/03/11 04:47:02
>>168
Oct2004だとWizard無くなってた気がする。
DXSDKのサンプルブラウザからEmptyProjectを入れるか古いWizardを流用配置するかのどっちか。

171 :168:05/03/11 09:03:42
なるほど、Wizardは古いバージョンのみだったんですね〜。
早速サンプルブラウザからEmptyProjectを含めていろいろインストールしてみたのですが、
VS.NETでビルドすると、実行時に
「オブジェクト参照がオブジェクトインスタンスに設定されていません。」
と出てしまいます。。

サンプルブラウザの「Executable」からはどれを実行しても正しく動作するのですが。

どういうこっちゃ。。。


172 :デフォルトの名無しさん:05/03/11 21:32:57
>>171
画像なんかのリソースを持ってきてないとか・・・・・・んなわけないか

173 :デフォルトの名無しさん:05/03/11 22:30:29
>>171
どこでエラーが起こっているか書こうよ・・・

174 :168:05/03/11 22:55:16
すみません。

エラーの詳細は、
実行時で
「Failed Creating the Direct3D device.」

SDKサンプルのEmptyprojectでいうと
common\dxmutmisc.cs:line 822, 832
common\dxmut.cs:line 541, 2092, 2745, 2771
emptyproject.cs:line 433

です。



175 :デフォルトの名無しさん:05/03/12 16:08:12
特に何のエラーもなく実行できるが…

emptyproject.cs:line 433 というとこれかね?
sampleFramework.CreateDevice( 0, true, Framework.DefaultSizeWidth, Framework.DefaultSizeHeight,
sample);

ソースコードが明示されてなかったからわざわざEmptyProjectつくっちゃったよ・・・

176 :168:05/03/12 16:29:08
具体的な箇所は、、

common\dxmutmisc.cs
822: e.OnResetDevice();
832: e.OnLostDevice();

common\dxmut.cs
541: ChangeDevice(settings, null, false);
2092: throw;
2744-45: // Call the resource cache device reset function
ResourceCache.GetGlobalInstance().OnResetDevice(device);
2771付近:
finally
{
if (!success)
Cleanup3DEnvironment(true);
}

emptyproject.cs
433: sampleFramework.CreateDevice( 0, true, Framework.DefaultSizeWidth, Framework.DefaultSizeHeight,
sample);

でつ・・


177 :デフォルトの名無しさん:05/03/12 21:23:41
複数個所で同時にエラーが起こっているような物の言い方だな

178 :デフォルトの名無しさん:05/03/15 01:22:45
World WindがMDXの牽引役になってくれるかもしれん。
うちらも続かんと。

179 :デフォルトの名無しさん:05/03/16 12:59:13
>>178
検索した。凄いソフトが出てきたなおぃw

180 :デフォルトの名無しさん:05/03/16 22:37:00
>>180
かなり前からあるんだが。

181 :デフォルトの名無しさん:05/03/16 22:38:07
>>181
無限ループ逝ってくる。

WW、微妙にバージョンアップしてるね。

45 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)