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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
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
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の違いもよくわかりません。
どうすればいいでしょうか?
6564:05/01/07 16:49:12
再生できないMP3の条件がわかりました。
どうやらID3V2タグのサイズ指定がおかしい奴は再生できないようです。
具体的にいうと、ID3V2タグのサイズをXとしたときファイルの先頭からX+10番目のアドレスから
曲本体のデータが始まっていない場合エラーになるようです
でも、普通のMP3プレーヤーではサイズ指定がおかしくても普通に再生できます
サイズ指定の狂った奴でも再生できるようにするにはどうすればよいでしょうか?
なるべく、MP3ファイルの方はいじらないようにしたいのですが・・・
6660: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 でもいいから
劇的に差がつくやつを具体的にどれか挙げてくれよ
8077じゃないけど: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で、全く変わらず。
8483:05/01/08 21:20:53
ごめん、俺大嘘書いてるわ。
とりあえず>>83はスルーしてください。
8583: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
9389==92:05/01/10 04:43:31
ちなみに自作のものはCutting Edgeを見ながら
作ったものです。明日そのままのソースで問題無いか
調べてみよう
94デフォルトの名無しさん:05/01/10 13:00:43
どんなエラーが出るか書いてくれれば、解答は出ないかもしれないけどより有用なレスになると思う
9589: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
意味がわからないというのは「スタックトレース」という単語のことか?
それともスタックトレースを書く理由か?
10198: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だがそんな事象はデテナイ
オタフクソース晒すなら検証するが?
116113: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だって怒られるの?
127125: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
コード置いといてくれれば図る人いると思うけど
わざわざ調べたりするのは酔狂な人だけだと思う
131129: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
あるびんとらヴぃ
152147:05/02/05 15:07:07
>>148-151
キーワードだけでいいから何か教えろよw
153147:05/02/05 19:59:45
Sprite.Draw 時にマスク、じゃなくて Texture に直接加工を施すのか
『Texture.LockRectangle ⇒ unsafe カリカリ』で良いの?
154デフォルトの名無しさん:05/02/05 20:15:20
ありますか?って質問だから実に正しい回答だと思う
155147: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を流用配置するかのどっちか。
171168: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
どこでエラーが起こっているか書こうよ・・・
174168: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つくっちゃったよ・・・
176168: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、微妙にバージョンアップしてるね。
182デフォルトの名無しさん:2005/03/23(水) 06:34:43
.net + DirectX で作ったソフトを公開したいんだけど、
.net FrameworkとDirectXを入れてもらえば
Xp、2K、Me、98、95 で動くかな?
他にユーザーに用意してもらう事はある?
183デフォルトの名無しさん:2005/03/23(水) 17:24:49
>>182
用意するのは次の3つ

 .NET Framework
 DirectX
 Managed DirectX

このうち、一番下が難所。コレを入れるのに貴方はもう一回質問するだろう。
あと、多分 95 はサポート外
184182:2005/03/23(水) 20:02:28
>>183
インストーラー作ればOKかな?
インストールフォルダにdllがインストールされるけど
185デフォルトの名無しさん:2005/03/24(木) 00:17:40
MDXって配布OKだっけ?

ちなみに単にDLL置くだけじゃ動かない・・・。
186デフォルトの名無しさん:2005/03/24(木) 08:35:24
Managed DirectX はインストーラー作ったときに
組み込まれるdllだけじゃダメなの?
こればっかりは開発者環境では確認出来ない・・・
187デフォルトの名無しさん:2005/03/24(木) 19:30:54
188デフォルトの名無しさん:2005/03/24(木) 23:39:56
なんかManaged DirectXつかったフリーソフトあったら
紹介して参考にしたいから。
189デフォルトの名無しさん:2005/03/25(金) 17:14:38
>>188
例えば >>178 とか?


ところで、MDX は単なるラッパーなんだから、独自に DirectX のラッパー作っちゃえば
MDX 配布とか関係ないよね
みんなやらないのは、単に面倒だから?
190デフォルトの名無しさん:2005/03/25(金) 23:45:31
MDXの登場で.NET言語からDirectXを利用しやすくなったのに、
独自に作るのは意味が無い気がする。
191デフォルトの名無しさん:2005/03/26(土) 10:44:59
>>189
> 独自のラッパー

巨大でややこしいインストーラーを避けたいがために、
どうせ自分専用だと割り切って作るなら、選択肢としてはあり得るかと思います。
思ってはいるのですが…

・Managed C++(次版では C++/CLI)を覚えること
・DirectX のラッパーライブラリを作ること自体、多少厄介な作業であること
・MDX という「主流」から離れること
・将来、配布問題が解決された暁には、自作ライブラリなど一瞬で粉みじんになること
・そこまでして .NET に浸りたいのですか → もう後戻りできないよ orz

…やはり素人にはお勧めできません。
192デフォルトの名無しさん:2005/03/26(土) 14:45:04
大丈夫だよ189はプロだから
193ォルトの名無しさん:2005/04/05(火) 00:27:27
Microsoft.DirectX.Direct3D環境にて、

presentParams.Windowed=false:
presentParams.PresentationInterval=PresentInterval.Immediate;

のモードにて、自前で垂直同期を取って、

device.Present

を実行しようとしていますが、垂直同期がうまくとれず
ティアリングが起こっております。

原因は、

device.GetRasterStatus(0)
または
device.RasterStatus

で取得しているラスタ情報に問題がありそうです。
下記のような感じで同期をとっております。
---Render-----------------------------------------




while(device.RasterStatus.InVBlank==true);
while(device.RasterStatus.InVBlank==false);
device.Present();
----------------------------------------------------

この件につきまして、何かご存知の方がいっらっしゃれば、
ご教授、お助けください。
194デフォルトの名無しさん:2005/04/05(火) 10:19:46
Microsoft.DirectX.Direct3D環
presentParams.Windowed=false:
presentParams.PresentationInterval=PresentInterval.Immediate;
のモードにて、自前で垂直同期を取って、
(アプリの速度がリフレッシュレートに支配されるのがいやなので)

device.Present

を実行しようとしていますが、垂直同期がうまくとれず
ティアリングが起こっております。

原因は、
device.GetRasterStatus(0)
または
device.RasterStatus
で取得しているラスタ情報に問題がありそうです。
下記のような感じで同期をとっております。
---Render-----------------------------------------



while(device.RasterStatus.InVBlank==true);
while(device.RasterStatus.InVBlank==false);
device.Present();
----------------------------------------------------

この件につきまして、何かご存知の方がいっらっしゃれば、
ご教授、お助けください。
195デフォルトの名無しさん:2005/04/05(火) 22:55:16
ティアリングが出る原因は知らないけど、結局V-Syncに同期しているのだから、
アプリの速度はリフレッシュレートに支配されない?

ちなみにポーリングでループするのは、お勧めできない。
196デフォルトの名無しさん:2005/04/06(水) 01:39:52
197デフォルトの名無しさん:2005/04/06(水) 01:47:17
>>195
同期のタイミングを待っている間、他の処理をしようという目論みです。

presentParams.PresentationInterval=PresentInterval.One;
で、
device.Present();
を使うと、同期を取る間帰ってこないので。

同期をとらないと、ティアリングが発生します。

>ちなみにポーリングでループするのは、お勧めできない。
これは例です。
本来はこんなことしません。
(実はしてたりして)
198デフォルトの名無しさん:2005/04/07(木) 22:01:10
ちなみにマルチは、お勧めできない。

つーか回答者に失礼すぎ。てかコピペ?
GDNJか2chかどっちかはっきりさせろ
199デフォルトの名無しさん:2005/04/08(金) 22:43:53
GDNJとかよ。勇気あんな。
200デフォルトの名無しさん:2005/04/09(土) 02:41:59
くっちゃね
201デフォルトの名無しさん:2005/04/09(土) 18:25:38
.netの新規プロジェクトにDirectXのテンプレートがありません。
どうしたら表示されますか?
202デフォルトの名無しさん:2005/04/09(土) 18:42:10
>>201
[スタート]→[プログラム]→[Microsoft DirectX 9.0 SDK Update (リリース年月)]→[DirectX Sample Browser]→[EmptyProject]→[Install Project]
203デフォルトの名無しさん:2005/04/09(土) 19:11:00
2005Aprilには日本語ドキュメントついてないの?
2004SummerにはUnzipしたときに取り出せるらしいが。
204デフォルトの名無しさん:2005/04/09(土) 19:14:12
Unzipした時に無かったら2004Octで我慢するしかないんじゃね?
205デフォルトの名無しさん:2005/04/09(土) 20:40:08
そうする
206デフォルトの名無しさん:2005/04/09(土) 23:22:55
くっちゃね
207デフォルトの名無しさん:2005/04/09(土) 23:24:11
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.1.3/
http://192.168.1.3/~ss.jpg
http://jony/
http://jony/~ss.jpg
208デフォルトの名無しさん:2005/04/27(水) 23:03:38
C++ の D3DXVec3Project  に相当する関数は C#にはアリマセンカ?
209デフォルトの名無しさん:2005/04/27(水) 23:43:24
というか誰も居ないのかここ・・ 他で質問シテキマス
210デフォルトの名無しさん:2005/04/29(金) 01:23:34
C#.NET+Managed DirectXでシェーダープログラムを組んでるんですが、「デバッグ」→「Direct3D」→「Start with Direct3D Debugging」をしてみてもコンパイルをするのみで実行しません。
皆さん普通にシェーダーデバッグできてますか?
情報知っている方どうぞ教えてください。
設定その他はしてあり、C++の環境ではシェーダーデバッグに入れます。
211デフォルトの名無しさん:2005/04/29(金) 02:00:51
マルチイクナイと説教したいが
質問に答えられないので寝る
212デフォルトの名無しさん:2005/04/30(土) 11:57:06
>>210
デバッグはうちも出来んよ。C# では何故か。
普通に実行して、コンソールとかにログ吐けばよろし。
213デフォルトの名無しさん:2005/04/30(土) 22:08:51
DrawTextで "MS 明朝"のサイズ20で"テストテスト"と表示する場合、
実際何px×何pxの描画サイズで表示されるのかを調べる方法を教えてください。
214デフォルトの名無しさん:2005/05/01(日) 01:54:21
DirectXじゃないけど、描画されるテキストサイズはこんな感じで調べてる(返り値はfloat)

graphics.MeasureString("テストテスト",font).Width
graphics.MeasureString("テストテスト",font).Height
215デフォルトの名無しさん:2005/05/01(日) 05:09:09
>>214
ありがとうございます。
試してみます。
216デフォルトの名無しさん:2005/05/01(日) 18:19:12
>>215
もう居ないかな〜

最新版だと、Direct3D.Font.MeasureString が使えます (何故か返り値が Rectangle だけど)
217デフォルトの名無しさん:2005/05/01(日) 22:17:10
>>216
ありがとうございます。
とても役に立ちますね。コレ。
218デフォルトの名無しさん:2005/05/07(土) 05:33:42
フン・・・無能ばかりで笑えるぜ
219デフォルトの名無しさん:2005/05/07(土) 15:46:52





ここは218がどれだけ有能か検討するスレになりました
220デフォルトの名無しさん:2005/05/07(土) 16:34:46
218は人工無能
221デフォルトの名無しさん:2005/05/08(日) 10:21:10
(>>218).Dispose();
222デフォルトの名無しさん:2005/05/09(月) 05:03:42
   │\
   │  \≡(`Д´;))≡=    オオッ!
   │   \≡// ))≡=
   │    ≡」」」≡=
   │
   │
   │
   │
   │
   │
  >>219
  >>220
  >>221
223デフォルトの名無しさん:2005/05/10(火) 21:36:23
   │
   │
   │
   │
   │
   │
  >>224
  >>225
  >>226
224デフォルトの名無しさん:2005/05/11(水) 10:52:45
 \   ∩─ー、
   \/ ● 、_ `ヽ
   / \( ●  ● |つ
   |   X_入__ノ   ミ 
    、 (_/   ノ
    \___ノ゙
    / 丶' ⌒ヽ:::
   / ヽ    / /:::
  / /へ ヘ/ /:::
  / \ ヾミ  /|:::
 (__/| \___ノ/:::
225デフォルトの名無しさん:2005/05/11(水) 15:26:39
const int sec = 1;
でsecに1足したいんですけど
sec = sec + 1じゃだめなんですか??
226デフォルトの名無しさん:2005/05/11(水) 16:34:06
>>225
それじゃだめ。

System.Threading.Interlocked.Increment(ref sec);
が正解
227デフォルトの名無しさん:2005/05/11(水) 16:35:43
sec の値に 1 足すだけだったら 「sec + 1」 でできますよー
228デフォルトの名無しさん:2005/05/11(水) 19:52:14
>>225
const int sec = 1;
~~~~~
そもそも定数に1は足せないんじゃないか?
229デフォルトの名無しさん:2005/05/11(水) 21:50:57
>>228
それは言ってはいけない
230デフォルトの名無しさん:2005/05/11(水) 22:12:38
ArrayList便利すぎ
キャラクターの管理に最適


だと思わんかおまいら
231デフォルトの名無しさん:2005/05/12(木) 01:03:02
>>230
動的に生成消滅が発生するようなオブジェクトに、ArrayListはないだろう・・・中身は単なるstd::vector相当だよ。
といっても.NET Frameworkにはstd::listに相当するもんが標準では存在しないけど。

てかこれも釣りかorz
232デフォルトの名無しさん:2005/05/12(木) 01:17:21
Manageのドキュメント読んだけど、DirectSoundでストーリームバッファを扱うのがよくわからなくて、
Manageのサンプルをあさったら、全部静的バッファ?だった

C++のドキュメント読めってことですかね
233デフォルトの名無しさん:2005/05/12(木) 19:14:00
>>231
俺はArrayList使ってるが何も不便は感じていない。
234デフォルトの名無しさん:2005/05/13(金) 03:02:24
>>233
別に不便とか便利とか言ってないでしょ。
中身はvectorなんだから、格納するオブジェクトの数が増えてくると極端に速度が低下するのは目に見えてるだろ。
挿入・削除の速度とメモリ効率のバランスを考えると、dequeに相当するコレクションは最低限欲しいところだが。

てかまたこれも釣りかorz
235デフォルトの名無しさん:2005/05/13(金) 03:03:49
>>232
>Manage
>ストーリーム

C++のドキュメントじゃなくて、まずは英語から勉強しまちょーね
236デフォルトの名無しさん:2005/05/13(金) 05:52:45
個人がチクチク作るゲームならArrayListで十分だろ
dequeに相当するコレクションとかつまんないとこまでこだわるなら
C++で作るべきだろ

釣りじゃないからな
237デフォルトの名無しさん:2005/05/13(金) 07:18:42
ActiveBasicでDirectX
238デフォルトの名無しさん:2005/05/13(金) 09:54:16
N88BasicでDirectMaX
239デフォルトの名無しさん:2005/05/13(金) 21:19:12
>>234
今作っているものでは特に速度面での問題は無い。
勝手に釣り扱いするおまえの脳みそにがっかりだ。
240デフォルトの名無しさん:2005/05/13(金) 23:20:00
喧嘩しかできないのか低脳は
241デフォルトの名無しさん:2005/05/14(土) 01:04:11
>>230=>>233==>>239
何故釣り扱いするかっていうと、文章から明らかに
お前が低脳&初心者だと分かるから。
242デフォルトの名無しさん:2005/05/14(土) 03:51:21
低脳&初心者なら釣りではなく素で言っていると思われ
243デフォルトの名無しさん:2005/05/14(土) 05:39:31
なぜ 241 はこんなに喧嘩腰なんですか
244デフォルトの名無しさん:2005/05/14(土) 11:44:10
挿入・削除の速度とメモリ効率のバランスを考えるとArrayListは使えない
だがdequeに相当するコレクションがないので改良の余地はない

なんて論議の価値もない話題で〆て低脳とか初心者とか釣りとか言ってる
おまいみたいな香具師がいるとスレが荒れるんだよ

偉そうにウンチクしてる暇があったら代替案くらい出せよ
おまいの作ったArrayListじゃとても実現できないような
素晴らしいオブジェクト管理をするゲームでもいいぞ
245デフォルトの名無しさん:2005/05/14(土) 15:09:16
>>243
釣られてるんだよ俺らorz
246デフォルトの名無しさん:2005/05/14(土) 20:25:55
そろそろこのスレも潮時だな
247デフォルトの名無しさん:2005/05/14(土) 22:22:38
スルーも出来ないガキが多すぎ
248デフォルトの名無しさん:2005/05/14(土) 23:13:41
…とスルー出来なかったガキが申しております。
249デフォルトの名無しさん:2005/05/14(土) 23:15:25
敬語も正しく使えないガキが多すぎ
250デフォルトの名無しさん:2005/05/14(土) 23:23:33
>>249
「申す」には謙譲語と丁寧語の両方の意味があるんだよ。ヴォケ
251デフォルトの名無しさん:2005/05/15(日) 00:10:33
敬語は将来、滅びる。
252デフォルトの名無しさん:2005/05/15(日) 02:14:19
このスレも将来、滅びる。
253デフォルトの名無しさん:2005/05/15(日) 09:58:16
続きはこちらで

最高に頭悪そうな発言してください in ム板 (V)
ttp://pc8.2ch.net/test/read.cgi/tech/1115386557/
254デフォルトの名無しさん:2005/05/24(火) 15:11:11
影が黒ペンキを塗りまくったように黒いんですが
なんとかなりませんか?
255デフォルトの名無しさん:2005/05/24(火) 23:06:50
どういう風にしたいのですか?
256デフォルトの名無しさん:2005/05/24(火) 23:12:26
>>255
影が黒ペンキを塗りまくったように黒くないようにしたいんです
257デフォルトの名無しさん:2005/05/25(水) 01:17:35
>>256
赤く塗れば君の要求は満たされるよね
258デフォルトの名無しさん:2005/05/26(木) 10:51:10
影が赤ペンキを塗りまくったように赤くなりました!ありがとうございます。
259デフォルトの名無しさん:2005/05/26(木) 21:12:51
一生やってろ
260デフォルトの名無しさん:2005/05/27(金) 01:25:01
単なる赤ではやっぱり影っぽくなかったので、LiSPSMを試してみたら、
遠景でも近景でもエイリアシングがなくなってシーン全体にきれいにぼけた影が落とせました!ありがとうございます。
261デフォルトの名無しさん:2005/05/27(金) 22:37:13
ロングホーンが出たら、ダイレクトXを使わなくても描画スピードが出るってことだよね
262デフォルトの名無しさん:2005/05/28(土) 00:10:17
内部ではDirectX使ってんじゃねーの?
263デフォルトの名無しさん:2005/05/28(土) 02:13:12
>>260
一生LIPSMやってろ

>>262
DirectX10=WGFじゃねーの?
264デフォルトの名無しさん:2005/05/28(土) 17:25:08
254 名前: デフォルトの名無しさん 投稿日: 2005/05/24(火) 15:11:11
影が黒ペンキを塗りまくったように黒いんですが
なんとかなりませんか?
255 名前: デフォルトの名無しさん [sage] 投稿日: 2005/05/24(火) 23:06:50
どういう風にしたいのですか?

影の色に透度(A)を設定したいのかと思われ
ARGBで影の色指定してもやっぱり真っ黒だわ
265デフォルトの名無しさん:2005/05/30(月) 02:14:12
>>1
> Windows Longhorn でGDIに取って代わって標準になりそうなDirectX9ですが

> そんなDirectX9を将来に備えて勉強してみようというスレです。

Longhornでは、DirectXを意識しないで使えるようなので、ワザワザ勉強する必要がないのでは?
ゲーム開発では必要だろうけど、C#は使わないよね

266デフォルトの名無しさん:2005/05/30(月) 21:07:23
> ゲーム開発では必要だろうけど、C#は使わないよね
imigawakarann
267デフォルトの名無しさん:2005/05/30(月) 21:28:17
DirectXですぐゲームに結び付けるアフォ多いよな
268デフォルトの名無しさん:2005/05/30(月) 22:28:15
ぶっちゃけ DirectX1.0 は GameSDK の名前で発表されてたからな
269デフォルトの名無しさん:2005/05/30(月) 22:46:09
ぶっちゃけ DirectX 10 は WGF なわけだが、
これは Windows Game Foundation じゃなく、ここはしっかりと Windows Graphics Foundation だ。

間違えるなよ。
270デフォルトの名無しさん:2005/06/01(水) 13:12:01
DirectX で良いよ。その方が呼びやすいし
271デフォルトの名無しさん:2005/06/04(土) 12:17:00
AVALONとの関係は?
272デフォルトの名無しさん:2005/06/04(土) 20:14:35
exp(AVALON) = WGF
273デフォルトの名無しさん:2005/06/04(土) 21:51:48
WGFってプロレス?
274デフォルトの名無しさん:2005/06/05(日) 00:04:46
WGFって何さ
275デフォルトの名無しさん:2005/06/05(日) 00:31:09
>>273->>274
>>269
276デフォルトの名無しさん:2005/06/06(月) 03:06:12
チャットみたいに、クライアント領域内に直接入力文字を描画させたいと思っているのですが、
半角英数小文字大文字、! ?などの記号等を
キー入力に応じて拾わせたいのですが、どんなやり方がありますか?
Shift + 1 が押されたら!とか、
ハードコーディング的にやるのでしょうか。
CapsLockの状態も考慮してやるには、ネイティブを使う必要がありますかね。
277デフォルトの名無しさん:2005/06/06(月) 21:06:48
普通にKeyイベントで検証しろや
278デフォルトの名無しさん:2005/06/06(月) 23:57:12
>>277
おお ありがとうです。
KeyPressEventHandler使って実現させました。
こんなに簡単なのに気づかず粘ってたorz
279デフォルトの名無しさん:2005/06/11(土) 13:29:41
DirectSoundで、ストリーム再生をしようとがんばってる者です。

ms-help://MS.VSCC.2003/MS.DirectX9_OctUpdate_JPN.1041/DirectX9_m_JPN/directx/ref/ns/microsoft.directx.directsound/c/secondarybuffer/m/ctor4.htm
には、

>正しいウェーブフォーム フォーマットで適切なサイズのバッファを作成するには、
>SecondaryBuffer(Stream,BufferDescription,Device) を呼び出します。

と書いてあるんですが、これって SecondaryBuffer(BufferDescription,Device)の間違いじゃないですかねえ。
SecondaryBuffer(Stream,BufferDescription,Device)でStreamに650MBのWAVファイルのFileStreamを指定すると、
OutOfMemoryExceptionが投げられてしまいます。メモリ使用量を見るに、指定されたStreamを、読めるところまで全部読んでしまっている気がします。

そして、ストリーム再生のサンプルコード(Microsoftの) http://www.microsoft.com/japan/msdn/columns/code4fun/code4fun02032004.asp
は、SecondaryBuffer(BufferDescription,Device) でした。
280デフォルトの名無しさん:2005/06/12(日) 01:19:23
ロングホーンでドットネットとダイレクトXが統合されるってことは、
初心者でもポリゴンを扱える様になるってことですか?
281デフォルトの名無しさん:2005/06/12(日) 01:57:14
3年くらい後にワード文書に、マクロでポリゴンを自由に挿入できるようになるのかもね?
282デフォルトの名無しさん:2005/06/14(火) 21:26:51
初心者でもポリゴン?

そんなのどうでもいいよ

まんどくさいマネージドDXの

インす子しなくてよくなるほうが超重要です
283デフォルトの名無しさん:2005/06/14(火) 22:36:40
>>282
ポリゴンどころかインストールもできない程の初心者だ
ってことが言いたいのですか?
284デフォルトの名無しさん:2005/06/14(火) 23:01:36
>>283
「僕のコンピュータにはDirectXは入ってるはずなのにあなたのソフトが動きません。
あと、僕のコンピュータがクリックして困ってます」といったような初心者の苦情の処理は苦痛だということだ。
285デフォルトの名無しさん:2005/06/28(火) 19:29:54
Inputのサンプルで
キーボードのデバイスを作った場合は
Unacquireで開放してるけど
マウスの場合は無いんだけど
いらないの?
286デフォルトの名無しさん:2005/06/29(水) 23:16:53
いらないかと

心配ならマウスのほうはイベントで殺れ
287デフォルトの名無しさん:2005/07/01(金) 17:25:06
初めて質問します。

C#で最近、ManagedDirectXのDirect3Dを扱い始めたのですが
なぜかアルファブレンディングが正常に動作していません。
色々なところで調べたのですが、

RenderState.AlphaBlendEnable = true;
RenderState.SourceBlend = Blend.SourceAlpha;
RenderState.DestinationBlend = Blend.InvSourceAlpha;

で出来るようなのですが、何ら変化がありません。
ためしに、SourceBlendとDestinationBlendにZeroを渡してみたのですが
(これをやると書いたところが真っ黒になる、でいいんですよね?)
やはり無効になっているときと同じように描画されてしまいます。

友人の環境でもテストしてもらったのですが、やはり半透明描画されませんでした。

ProgressiveMeshサンプルをコンパイルし、それに半透明付きメッシュを
読み込ませてみたのですが、やはり半透明にはなりません。
なので、コードが悪いと言うことはなさそうなのですが・・・

ちなみに、DirectX8で昔書いたC++のプログラムでは半透明になりました。
もう、何がなにやら・・・

完全に手詰まり状態なので、お知恵を拝借したくお願いします。
288デフォルトの名無しさん:2005/07/02(土) 01:39:25
289287:2005/07/02(土) 06:23:29
>>288
うは、なんじゃそりゃ。
頂いたリンク先にある通りに変更した所、無事半透明に成功しました。

というわけで解決しました。
どうもありがとうございました。

(´・ω・`)あれ?じゃぁなんであのサンプルソースだとダメだったんだろう・・・?
290デフォルトの名無しさん:2005/07/06(水) 13:11:49
もし、ロングホーンの時代になったら、
GDI+のコードだけで
ダイレクトxの画像描画ができるような時代になってたとしたら、、、
今必死でマネージドダイレクトxの初期化やら設定やらを勉強してるのが
一切無駄になる可能性もあるってことだよね。

うれしいけど、いやんな話だね。
みんなはその辺をさ、どう思って勉強してるのさ!?
291デフォルトの名無しさん:2005/07/06(水) 16:43:10
>>290
なんでGDI+?WGFじゃなくて?
292デフォルトの名無しさん:2005/07/06(水) 18:45:19
>>290
古くならない技術などない
293デフォルトの名無しさん:2005/07/06(水) 21:45:58
質問です。
Vector3 a = new Vector3(0.0f,0.0f,0.0f);
Vector3 b = new Vector3(0.0f,90.0f,0.0f);

とあった場合、aとbの角度を簡単に求める方法はありますか?
Matrixで結構です。

294デフォルトの名無しさん:2005/07/06(水) 21:51:27
>>293
内積を計算するだよ
(x1,y1,z1) (x2,y2,z2) があるとき
cos(θ)=x1*x2+y1*y2+z1*z2
295デフォルトの名無しさん:2005/07/06(水) 21:53:49
>>294
おっと絶対値で割るの忘れてた
cos(θ)=x1*x2+y1*y2+z1*z2 / { √(x1*x1+y1*x1+z1*z1) * √(x2*x2+y2*x2+z2*z2) }
296293:2005/07/06(水) 22:30:19
ありがとうございます。
内積で求まるのは、aとbのなく度ですよね。

いま、aからbへMeshシリンダで線を引きたいと思っています。
シリンダをどのように回転させればいいのかで迷っています。

ご教授をお願いします。
297デフォルトの名無しさん:2005/07/06(水) 22:48:59
>>296
うーん、良く分からんです、もっと正確に書いてもらえれば答えられるかもしれませんです。
a b へ回転するような行列を作りたいというなら以下の方法ですかね。
a b の内積を計算して cos θ を求める
a b の外積を計算して sin θ と回転軸を求める
これから行列を作る。
適当な軸でもって回転する行列は
単位回転軸のテンソル積行列に cos θ をかけたものを単位行列から引く
これに外積計算を行うことの出来る行列を加算するといった感じになります。
必要なら式書きます。
298デフォルトの名無しさん:2005/07/06(水) 23:45:18
>>296
レーザーか。
299293:2005/07/06(水) 23:45:54
何度も失礼いたします。
すみません。お願いします。
いま、原点(0,0,0)からベクトルA(10,0,0)に重なるMeshシリンダを
ベクトルB(0,10,0)方向に回転させたいとします。
その時の、回転方法を求める式が知りたいです。

Vector3 a = new Vector3(0.0f,0.0f,0.0f);
Vector3 b = new Vector3(0.0f,90.0f,0.0f);

floatdot = Vector3.Dot( a , b );
Vector3cro = Vector3.Cross( a , b );
cro.Normalize();

Quaternion tmp_QT = new Quaternion(cro.x,cro.y,cro.z,dot);
Matrix tmp = Matrix.RotationQuaternion(tmp_QT);

とんでもない間違いしているような気もしますが・・・・。
どこがおかしいのかお教えください。
300デフォルトの名無しさん:2005/07/07(木) 00:50:24
>>299
なるほろ、こりゃ動かん。
DirectX の Quaternion は使った事がないので良く分かりませんが、その方針でつくるなら。
多分これで直るんじゃないかな……

Vector3 a = new Vector3(0.0f,0.0f,0.0f);
Vector3 b = new Vector3(0.0f,90.0f,0.0f);

floatdot = Vector3.Dot( a , b );
Vector3cro = Vector3.Cross( a , b );
Vector3w = cro.Normalize() ;

double sin = cro.Length() ;
double cos = dot ;
double kakudo = Math.Atan2( sin , cos ) ;
double kakudo2 = kakudo * 0.5 ;
double cos2 = Math.Cos( kakudo2 ) ;
double sin2 = Math.Sin( kakudo2 ) ;

Math.Atan2( (float)( w.x * sin2 ) , (float)( w.y * sin2 ) , (float)( w.z * sin2 ) , (float)cos2 ) ;

となるのではなかろうかとおもうです、逆回転だったら Cross の順序をひっくり返してみてください。
三角関数の倍角公式が分るならSqrtを使う形に変形するともうちょっと高速になります。

多分クオータニオンはこれだよね。
適当な軸を中心に回転するメソッドもあるのでそっち使ったほうがてっとりばやいかも。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/directx9_m/directx/ref/ns/microsoft.directx/s/quaternion/m/ctor1.asp
301デフォルトの名無しさん:2005/07/07(木) 00:52:38
あ、思いっきりまちがい
>Math.Atan2( (float)( w.x * sin2 ) , (float)( w.y * sin2 ) , (float)( w.z * sin2 ) , (float)cos2 ) ;
Quaternion tmp_QT = new Quaternion( (float)( w.x * sin2 ) , (float)( w.y * sin2 ) , (float)( w.z * sin2 ) , (float)cos2 ) ;
以下一緒ね。


302デフォルトの名無しさん:2005/07/07(木) 00:59:34
>>299
さらに良く見てみると a が0ベクトルになっちょりますが、こりゃよろしいんで?
303293:2005/07/07(木) 22:31:30
何度もすみません。
それっぽくは動きます。値によって90度ずつズレたりもします。

>>302
ダメですね。0ベクトルの時の対象法はありますか?

 ベクトルで頭を悩ましています。なにか参考になるベクトルの本やWebがありましたら
お教えください。
304293:2005/07/08(金) 11:57:25
すみません。問題なく動きました。
こちら側の些細なミスでした。すみませんでした。

なんとか動くことができました。ありがとうございました。
305デフォルトの名無しさん:2005/07/08(金) 14:03:53
>>303
線型代数は完成している分野だから、古くて誤植の少ない安定したいわゆる定本系がいいです
そういう本で腰据えてやってみてください、一日一ページでも一年やれば終わります。
やさしい○○とかすぐ判る○○とかを使って急いで理解しようとするとむしろ逆に遠回りになるんで……
たとえば佐竹一郎の線形代数学とかいいかと
http://www.amazon.co.jp/exec/obidos/ASIN/4785313013/qid=1120798157/sr=1-1/ref=sr_1_10_1/249-4302466-6092341

クオータニオンの書籍にはまったく良書がありません、
色々な書籍や資料をかき集めてmy資料を作るしかないです、あきらめちくらはい。
国内では四元数とも呼ばれているのでgoogleのやり方を工夫して探してみるといいです。
306デフォルトの名無しさん:2005/07/08(金) 17:30:48
C#くずだー
directshow C# sdkは どこだーー
307デフォルトの名無しさん:2005/07/08(金) 21:59:02
そんなもんねえよ。
308デフォルトの名無しさん:2005/07/08(金) 23:36:13
>>306
それはC#くずだーではなく.netくずだーが正しい。
まあdirectshow.netがあれば困らんだろ。
309デフォルトの名無しさん:2005/07/08(金) 23:52:09
あれは普通のDirectShowを知らないと使えないだろ
310デフォルトの名無しさん:2005/07/09(土) 02:17:43
>directshow.net
こんなもんあるの?
311デフォルトの名無しさん:2005/07/09(土) 03:35:23
312デフォルトの名無しさん:2005/07/09(土) 03:37:15
313デフォルトの名無しさん:2005/07/10(日) 03:49:42
>>305
もっと馬鹿でもわかるようなのを求む!
314デフォルトの名無しさん:2005/07/10(日) 04:22:50
>>313
この本の直前として読むなら、高校の教科書がいいよん、
中学高校の教科書は結構あなどれないよ、久しぶりにみたりすると、その丁寧さに驚きますです。
315デフォルトの名無しさん:2005/07/10(日) 04:56:26
>>314
ありがとん。
316デフォルトの名無しさん:2005/08/14(日) 21:42:23
direct3Dでのアニメーションを背景にし、最前面に円を表示したいのですが詰まっています

円は任意の大きさに変更可能であること、塗りつぶししないこと
この二つが満たされていれば、どの様な方法でも構いません

これまでに、
Meshの円柱を短くして表示(塗りつぶされている&背景が消えてしまって失敗)
spriteでテクスチャを使って表示(大きさ変更が融通効かずに失敗)
円だけGDIでDrawEllipseを使って表示(背景・円共に点滅してしまって失敗)

と試してきましたが、どれもうまく行きません
見た目はGDIを使った円が、最も理想的な形だったのですが・・・

direct3Dを使って、ただ単純な円を描くにはどの様にすれば良いのでしょうか

無知すぎる質問かもしれませんが、何とぞご教授下さい
317デフォルトの名無しさん:2005/08/15(月) 00:44:21
>>316
ビルボード表示すりゃいいんじゃねーの?
SetFVFでD3DFVF_XYZRHW指定するかD3DVERTEXELEMNT9で
D3DDECLUSAGE_POSITIONT指定してバーテックスシェーダをバイパス、
もしくは普通のポジション指定でバーテックスシェーダでw=1.0にして、
スケーリングでも何でもやればいい。
塗りつぶさないならDrawPrimitiveでプリミティブ指定をD3DPT_LINELISTか
D3DPT_LINESTRIPにしとけばおk。
318デフォルトの名無しさん:2005/08/15(月) 09:20:26
>>317
出来ました・・・
ただ円を描くだけなんだから、簡単な方法があるはずだと思いこみ
一番最初にDrawPrimitiveでやる方法を除外してしまってました

横着したばっかりに、長いこと時間を無駄にorz
助言ありがとうございました!
319デフォルトの名無しさん:2005/09/05(月) 00:27:46
今日ネットゲームをしようとしたらdirectx 9.0b is required!って言われました
何て意味でしょうか?
320デフォルトの名無しさん:2005/09/05(月) 01:40:38
321デフォルトの名無しさん:2005/09/10(土) 01:57:54
Vistaになったら.NETのパフォーマンスあがるんだろうか。
負荷負けすぐする。キツいなぁ。
322デフォルトの名無しさん:2005/09/12(月) 21:35:08
参考になる文献が無さ過ぎて挫折しそうだぜ、ブラザー、、、
323デフォルトの名無しさん:2005/09/13(火) 14:11:27
最初は俺も文献少なくてムリポとか思ってたけど、
仕方なくC++用の文献読んでたら、
自然とC#用に脳内変換できるようになった。
324デフォルトの名無しさん:2005/09/13(火) 22:10:21
>>319
DirectX9bはお酒です。
325デフォルトの名無しさん:2005/09/14(水) 18:36:23
俺も資料無くて詰まり気味
やっぱC++でDirectX覚えてからの方がいいんかしら…
326デフォルトの名無しさん:2005/09/14(水) 19:15:43
どのあたりで詰まってる?
327デフォルトの名無しさん:2005/09/14(水) 20:09:37
ボーンアニメを切り替える時に、モーションブレンドで繋ごうとしてるんだけど
それらしいサンプルも見つからないし、何していいかも解らない状態…。
328デフォルトの名無しさん:2005/09/14(水) 20:39:04
>>327
サンプルならMSのサイトにある
329デフォルトの名無しさん:2005/09/14(水) 21:05:17
C#とDirectSoundを使ってリアルタイム処理をする時、遅延はどれくらいになりますか?
したいことは、外部から音を録音して、そのまま(できればエフェクトをかけて)スピーカーから再生することです。
330デフォルトの名無しさん:2005/09/15(木) 00:19:17
今後非推奨となるDirectPlayって、
やっぱ今からは実装しないほうがいいんだろうか。
Indigo betaとか使えということかな。
331デフォルトの名無しさん:2005/09/15(木) 01:47:34
画像を描画する際、
透過色以外の部分を一つの色で塗りつぶすには、どうすれば良いのでしょうか?

2DのRPGを作っているんですが、攻撃を受けた際、
攻撃を受けたキャラの画像に、エフェクトを掛けたいんです。



332デフォルトの名無しさん:2005/09/15(木) 18:59:44
テクスチャの頂点色をその色にしておいて、
攻撃を受けたときだけテクスチャステートのColorArgument1をDiffuseにするとか。
TFactorを利用するのもあり。
333デフォルトの名無しさん:2005/09/15(木) 22:26:13
>>332
ありがとうございます。
よく理解できていないものの、確かに希望通りに動いてくれているようです。
334デフォルトの名無しさん:2005/09/24(土) 00:47:39
最終的に描画結果を画面に表示するのではなくBitmapに格納するプログラムを作ろうと思っているのですが、
Present() せずにバックバッファに描画して、それを取り込む方法を教えてください。
いま、描画先にCreateRenderTargetで作成したバッファを指定してこれを取り込もうと思っているのですが、
device.SetRenderTarget( 0 , surface ) で指定して Present() をすると、真っ黒がウインドウに描画されて(これは困る)さらに
ウインドウサイズを変更するとUnknowの例外まで発生します、どこかに簡単なサンプルとかないでしょうか。
335デフォルトの名無しさん:2005/09/24(土) 01:19:52
ダイレクトドロー系は
その内なくなっちゃうの?
336デフォルトの名無しさん:2005/09/24(土) 01:20:39
無くなるにしても、
コンパイルできなくなるのと、
ユーザーがプレイできなくなるのと2通りあるけど、どっち?
337デフォルトの名無しさん:2005/09/24(土) 03:25:04
>>336
前者はありえるが、後者は可能性低いのが普通なんだがなんぜMSだから何しでかすか・・・
338デフォルトの名無しさん:2005/09/24(土) 20:00:06
>>337
なるほど。サンクスコン。

俺が思うに、
確かにダイレクトxからは無くなるけども、
ロングホーンからはosがそもそもダイレクトxを使うので、
そもそもダイレクトxからダイレクトドローをわざわざ使う必要がなくなるだけで、
これからは普通の描画がダイレクトドローになっていくのでは?と思ってるんだけども。
結果として、確かにダイレクトxの上でのダイレクトドローは無くなると。
コンパイルできないし、コンパイルする必要も無くなると。
だが、osが普通にダイレクトドローを使うので、
今までのダイレクトドロー系アプリも、
今後の普通の描画もすべて同じように表示可能になるのでは?
339デフォルトの名無しさん:2005/09/25(日) 21:13:50
DirectX9の D3D では、バックバッファのサーフェースをロックして、そこからDC(Graphics)が取れる形になっています
予想ですが、ここに全部統合する気じゃないかな?
フロントバッファが直接取得できなくなってますが、今後はフロントバッファのフォーマットとバックバッファのフォーマットは違うものになってくるのではと思われます。(バックバッファのフォーマットに浮動小数点とかでてきたし)
次の DirectX10 ではいよいよマルチタスク・マルチスレッド(時分割処理等)にも対応するらしいので、
DirectX は描画エンジンというより強力な並列計算機になって行きそうな雰囲気です。
サーフェイス等リソース管理機能とサーフェイスに対する並列計算機能とフロントバッファ(ウィンドウ)へのビットブリッドに集約されるのではと予想。
340デフォルトの名無しさん:2005/09/27(火) 01:55:44
クラスライブラリになってるスキンメッシュのサンプルとか無いもんだろうか。
DirectX AppWizardから継承とかされるとサッパリわかんねーよ・・・
341デフォルトの名無しさん:2005/09/27(火) 09:53:23
>>340
それ自分も激しく欲しい…

ttp://wanderer.jp/dotnet/skinnedmesh.html
これとかよさげに見えるんだけど
何故か実行時にエラー吐く…
(デバッグの作業フォルダはデフォルトに戻した)
342デフォルトの名無しさん:2005/09/27(火) 17:42:39
>>340
それ俺もてこずったけど何とか実装できた。
343デフォルトの名無しさん:2005/09/27(火) 21:33:11 ID:0
>>341
やってみた

Failed Creating the Direct3D device.

アプリケーションでエラーが発生しました。
-2005531767 (Unknown)
 at Microsoft.DirectX.Direct3D.Mesh.LoadHierarchyFromFile(String filename, MeshFlags options, Device device, AllocateHierarchy allocHierarchy, LoadUserDataLoader)
 at SkinnedMesh.Load(String meshFileName, Device dev)in ..\\skinnedmesh.cs:line 202
 at SkinnedMeshCSSample.SkinnedMeshCS.OnCreateDevice(Object sender, DviceEventArgs e) in ..\\main.cs:line 154
 at Microsoft.Sanples.DirectX.UtilityToolkit.Framework.Initialize3DEnvironment() in ..\\Comon\dxmut.cs:line 2721

'System.NullReferenceException' のハンドルされていない例外が SkinnedMeshCS.exe で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。
System.Diagnostics.Debug.Assert(State.Device.Disposed, "Device should be disposed here.");

なんじゃこりゃ
俺も初心者なんでサパーリだ、スマン・・・
344デフォルトの名無しさん:2005/09/27(火) 22:13:00 ID:0
>>342
裏山鹿
よかったらソース見せてくだせぇ
345デフォルトの名無しさん:2005/09/27(火) 22:24:22 ID:0
>341 >343

うちでは作業ディレクトリを、展開したSkinnedMeshCSディレクトリに
したら動いた。
でもパス名に日本語が含まれているとダメっぽい。
346343:2005/09/27(火) 22:42:07
お、動いた。
>>345ありがd

でもポリゴンのソートが豪快にバグってる気がする…
347デフォルトの名無しさん:2005/09/27(火) 23:08:38
>>346
脇の下のことを言っているのなら、あれはTinyのデータが悪い。
MeshViewerでもバグる。
348デフォルトの名無しさん:2005/09/27(火) 23:39:08
なんかくるくる回してると、見えちゃいけないとこが見えたりする感じ。
(顔やら首が透けて後頭部の髪の毛が見えたり、体の左側から右腕が透けて見えたり)
自作の1スキンモデルだとものすごい勢いで欠けまくる…
うちの環境だけなのかな?

まぁ、表示部分はサンプル結構あるみたいなんで
勉強がてら直してみるか(`・ω・´)
349デフォルトの名無しさん:2005/10/08(土) 20:41:34
よし!お前らとりあえずMDXのオススメ書籍を挙げろ

何卒宜しくお願い致します。
350デフォルトの名無しさん:2005/10/08(土) 22:17:41
MDXってなに?
351デフォルトの名無しさん:2005/10/08(土) 22:20:38
>>350
Managed DirectX
352デフォルトの名無しさん:2005/10/08(土) 22:29:17
なんでも略しゃいいってもんじゃないな
353デフォルトの名無しさん:2005/10/08(土) 22:41:25
ハンガリアン記法を推奨するようなセンスだからな
354デフォルトの名無しさん:2005/10/08(土) 22:50:50
略さないと打ちづらくね?
Managed DirectX

おもむろにモニタもキーボードも見ずに
,anaged direvtz
355デフォルトの名無しさん:2005/10/08(土) 23:06:40
>>354 もっと練習つめぇ
356デフォルトの名無しさん:2005/10/09(日) 02:49:25
>>349
挙げるほど数ない。
357デフォルトの名無しさん:2005/10/09(日) 09:37:09
MSはもうハンガリアン記法でないわけだが。
358デフォルトの名無しさん:2005/10/10(月) 21:37:21
>>349
初心者向けだと日経ソフトウェアでゲームつくってた号がよかったかな。
数ページしかないけど、あれで十分だろと思う。
359デフォルトの名無しさん:2005/10/10(月) 23:30:25
雑誌数ページで十分とは、あまり面白くないギャグだ。
360デフォルトの名無しさん:2005/10/10(月) 23:32:51
矩形のコピーさえ出来れば大抵のゲームには十分
Xファイルの表示まで出来れば作れないゲームは少ない
361デフォルトの名無しさん:2005/10/11(火) 00:24:01
つれたつれた
362デフォルトの名無しさん:2005/10/11(火) 00:26:53
こんなとこで鰻釣りしてないで早く寝なさい
363デフォルトの名無しさん:2005/10/11(火) 00:29:46
360の作品が見てみたいもんだ。
364デフォルトの名無しさん:2005/10/11(火) 00:39:46
ぜひ、ゲーム製作技術板に来てください
365358:2005/10/16(日) 17:33:04
>>359
たしかに十分ではないけど、あとはヘルプとC++の資料を読み替えろ
ということで、だってないでしょうそんな本という悲観的な
意図が含まれています。
366デフォルトの名無しさん:2005/10/16(日) 21:59:27
.NET frameworkの中にDirectXが統合される日はいつですか?
367デフォルトの名無しさん:2005/10/17(月) 11:13:31
あと6年くらいかと。
368デフォルトの名無しさん:2005/10/17(月) 13:44:12
>>365
お前はあのヘルプを読んだことがあるのか?と小一時間・・・
英文版ヘルプですらろくすっぽ説明がなくてサンプルソースを必死で読み込まないと理解できないよ
現状C版のヘルプをみながら想像力巧みに試用してみるというのが現状だよ
369デフォルトの名無しさん:2005/10/17(月) 17:20:54
ヘルプのDirectSoundのストリーム再生の説明さ、日本語も英語も間違ってるし、
SDKのサンプルプログラムにはストリーム再生するプログラムはないし。
最悪だった。
370358:2005/10/19(水) 21:07:23
>>368
だれも読みやすいとはいってなくってそれしかないよと
言いたいだけ。
ほかに>>349の答えになるようなやつがあればよろしく。>>368
371デフォルトの名無しさん:2005/11/01(火) 13:01:43
DirectInput(Ver9)のみを参照しててVer7.0.9486なんですが、
キーボードデバイスを作成した時点でMissingFieldExceptionとなってます。
色々調べたのですが、見つけることが出来なかったので初歩的なミスかとは思うのですが、
全くわかりません。ご指導をお願いします。
372デフォルトの名無しさん:2005/11/02(水) 15:26:30
あきらめてキーイベントを使うとか。
373デフォルトの名無しさん:2005/11/10(木) 22:52:46
public void ChangeAnimeSet(int animeIndex)
{
    double appTime = AnimationController.Time;
    curAnimeSets = animeIndex;

    int newTrack = curTrack == 0 ? 1 : 0;

    AnimationController.SetTrackAnimationSet(newTrack, AnimationSet[curAnimeSets]);
    
    AnimationController.UnkeyAllTrackEvents(curTrack);
    AnimationController.UnkeyAllTrackEvents(newTrack);
    AnimationController.KeyTrackEnable(curTrack, false, appTime + TRANSITION_TIME);

    AnimationController.KeyTrackSpeed(curTrack, 0.0f, appTime, TRANSITION_TIME, TransitionType.EaseInEaseOut);
    AnimationController.KeyTrackWeight(curTrack, 0.0f, appTime, TRANSITION_TIME, TransitionType.EaseInEaseOut);
    AnimationController.SetTrackEnable(newTrack, true);
    AnimationController.KeyTrackSpeed(newTrack, 1.0f, appTime, TRANSITION_TIME, TransitionType.EaseInEaseOut);
    AnimationController.KeyTrackWeight(newTrack, 1.0f, appTime, TRANSITION_TIME, TransitionType.EaseInEaseOut);

    curTrack = newTrack;
}

こんな感じで、スキンメッシュアニメーションの切り替えをしているんだけど
2種類のアニメーションを交互に切り替えた時に、前回切り替えをしたフレームタイムから再生されてしまう…。
アニメーションを切り替えた時に、必ずアニメーションの始点から再生させるには、どうすればいいんだろ。
374373:2005/11/11(金) 17:45:57
自己解決
AnimationController.SetTrackPosition(newTrack, 0.0);
で、いけました。
スレ汚し失礼
375デフォルトの名無しさん:2005/11/12(土) 18:22:24
int newTrack = curTrack == 0 ? 1 : 0;

ってなかなか洒落てるね
376デフォルトの名無しさん:2005/11/12(土) 21:48:03
そっか。!はエラーになるんだ。
377デフォルトの名無しさん:2005/11/20(日) 00:43:29
device.Clear(ClearFlags.Target|ClearFlags.ZBuffer,color,1.0f,0);
device.BeginScene();

{描画処理}

device.EndScene();
device.Present();

画面更新を上のようにして
ゲームループ内で使っているのですが
FPSが下がってくると、チラついてしまいます。
スムーズに更新するにはどのようにすれば
よいのでしょうか。

ダブルバッファリングなど色々と調べてみたのですが
C#用の記述が見つからず困っています。
どうかよろしくお願いいたします。
378デフォルトの名無しさん:2005/11/20(日) 14:13:14
初期化時のPresentParametersの設定はどうなってる?
379377:2005/11/20(日) 17:55:52
presentParams.Windowed = true;
presentParams.SwapEffect = SwapEffect.Discard;
presentParams.EnableAutoDepthStencil = true;
presentParams.AutoDepthStencilFormat = DepthFormat.D16;
presentParams.PresentationInterval = PresentInterval.Immediate;

初期化時の設定は、こんな感じになっています。
380デフォルトの名無しさん:2005/11/20(日) 18:18:04
通りすがりだけど
presentParams.PresentationInterval
って弄る必要あるの?
381377:2005/11/20(日) 19:04:58
>>380
以前は弄らずにPresentInterval.Defaultでやっていたのですが
少し負荷を掛けると60FPSを割ってしまうようなので
Immediateとタイマーを使ってやっていたのですが
あんまりよくないのかな・・・?

正直あまり理解しないで使ってたり
382378:2005/11/21(月) 01:09:59
俺はこうだよ。(PresentationIntervalはデフォルトのまま)

presentParams.Windowed = true;
presentParams.SwapEffect = SwapEffect.Discard;
presentParams.BackBufferCount = 1;
presentParams.BackBufferWidth = 640;
presentParams.BackBufferHeight = 480;
presentParams.BackBufferFormat = Format.A8R8G8B8;

ちらつくのはタイマー使ってるからかもね。
383377:2005/11/21(月) 22:49:14
>>382
ダブルバッファリングに、何か処理が必要なのかと思っていたのですが
チラつくのは環境の問題なのですね。
タイマー切って、PresentInterval.Defaultでやっても改善されないので
もしかしたらモニタに問題があるかもしれません・・・(かなり古い物なので)
とりあえずモニタ買い換えるまで、このまま進めてみたいと思います。
どうもありがとうございました。
384デフォルトの名無しさん:2005/11/25(金) 16:17:51
Spriteで使ってるTextureのラップ方法を設定したいのだけど、出来ない、、。

device.SamplerState[0].AddressU = TextureAddress.Wrap;
device.SamplerState[0].AddressV = TextureAddress.Wrap;

これじゃ駄目なの?ヘルプみてもよくわからんです。
385デフォルトの名無しさん:2005/11/25(金) 21:42:42
質問させてください。

マイクから音声を取得し、音声の音量が一定値以上大きい時に、ある処理を発生させたいのです。(小声には反応しないけど、大声には反応するアプリケーションを作りたい)

マニュアルを見たところ、CaptureBufferには音量に関するプロパティは無いように見えました。
となると、取得したデータをCaptureBufferからSecondaryBufferにコピーし、再生してVolumeプロパティを取得して判定すればいいのでしょうか?

処理手順----------------------------
マイクから音声の取得
CaptureBufferに格納されているデータをSecondaryBufferに格納
SecondaryBuffer.Volumeプロパティを取得
if(volumeプロパティが一定値以上)
{
処理発生
}
-------------------------------------
以上のような処理手順を考えましたが、どうも正しいとは思えません。

スマートな方法があれば、どうぞ教えてください。
よろしくお願いしますm(_ _)m
386デフォルトの名無しさん:2005/11/25(金) 21:51:30
おまえらみたいなバカにゲームなんてつくれないさ
387デフォルトの名無しさん:2005/11/25(金) 21:57:06
これはまたわかりやすい馬鹿が降ってきましたよ。
388デフォルトの名無しさん:2005/11/26(土) 16:33:07
VSではなくBorlandのC#BuilderでDirectXに挑戦しようと思って
いるのですが、とっかかりがわかりません。
ご存知の方教えていただければ嬉しいです。
389デフォルトの名無しさん:2005/11/26(土) 16:48:34
つまりVSではやってうまくいったけど
BCではDLLのリンクが出来ないという意味?
390デフォルトの名無しさん:2005/11/26(土) 17:19:25
VSは持ってないんです。
今日、図書館から本を借りてきてやろうと思いましたが
内容がVSだわC++だわで最初っからつまづいてしまったので
皆さんに相談している次第です。
391デフォルトの名無しさん:2005/11/26(土) 20:13:43
質問に答えるにもとっかかりがいるな
392デフォルトの名無しさん:2005/11/26(土) 21:13:04
まず、アプリケーションを選択するのに
VSでは[Win32 プロジェクト]の[Windowsアプリケーション]
とありますが
これはBCではC#アプリケーションということでいいのでしょうか?

次にライブラリの追加ですが、
これはBCでは参照の追加にあたるのかなと推測したのですが
どうも違うような感じです。d3d9.libとかが見つかりません。
393デフォルトの名無しさん:2005/11/26(土) 22:37:00
それはVC++の話じゃないか!
394デフォルトの名無しさん:2005/11/26(土) 22:44:04
もしかして、ここで質問してたひと?

http://pc8.2ch.net/test/read.cgi/tech/1132965206/5-
395デフォルトの名無しさん:2005/11/27(日) 08:22:10
>>394
僕はそこでは質問してないです。
396デフォルトの名無しさん:2005/11/27(日) 15:56:33
色々やってましたら
参照の追加で
Microsoft DirectX Transforms Core Type Library
Microsoft DirectX Transforms Image Transforms Type Library
がありましたので入れてみました。

ただ、ここからさきがまったくです。
とりあえず、立方体でも描画してみたいのですが
どのメソッドをかけばいいのか、それ以前に、どんなフォームを貼り付ければ
いいのか、本を見てもちんぷんかんぷんです。

ご存知の方、いらっしゃいましたら宜しくお願いいたいます。
397デフォルトの名無しさん:2005/11/27(日) 16:55:40
最初からチンプンカンプンならVisual Studio買ったらどうかな。
学生さんだよね? theSpoke Premiumなら5,000円ぐらいで買えるし、
2005への無料アップグレードもあるらしいよ。
基本を理解してから他の環境に移行した方がかえって速いと思うよ。
398デフォルトの名無しさん:2005/11/27(日) 17:06:12
キミの頭じゃとうてい無理だろう。
399デフォルトの名無しさん:2005/11/27(日) 19:24:23
>>398
何かあったのか?初心者スレに常駐したりして。
すでに挫折しているのならば、
他のことをがんばった方が幸せになれると思うよ。
400デフォルトの名無しさん:2005/11/27(日) 19:30:15
おまえもな
401デフォルトの名無しさん:2005/11/27(日) 19:39:49
おまえ「も」な
402デフォルトの名無しさん:2005/11/27(日) 23:26:37
あ、なんかあれてきちゃったみたいで恐縮です。
一応、C#でプログラムが組めるのでその点は大丈夫なのですが
調べたらどうもC++がはばかってる様子(間違ってたらすいません)で
あとはコードを書くだけなんですけどその点はVSもBC#も変わらないかなと思うんです。

それで、ホームページあれこれ見てたんですが例えば立方体を表示させる枠ってLabelでいいみたいなのですが
どうなのでしょうか?だとしたら難しく考えすぎてました。

ご存知の方いらっしゃればお願いいたします。
403デフォルトの名無しさん:2005/11/28(月) 17:00:27
日本語を喋る知能があれば
プログラム言語である程度の事は出来るはず
404デフォルトの名無しさん:2005/11/29(火) 15:16:28
>>402
もうちょっと基礎つかまないと、質問受ける側が読み取れないよ。

とりあえず言えるのは、C#Builderはやめたほうがいい。
使ってる人少ないし、ぐぐっても碌に引っかかりもせんし

学割でもβ版でもいいから、とりあえず利用者の多いVSで
言語仕様から勉強して、段階を踏んで質問できるようになろう。
DirectXはその後からがいいかな。

Visual Studio 2005 Express Edition Beta 2 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/

VS+C#については、この辺で勉強するといいかも
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/
http://www.stackasterisk.jp/tech/dotNet/index.jsp
405デフォルトの名無しさん:2005/11/29(火) 21:13:26
そんなに遠回りしないといけないんだったらやめます
406デフォルトの名無しさん:2005/11/30(水) 07:58:58
あ、405は僕じゃないです。

C#はVSでもBC#もソースは変わらないので
その点は大丈夫なのですが
本がC++なもので困っておる次第です。

ですので、VSでは
単純に立方体を画面に表示するソースは
どう書くのか教えていただけるとこちら側で応用できると思います。
ご存知の方、ソースと立方体を表示する枠はLabelでいいのか
はたまた、違うものなのかVSの場合でかまいませんので
教えていただけると幸いです。
407デフォルトの名無しさん:2005/11/30(水) 08:35:22
DirectX+C#の情報は未だに多いとも言えないから、
どうしてもC++の情報を読む機会が多くなるよ。

>立方体を表示する枠はLabel
これが何だかよくわからないんだけど、
Mesh.Box( (ry とは違うのかな。
408デフォルトの名無しさん:2005/11/30(水) 11:43:01
>>406
Labelは.NETのテキスト表示のクラスだから
立方体は全然関係ないよ。そもそもDirectXと関係ないし

BoxじゃなくてTeapotだけど
http://www.microsoft.com/japan/msdn/directx/japan/dx9/winform1.asp
ここで大体やり方がわかる。(ソースもあるがBC#でそのまま使えるかは知らない)

TeapotじゃなくBoxの生成は、こんな感じにやればOK
private Mesh box = null;
box = Mesh.Box(Device, float 幅, float 高さ, float 奥行き);

//描画
box.DrawSubset(0);
409デフォルトの名無しさん:2005/11/30(水) 15:39:26
410デフォルトの名無しさん:2005/11/30(水) 18:46:33
>>407>>408>>409
どうもありがとうございます。すごく参考になります。
ところで、今日、図書館に予約していたDirectXに関する本の
順番が回ってきたので借りました。
そうすると、C#で紹介しているではありませんか、当然VSを使った内容ではありますが
これでなんとかなるぞと思って読むと、
VSにはDirectX 9 Visual C# Wizardなるものがあるではないですか。
みなさんはいつもこれを使われているのでしょうか?
どうもこれでいかないと駄目な予感が大です。くじけそうです。
とても親切にしていただいたのに本当にごめんなさい。
411デフォルトの名無しさん:2005/11/30(水) 19:06:49
DirectX 9 Visual C# Wizardは今のバージョンには無いぞ
412デフォルトの名無しさん:2005/11/30(水) 20:21:42
え!?そうなんですか。
では、みなさん、しょっぱなはどんな感じでスタートなのでしょうか?
413デフォルトの名無しさん:2005/11/30(水) 22:00:03
俺はVS使ってないんで、1から作ってる。
414デフォルトの名無しさん:2005/11/30(水) 22:06:15
VSを使わない方法もあるのですか?
色んな方法があるんですね。
ちなみにVSを使わないとなるとどのような方法になるのでしょうか?
415デフォルトの名無しさん:2005/12/01(木) 01:26:54
空のソリューションから作ってくのが
楽しいんじゃないか!!
416デフォルトの名無しさん:2005/12/01(木) 12:32:41
ソリューションですか。
DirectX ソリューション
で検索しましたがわからなかったです。
なにかツールでもいうなればDirectX Buillderのようなものがあるのでしょうか?
417デフォルトの名無しさん:2005/12/01(木) 12:48:22
段々ネタに見えてきた。
VS使ったことないだろ。
418デフォルトの名無しさん:2005/12/01(木) 13:04:30
VSはちょっとだけなら使ったことありますが
基本的にはBC#を使ってます。
同じものを作るのにソフトが違うだけで何かと弊害が多くて困っております。
419デフォルトの名無しさん:2005/12/01(木) 13:08:01
VS安いのでも買えばいいのに。
もしくはVS2005ベータ(無償)とか。
420デフォルトの名無しさん:2005/12/01(木) 13:16:39
VSのベータ版が出てるんですか?
それは試したいです。
ちなみにベータ版ってやっぱり色々問題あるものでしょうか?
421デフォルトの名無しさん:2005/12/01(木) 13:31:17
>>404が書いた事ぐらいしっかり読め。
それから、DirectXのドキュメントは読んだのか?
C#そのものは出来ると言っていたが、>>409のライブラリのソースは読んでみたか?
422デフォルトの名無しさん:2005/12/01(木) 13:42:56
なんか、もうくじけそうなのでVS入手します。
皆さん、長い間お世話になりました。
また、何かありましたらよろしくお願いします。
423413:2005/12/01(木) 21:18:21
>>414
ちなみに俺はコマンドラインでコンパイルしてる。
424デフォルトの名無しさん:2005/12/02(金) 19:15:22
Visual C# 2005のベータ版を皆さんのアドバイスに従って入れてみました。
その後DirectXもいれました。
どうやら、Visual C#とVisual Studioは違うようです。
BC#と同じ結果に終わってしまいました。
報告です。
425デフォルトの名無しさん:2005/12/02(金) 21:54:40
>>424
DXSDKについてるサンプルをコピーして使うんじゃなかったっけ?
426デフォルトの名無しさん:2005/12/03(土) 00:40:33
オマエはメモ帳でも使ってればいいんだよ
427デフォルトの名無しさん:2005/12/03(土) 00:55:26
君はチラシの裏な
428デフォルトの名無しさん:2005/12/03(土) 01:08:23
チラシの裏に書かれたコードもコンパイルするマイクロソフトの技術力は世界一
429デフォルトの名無しさん:2005/12/03(土) 01:40:43
調べもしないで質問するな」って冷てえなって思ってたけど
その気持ちがちょっとわかった
430デフォルトの名無しさん:2005/12/03(土) 09:56:18
>>427
つOCR
431デフォルトの名無しさん:2005/12/03(土) 16:37:53
サルがVS使ったってゴミしか作れないからやめとけ
432デフォルトの名無しさん:2005/12/03(土) 16:48:39
経験談。
433デフォルトの名無しさん:2005/12/03(土) 17:03:54
>>431
またメモ帳厨の君か (w)
434デフォルトの名無しさん:2005/12/04(日) 23:48:19
AudioVideoPlaybackのVideoを使って
動画のプレイヤーを作っています。

FullScreenプロパティを使って、
フルスクリーンにしたのですが、
ユーザーからの入力(クリック、キーボード)などで
FullScreenを解除したいのですが、
どうしてもFullScreen時のWindowを取得出来ないため、
FullScreenを解除出来ません。

何か方法は無いものでしょうか?
435デフォルトの名無しさん:2005/12/05(月) 05:32:52
フォーム作る時に
this.KeyPreview = true;
にしてみるとか
436434:2005/12/05(月) 21:21:37
ありがとうございます! 家に帰ったらさっそく試してみます。
437434:2005/12/05(月) 23:15:16
>>435
さっそく試してみました。
上手くいきました。
ありがとうございます。
ただ、問題がいくつか発生してしまいました。
(タスクバーが表示されるような表示の仕方をすると、FullScreenプロパティが常時Falseになるなど)


VideoのFullScreenプロパティをTrueにすると
ActiveMovie WindowというWindowが自動生成されるみたいです。
これさえ取得できればこのFormにイベント追加するだけなので、
何とか出来るんですが・・・・
どうにもならないでしょうか?

DirexctXの他のクラスで、アクティブなWindowを取得するようなものがありますでしょうか?

何度も質問してすみません。
わかる方居ればおねがいします
438デフォルトの名無しさん:2005/12/05(月) 23:20:26
MenuItemsに横棒を追加したいんだけど?
439デフォルトの名無しさん:2005/12/07(水) 00:53:26
>>438
MenuItemのTextプロパティに半角ハイフンを指定。
440デフォルトの名無しさん:2005/12/07(水) 12:41:07
MenuItemにseparator
441デフォルトの名無しさん:2005/12/07(水) 22:12:00
申し訳ありませんが質問させてください。
DirectXのライブラリとC#を使って簡単なゲームを作成したのですが
作成したゲームのウィンドウの左上部分とデスクトップやファルダに表示させるアイコンの
関連付け方法がわかりません。よろしければ参考サイトや方法を教えていただけないでしょうか。

使用ソフトはVS2003のC#.net
OSは2000です。
442デフォルトの名無しさん:2005/12/07(水) 23:38:11
デスクトップなどに表示されるアイコンの変更方法は
検索で見つかりました
http://dobon.net/vb/dotnet/programing/applicationicon.html

ウィンドウの左上部分に表示されるアイコンの設定方法ご教授ください
443デフォルトの名無しさん:2005/12/07(水) 23:57:14
App.icoを編集するとかでなくて?
444デフォルトの名無しさん:2005/12/08(木) 00:44:44
Iconを作成してソリューションに追加して
さらにデザインのプロパティのIconというところに登録したのですが
デザインのプロパティの画面では描いたデザインになっているのですが
メインウィンドウのデザインのほうでは初期のノートのページ?見たいな感じのアイコンになっていて
コンパイルしてもそうなっています。

作っているアイコンは32*32の16色です
445デフォルトの名無しさん:2005/12/08(木) 01:53:56
BinaryWriter.Write(float f)で書き込んだのですが、
BinaryReaderのメソッドに float を読み込むものが無いのですが、
どうやって読み込むのでしょう?
446デフォルトの名無しさん:2005/12/08(木) 01:55:46
>>444
俺も全く同じ経験をした。
アイコンは大きいのと小さいのを両方編集しないといけない。
切り替えられるはず
447445:2005/12/08(木) 02:05:59
自己解決しますたすまそ
448デフォルトの名無しさん:2005/12/08(木) 10:30:15
>>446
ありがとうございます解決しました。
イメージの現在のアイコンイメージの種類を選択すると16*16と
32*32の2つがでてくるので16*のほうも編集しないといけないようです。
449441:2005/12/11(日) 12:03:22
ゲームをネットワーク対応にさせようとおもっているのですが
DirectPlayで調べたところサイトが少ないことと
DirectPlayはあまり使われていないとかMSのほうでも
使うなみたいなことがReadmeに書いてあるらしいのですが
実際はどうなのでしょうか?
ネット対応ゲームを開発している方に聞きたいです。
また、DirectPlay以外に使っているものがあれば
勉強したサイトやお勧めの参考書を教えていただけないでしょうか。
450デフォルトの名無しさん:2005/12/12(月) 13:27:24
DirectPlayは非推奨なので、
とりあえず俺は.NET FrameWorkの標準のAPI(通信系)使ってる。
451441:2005/12/12(月) 20:05:50
>>.NET FrameWorkの標準のAPI(通信系
なるほど、本屋に行ってみたらWinSockに関する参考書がたくさんあって
その中でもサンプル入りの物を購入してきたので今いじっています。
http://www.kamada7.com/
ここのGAME CODING vol2ってやつです。
452デフォルトの名無しさん:2005/12/13(火) 16:02:05
いろいろさらに調べてたら
>>450さんの言うように
using System.Net;
using System.Net.Sockets;
を使うのがC#の場合は一般的のようですね

C++のWinSockのサンプルをC#に書き直そうとしていたんですが
C#の知識もあまりなくライブラリを使ってゲームを作成していたので手間取っています。
453デフォルトの名無しさん:2005/12/15(木) 11:46:01
managed DirectXで複数のモニタを使うサンプルとか
どこかに落ちてないですかね?
454デフォルトの名無しさん:2005/12/15(木) 14:41:53
マイクロソフトのHP以外でDirectX9.0を配布している
サイトがあったら教えてください。

どうやらOSが海賊版らしく認証してくれません。
正規品と交換するとお金が掛かってしまうのでなるべく
無料で手に入れたいのですが・・・。
455デフォルトの名無しさん:2005/12/15(木) 14:56:44
>どうやらOSが海賊版らしく
買ったお店に問い合わせると幸せになれると思うよ。
456454:2005/12/15(木) 15:05:21
買った店が無くなっててレシートも捨ててしまったので
連絡が取れません・・。完全にしてやられましたorz
やはり正規品を買うしかないのでしょうか?
457411:2005/12/15(木) 16:06:34
認証しなくても落とせるはずだとおもったけど?
458411:2005/12/15(木) 16:08:34
それとどうしてもダメならDXSDKって雑誌の付録DVDとかに入ってる場合があったような
459454:2005/12/15(木) 17:34:34
最近発売された雑誌にも付いているでしょうか?
460デフォルトの名無しさん:2005/12/15(木) 18:31:50
>>454
ちゃんとOSを買え
461デフォルトの名無しさん:2005/12/15(木) 18:37:43
>>454
文章がなんか、買ってないけど買ったような
言い方なんだけど。
ようするに海賊版を買ったわけだな。
まあ、そこんところはオウンリスクという事で。
462デフォルトの名無しさん:2005/12/15(木) 21:17:44
質問させてください。
ポリゴンに張ったテクスチャに、アンチエイリアシングをかけて表示させたいのですが
どのようにすればよいのでしょうか。
463デフォルトの名無しさん:2005/12/15(木) 21:47:24
ポリゴンの切れ目とか繋ぎ目を?
それともテクスチャの画像自体を?
464462:2005/12/15(木) 22:00:14
>>463
テクスチャ画像自体にです。
描画速度重視で、小さい画像を引き伸ばして
地面に該当するポリゴンに貼り付けているのですが
ガビガビになってしまうのです・・。
465デフォルトの名無しさん:2005/12/15(木) 23:07:24
>>464
元画像そのものをアンチエイリアス処理しておかなきゃいけない気がする。
あと頂点カラーを併用して滑らかに見せられないかな?

まあ、テクスチャ画像くらいケチらなくてもいいと思うけどね。
466462:2005/12/15(木) 23:43:46
以前、地面に同じテクスチャをズラーっと並べたら、かなりパフォーマンスが低下してしまったので
拡大して枚数を減らそうと思っていたのですが、やはり小さい画像をそのまま使うのは無理なんですね。

大きめの画像を用意して対応したいと思います。
どうもありがとうございました。
467デフォルトの名無しさん:2005/12/16(金) 06:26:42
>>466
C++なら
pDevice->SetTextureStageState( 0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR );
pDevice->SetTextureStageState( 0, D3DTSS_MINFILTER, D3DTEXF_LINEAR );
これで出来るから、Mnagedでも恐らく出来るはずなんだが
C#だと、どうやるのかわからん…。

Device.SetTextureStageState
ってのはあるっぽいが、日本語MSDNには記述無しで
どんなステータス渡せばいいのかサッパリ。
詳しい人求む。
468デフォルトの名無しさん:2005/12/18(日) 13:43:12
Windows2000でDirectX9 SDKいれようとしたら「そのOSはサポートしてません」って言われた。
泣きたい。
469デフォルトの名無しさん:2005/12/18(日) 14:42:25
死ねばいいのに
470デフォルトの名無しさん:2005/12/18(日) 20:01:41
このスレ住民ってゲームCGクリエイター?
471デフォルトの名無しさん:2005/12/19(月) 01:01:51
>>468
最新のは2000サポートされてない。
(October2004)ってのにしとけ
472デフォルトの名無しさん:2005/12/19(月) 06:16:46
(December2004)も対応してるお
473411:2005/12/21(水) 11:41:18
2000対応してて一番新しいのだと
たしか、Microsoft DirectX 9.0 SDK (February 2005)だったと思います
474デフォルトの名無しさん:2005/12/23(金) 01:10:23
質問させてください。

 DirextSoundでWAVファイルを読み込んで無音状態を取得しようと考えています。
再生はできるようにはなりましたが、どうやって、再生中の音量?波形?を取得
すればいいのでしょうか?よろしくお願いします。


475デフォルトの名無しさん:2005/12/23(金) 09:01:25
VisualStudio2005スレで回答がなかったので、
こちらで質問させてください。
-----------------------------------------------------

VS2005のExpressEditionで、DirectX9 SDKの日本語ヘルプを
使うにはどうしたらいいでしょうか。

検索したら
>ヘルプの目次→情報の参照→Vidual Studio .NET のヘルプの使い方→
>連結ヘルプコレクションマネージャの使用 を開くと一番下にある
> 『Visual Studio .NET 連結ヘルプ コレクション マネージャ』を開いて
> IDE を再起動することで登録できます

と書いてあるページを見つけたんですが、ExpressEditionのヘルプには
「情報の参照」ってやつ自体がなくて先に進めないです。
476デフォルトの名無しさん:2005/12/24(土) 12:17:58
別にDirectXのドキュメントを普通に開けばいいじゃないか…
477475:2005/12/24(土) 17:10:38
それでも使えますが、F1キーを押してヘルプ参照するのに
慣れてしまったもので、できれば統合して使いたいんです
478デフォルトの名無しさん:2005/12/24(土) 19:17:24
連結ヘルプコレクションで登録すれば、ヘルプの目次には
出てこないけど、F1キーで参照できるよ。

連結ヘルプコレクションは、ヘルプの検索で検索をかければ
辿り着ける。
479デフォルトの名無しさん:2005/12/26(月) 01:28:24
Alt + Tab でフルスクリーンを引っ込めた後、復帰する際に見事にコケます。
どうやら復帰時に Form.OnResize が動いてて、それに Device が反応するかららしいのですが……

フルスクリーンから確実な復帰を行うには、どのような手順で何を行えばよいのでしょうか……。
480デフォルトの名無しさん:2006/01/01(日) 05:17:17
質問っす

C#でマイクロスレッドって出来そうですか?
481460:2006/01/01(日) 05:21:11
っていうかごめん。凄くスレ違いだった。
どなたかもし知ってたら教えてください。

まあこれだけだとなんなので…

>>479
Device.OnResizingだったかな?
確かDeviceのイベントにそんな奴があったと思う。
そいつの引数はCancelEventArgsとかいう奴で、
そいつでキャンセルしてやると自動Resetを避けられるようになるよ。
482デフォルトの名無しさん:2006/01/05(木) 16:50:01
DirectDrawを使ってピクチャボックスに画像を描画しているのですが、アルファ値を有効にして描画する方法がわかりません。
インターネットで検索してみたのですが、見つかるのはDirect3Dを使って描画する方法ばかりでDDrawを使ってアルファ値を有効にする方法が見つけられませんでした。
どなたか方法をご存知の方、教えて下さい。お願いいたします。
483デフォルトの名無しさん:2006/01/05(木) 16:51:38
自分で
484デフォルトの名無しさん:2006/01/05(木) 17:47:23
DirectDrawがどうなってるか知らんけど
Direct3DにはSpriteとか2D専用クラスもあるし
485デフォルトの名無しさん:2006/01/05(木) 23:49:51
>>482
Drawでαブレンドを実装しているハードウェアはまず無いので、
自分でピクセルごとに計算する必用がある。
で、お前は方法が見つけられないのではなくて、
面倒そうだから見なかったことにしているだけだろう。
486デフォルトの名無しさん:2006/01/09(月) 00:44:12
TextureLoader.FromStream から透過PNG読み込むと色が変になるから、
Bitmap 作って Texture.FromBitmap 使いました……

ナニコレ。メンドクサイ。・゚・(ノД`)・゚・。
487デフォルトの名無しさん:2006/01/09(月) 05:26:58
スレちがいすみません。
C#とDirectXで3Dのリバーシを作ってみました。
ソースも公開。
http://www.purple.dti.ne.jp/sslt/
488デフォルトの名無しさん:2006/01/09(月) 13:23:18
お、なかなか良く出来てるみたいだね。

打てない箇所が見えなくてやりにくいのと(残りどのくらいあるのかがわからない)
AIがどこに打ったのかが判るといいかな。まあこれはゲームの話になるけど。

あとソース中に関数や変数に日本語使ってるけど、今後プログラムを他人とやる場合や
他の言語を使う場合に問題になる可能性があるので、そういうことも視野にいれてるなら
半角アルファベット+アンダーバーのみにしたほうがいいね。
489デフォルトの名無しさん:2006/01/09(月) 13:24:07
補足。
いまのやつは動いてるからいまのはそのままでも問題ナシ。
490デフォルトの名無しさん:2006/01/09(月) 20:49:46
>>487
>Managed Code for DirectX
逆だとオモ
491487:2006/01/10(火) 05:42:38
487です。ご指摘ありがとうございます。
>>488
表示方法をもう少し考えてみます。
>>490
日本語のページをなにも考えずにコピーしていました。
直します。
スレ違いすみませんでした。
492デフォルトの名無しさん:2006/01/15(日) 17:46:08
エラー出てうごかね
SDKのバージョンは
どれ使ったの?
493487:2006/01/17(火) 06:39:13
487ですが、
Microsoft DirectX SDK (December 2005) を使いました。
どんなエラーですか?
494デフォルトの名無しさん:2006/01/18(水) 08:39:18
CodeProjectのじゃなくて、sourceforgeにDirectShow.NETってのがある
http://sourceforge.net/projects/directshownet/

サンプルコード見た感じ、CodeProjectのより使いやすそう
495デフォルトの名無しさん:2006/01/22(日) 14:47:49
>>487
>>492とは別人だけどこっちもVS2005でエラー
ツリーでDirectXが付いたものの参照を消して設定しなおしたらうまくいった
肝心のゲームは空間がうまく把握できなくて3D酔い
矢印キーで操作できないかと思って書き直したけど更にひどくなった orz
496デフォルトの名無しさん:2006/01/22(日) 18:19:43
3D空間に2Dの文字列を表示させたくて

BitMapを用意→BitMapに文字列書き込み→テクスチャにして表示

ってやってみたんだけど
Texture.FromBitmapの処理でガクガクになってしまいます・・・。
font.DrawTextは深度情報持たせられないっぽいし
Mesh.TextFromFontは3Dになっちゃうし・・・
テクスチャにそのまま、文字列を書き込むような方法ってないのでしょうか。
497デフォルトの名無しさん:2006/01/23(月) 14:07:49
>>496
ポリゴンに文字貼り付けたいってこと?
Texture.FromBitmapじゃ駄目なんかな。
更新時だけ呼び出せば、そう重いってことも
無いと思うけど
498デフォルトの名無しさん:2006/01/23(月) 16:00:32
てくすちゃぶれんでんぐ
499496:2006/01/23(月) 20:15:55
>>497
>ポリゴンに文字貼り付けたいってこと?
そうです。

アバターチャットのようなものを作っていて
チャットを、アバターから吹き出しのようにして出してるのだけど
その吹き出しの処理が

Spriteで吹き出しを表示→その上にfont.DrawTextで文字列を重ねて表示

となっていて、遠くの吹き出しは、アバターや障害物の裏に
隠れるといった感じにしたいのですが、font.DrawTextは
2次元配置しかできないようなので、一度Bitmapに書き込んで
Texture.FromBitmapでテクスチャにして貼り付けるようにしてみましたが
吹き出しを更新する度に、Texture.FromBitmapを行っていて
この時の処理が重いようで、瞬間的に10fps前後になることもしばしば…。
これ以外何か方法は無いものでしょうか。

>>498
テクスチャブレンディングでフォントの表示が出来るということでしょうか。
調べてみたけどみつからない・・・。
500487:2006/01/24(火) 14:17:19
>>495
ご指摘ありがとうございます。
エラー、Express Editionを入れて直してみました。
矢印キーでの回転はModelViewerCameraをつかっていると
難しいと思います。
ライトと表示関係も調整して更新しました。
501デフォルトの名無しさん:2006/01/28(土) 12:49:32
厨的な質問かもしれませんが、WebアプリケーションでDirectXを使えますかね?
502デフォルトの名無しさん:2006/01/28(土) 13:10:05
>>501
どの層でどう使うのかによる。
503デフォルトの名無しさん:2006/01/29(日) 02:06:33
プレゼンテーション層
504デフォルトの名無しさん:2006/02/01(水) 15:57:08
質問があります。

Sprite sprite = new Sprite(device);

(中略)

sprite.Draw(texture
    ,new Vector3(width,height,0)
    ,new Vector3(x,y,z)
    ,unchecked((int)0xFFFFFFFF));

(後略)

このSprite.Drawの、Z軸の設定が上手くいきません。
第3引数のVector3のZ軸に0〜1.0の値を入れてやればいいというのは
解かるのですが、奥行きの求め方がわかりません。
例えば、他のポリゴン等の3Dの物体と、奥行きを合わせて
表示するにはどういう計算でzの値を求めればよいのでしょうか?
505449:2006/02/08(水) 19:36:50
449で質問をさせていただいたものなのですが
using System.Net.Sockets
を使ってゲームをネットワーク対応させようと思っています。
ネットワークプログラムは初めてでかってがわかりませんが
とりあえず文字列を転送して操作させようと思っているのですが
メイン画面に通信部分を入れると
server.AcceptTcpClient();で待ち状態になって画面がとまってしまうため
スレッドを作って通信部分を別動作させてあげたのですが
画面がとまることはなくなりましたが通信がうまくいってくれません。

参考になるサイトがなかなか見つからなく
もし、参考になるサイトをご存知の方がいらっしゃいましたら
教えていただけないでしょうか
506デフォルトの名無しさん:2006/02/08(水) 21:28:04
>>504
任意の座標をスクーリーン〜ローカル行列でトランスフォームして
そのZを使えばいいんじゃね?
507デフォルトの名無しさん:2006/02/08(水) 21:57:18
過疎っているように見えるが、
書き込みがあるとレスが付く。
素晴らしきかな。
508411:2006/02/08(水) 23:16:03
って、文字列送信してキーボードの操作をサーバー側で再現とかやってるわけないですよね
どう考えても現在地の座標を送ってる…
と、いうことは座標をクラからサーバーに送ってあげる方法となると思うのですが
サンプルは
client = new TcpClient(server, port);
stream = client.GetStream();
data = System.Text.Encoding.UTF8.GetBytes(message);
stream.Write(data, 0, data.Length);
と、いった具合に文字列送信のが主になっていまして
最初はキーを押したらそれに関連した文字を送信してサーバー側で動かすということをやっていたのですが
FPSは落ちてカクカクして同期もまったく取れないので
座標を送るようにしようと思いましたが
方法がわかりません。よろしければご教授願います。
509411:2006/02/09(木) 17:07:46
文字列で座標を送り
Splitによって座標XYZを取り出してそれをモデルの座標とすることで
一応は動くようになったのですが
通信を毎フレームごとしっかり確立できてないのか
クウライアントでの操作がサーバー側にフレームごとに反映されずかくかく動いてしまいます。
サーバー通信部分(スレッド内)
//接続待機
client = server.AcceptTcpClient();
//接続
stream = client.GetStream();
int i;
//メッセージを受信
i = stream.Read(bytes, 0, bytes.Length);
data = System.Text.Encoding.UTF8.GetString(bytes, 0, i);
string [] arry;
arry = data.Split(',');
POSX = arry[0];
POSZ = arry[1];
RORATEY = arry[2];
クライアント側通信部分(スレッド内)
//サーバーに接続
message=pos.X+","+pos.Z+","+character.rotate.Y;
client = new TcpClient("192.168.0.1", port);
stream = client.GetStream();

//サーバーにメッセージを送信
data = System.Text.Encoding.UTF8.GetBytes(message);
stream.Write(data, 0, data.Length);
上記のはメイン画面表示ループからスレッド分岐した関数の通信部分です。
サーバー側に滑らかに座標データを転送する方法をご存知の方いらっしゃいましたらアドバイスお願いします。
510411:2006/02/12(日) 01:43:27
解決しました。
同じような問題を抱えてる方がいましたらいつでもご質問ください
511デフォルトの名無しさん:2006/02/13(月) 12:58:08
前スレみてて思ったのですが、
DoEventsを使うと動作が不安定になるという問題は解決されたのでしょうか?
本(Managed DirectX 9 KICK START)やマイクロソフトのサンプルには
DoEventsを使わずにメインループを作ってありました。
皆さんはDoEventsを使っていますか?

前スレ(DAT落ちしていたのでInternetAchiveから)
http://web.archive.org/web/20041015054056/http://pc5.2ch.net/test/read.cgi/tech/1069666471/
の119
512デフォルトの名無しさん:2006/02/13(月) 15:31:00
DirextXSDKのチュートリアル3で三角形がぐるぐる回転するやつなんですが
3角形のオブジェクトを2つや3つにする方法が全然わかりません
どうやってVertexBufferを2つ以上にするんでしょうか?
513デフォルトの名無しさん:2006/02/16(木) 10:50:45
ネトゲつくる椰子は
最初は座標とかパラメータとか全部送ろうとするんだよな
それがいかに効率悪いことであるかにどのくらい早く気づくかが勝負の分かれどころ

普通は入力情報のみを渡すのが定石なんだが まぁがんばれ
514デフォルトの名無しさん:2006/02/17(金) 16:52:19
>512
 VertexBufferを二つ作って位置をずらすか、
 VertexBufferの頂点を増やす
515デフォルトの名無しさん:2006/02/17(金) 16:57:53
>>513
そして、入力情報だけじゃ同期とれないことに気づくわけだが
516デフォルトの名無しさん:2006/02/17(金) 17:18:38
ネトゲ≠3D

最悪、内部符号垂れ流しでゲーム進めるのも、一箇所でもネット使ってればネトゲ
517デフォルトの名無しさん:2006/02/17(金) 22:50:57
a
518411:2006/02/21(火) 12:41:36
同期に関する勉強はしているので
やはり固定の動作を決めておいて入力情報である程度動作させるのが
一般的のようですね。
いろいろ、方法を考えて如何にデータ量を抑えようか考えていこうとおもっています。
519デフォルトの名無しさん:2006/02/22(水) 13:15:45
初心者なんですが、質問があります。
ビットマップをもとにTextureを作成したいのですが、エラーになります。
これ何がまずいのでしょうか。
いろいろ調べたのですがさっぱりわかりません。

↓ コード
 PresentParameters presentParams = new PresentParameters();
 presentParams.IsWindowed = true;
 PresentParams.SwapEffect = SwapEffect.Discard;
 Device device = new Device(0, DeviceType.Hardware, form.Handle, CreateFlags.SoftwareVertexProcessing, presentParams);

 Bitmap tbmp = new Bitmap(256, 256);
 Texture texture = new Texture(device, tbmp, Usage.None, Pool.Default);

↓ エラー
 Microsoft.DirectX.Direct3D.InvalidCallException : アプリケーションでエラーが発生しました。
スタックトレース:
 場所 Microsoft.DirectX.Direct3D.Texture.CreateTextureFromBitmap(Device device, Bitmap image, Usage usage, Pool memoryPool)
 場所 Microsoft.DirectX.Direct3D.Texture..ctor(Device device, Bitmap image, Usage usage, Pool memoryPool)
520デフォルトの名無しさん:2006/02/24(金) 12:24:39
515 名前: デフォルトの名無しさん [sage] 投稿日: 2006/02/17(金) 16:57:53
>>513
そして、入力情報だけじゃ同期とれないことに気づくわけだが


楽勝だと思うんだが
どう同期がとれないと言ってんだろ
MMOみたいなCS型のネトゲのこと言ってんのかな?
521デフォルトの名無しさん:2006/02/24(金) 12:44:06
>>520
MMORPG以外に位置座標の同期が必要になるネトゲって何だ?
522デフォルトの名無しさん:2006/02/24(金) 21:49:14
FPSとみせかけてリバーシ
523デフォルトの名無しさん:2006/02/24(金) 22:36:16
位置情報なんて鯖から送られて来るだろ
524デフォルトの名無しさん:2006/02/25(土) 08:48:05
>>522

フレームレートがどうした?
525デフォルトの名無しさん:2006/02/25(土) 16:58:35
フレームレートだったらfpsと書くなぁ
526デフォルトの名無しさん:2006/02/27(月) 02:35:50
RenderTargetの内容をテクスチャにコピーしたいんですが
どういう方法がありますか?
今は下のようなコードで取得しているんですが、真っ白なテクスチャができるだけでうまくいきません。

Texture tex;
Surface srcSurf, dstSurf;
srcSurf = dev.GetRenderTarget(0);
tex = new Texture(dev, srcSurf.Description.Width, srcSurf.Description.Height, 1, Usage.None, srcSurf.Description.Format, Pool.SystemMemory);
dstSurf = tex.GetSurfaceLevel(0);
dev.GetRenderTargetData(srcSurf, dstSurf);
527487:2006/03/01(水) 14:12:51
ゲームではないんですが、
C#,DirectXのプログラムをソース付で公開してみました。
http://www.purple.dti.ne.jp/sslt/
528デフォルトの名無しさん:2006/03/04(土) 23:42:45
DirectXではないのですがC#でゲーム関係のことでここで聞いても
大丈夫ですか?

ゲームで大量のオブジェクトに高速にメモリを割り当てたいのですが、
必要になるたびにnewするのでは、newの時間や、メモリ消費が問題に
なるような気がします。
C++ではメモリをあらかじめ確保しておき、そこから必要に応じて割り当てて
やることができたのですが、C#でそのようなこと、もしくはそれに相当する処理が
可能でしょうか?
529デフォルトの名無しさん:2006/03/05(日) 00:25:08
DirectX SDK入れたいのですが、ネットワークにつなげない状態で手に入れる方法ってありますでしょうか?

今、ネットにつなげられない(このカキコは漫喫で書いてます)ので、どこかでCDとかで買えると助かるのですが
どこかで売ってますでしょうか。
530デフォルトの名無しさん:2006/03/05(日) 05:01:05
>>529
本やさん。
531デフォルトの名無しさん:2006/03/05(日) 05:38:29
>>529
素人は密輸しとけ
532デフォルトの名無しさん:2006/03/05(日) 06:12:57
>>529
ネット喫茶にCD-R持参で
533デフォルトの名無しさん:2006/03/05(日) 13:48:04
>>526
UpdateSurface
534デフォルトの名無しさん:2006/03/07(火) 12:11:35
>>532
ごもっともです
535デフォルトの名無しさん:2006/03/09(木) 13:42:17
Ver 2.0.0.0のDLLを使ってるのですが、ライトが設定できません。
Update()またはEnableを設定したときにInvalidCallExceptionが
スローされます。前のバージョンでは同じ設定で設定できました。
2.0のヘルプはまだ存在でしないのですか?
536デフォルトの名無しさん:2006/03/10(金) 10:14:46
2005はVisialStudioのウイザードに追加されなくなったデすか?
537デフォルトの名無しさん:2006/03/11(土) 00:27:36
コンパイラ環境が.NETの2002なんですが、DirectX9SDKをインストールしても
APPウイザードにDirectXのプロジェクトが作れないばかりか、諦めて
普通にAPPプロジェクトで作ろうとして、参照の追加を設定しようと思ったら、
参照のリストにあるべきMicroSoft.DirectXとかがないです。
どうやったら使えるようになるか教えてください。お願いします。
538デフォルトの名無しさん:2006/03/13(月) 16:57:25
2003使ってるんだが
2005でSDKちゃんと使えてる?

買い換えたいんだがそこらへんが心配で躊躇
539デフォルトの名無しさん:2006/03/13(月) 17:03:18
いいよ2005。2003からのりかえた。
540S-Take:2006/03/14(火) 11:41:37
誰か助けてください!
DirectX9SDKでプログラミングしていたら、「LPDEIRECTINPUT8」が
定義されていないという旨のエラーが出てきます。
ちゃんと、<dinput.h>はインクルードしているんですが…。
なぜなんでしょう?
541デフォルトの名無しさん:2006/03/14(火) 11:48:19
だってすぺるまちがってるし
542S-Take:2006/03/14(火) 11:58:57
ごめんなさい。
「LPDEIRECTINPUT8」じゃなくて、
「LPDIRECTINPUT8」です。
543デフォルトの名無しさん:2006/03/14(火) 12:11:26
dinput8.h じゃなかったっけ?
544S-Take:2006/03/14(火) 12:18:16
dinput8.hというヘッダーファイルははないです。
545デフォルトの名無しさん:2006/03/14(火) 12:37:04
……スレ違い
546526:2006/03/14(火) 14:39:02
>>534
遅レスですがすみません。
UpdateSurfaceでは実行時に例外が発生しました。
どうもソースサーフィスのPoolがSystemMemoryでないとだめなようです。

で、それからいろいろ試してみたのですが、
>>526の方法で取得したあと
 tex.Save("C:\\test.bmp", ImageFileFormat.Bitmap);
などとするとちゃんと保存されていて、取得はうまくいっていたことがわかりました。

とすると描画の箇所が悪いということになるのですが、
この部分もいろいろ試行錯誤したのですがわかりませんでした。
コードは下のような感じです。
 dev.BeginScene();
 dev.Clear(Color.Black);
 sprite.Begin(SpriteFlags.None);
 Rectangle rect = this.ClientRectangle;
 sprite.Draw2D(tex, rect, new SizeF((float)rect.Width, (float)rect.Height), new PointF(0.0f, 0.0f), Color.White);
 sprite.End();
 dev.EndScene();
 dev.Present();

547デフォルトの名無しさん:2006/03/15(水) 17:34:16
DirectInputはswitchで振り分けられないですか?
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
549デフォルトの名無しさん:2006/03/19(日) 03:30:42
550デフォルトの名無しさん:2006/03/19(日) 23:34:00
 
551デフォルトの名無しさん:2006/03/20(月) 23:26:41
>>528
俺は特に問題になってない。
定期的にコレクトされる際にカクっと来る場合はあるが。

あなたが言ってるような処理が可能かどうかといえば、普通に可能。
まあ問題になってから対処してもいい部分な気がするけど。
552デフォルトの名無しさん:2006/03/24(金) 04:44:43
Videoで動画再生している人いますか?
再生が終了したら動画を消したいんですがどうすればいいんでしょうか。
Ending イベントで Owner = null とするとウインドウ外に表示されてしまいます。
Dispose() を呼び出すと実行時例外が発生します。
553551:2006/03/24(金) 04:51:25
自己解決しました。すみません。
Ending イベントの中で
this.BeginInvoke(new MethodInvoker(delegate() {
 video.Dispose();
}));
としたらできました。
554デフォルトの名無しさん:2006/03/24(金) 15:42:23
どなたか前スレのログ持ってませんか?
datでもhtmlでもいいのでおねがいします
555デフォルトの名無しさん:2006/03/25(土) 00:41:13
556デフォルトの名無しさん:2006/03/25(土) 09:41:16
>>555さん、どうもありがとう
じっくり読み直してきます
557デフォルトの名無しさん:2006/03/28(火) 11:50:29
わかりやすいチュートリアルを公開してるHPはないのかね〜
558デフォルトの名無しさん:2006/04/04(火) 16:40:02
みなさんはEmptyProjectから作ってますか?
それともWindowsアプリケーションから作ってますか?
559デフォルトの名無しさん:2006/04/06(木) 16:24:58
>>555
キーワード何?
560デフォルトの名無しさん:2006/04/06(木) 21:39:16
はじめまして、よろしくお願いいたします。

.NET C#を始めて体験するのですが、本屋で
マニュアル購入したり、WEBで調査してもわかりませんでした。
CSV読込や配列の場所を読んでも、目的の部分がわかりませんでした。

データ11,データ12,データ13
データ21,データ22,データ23
データ31,データ32,データ33
(縦/横 カンマで区切られた二次元配列---->CSV(TXT)ファイル)

この、カンマで区切られた二次元配列のテキストファイルを
Streamreaderで一行読込(または全部読込)した場合、
どうしても、二次元配列型の変数(バファ)に格納したいのですが、
うまくできません。
x[2,2] <-- この二次元配列が全て埋まるように入れたいのですが
どうしても、x[0,0][1,0][2,0]にしか入りません。
うまく、カンマを区切りと認証して、横の配列にも格納
したい場合どのように記述すればよろしいのでしょうか?
ご指導お願いいたします。
561デフォルトの名無しさん:2006/04/06(木) 23:05:13
言っていることがよくわからないしそもそもスレ違いです
562デフォルトの名無しさん:2006/04/06(木) 23:05:40
>>560 おまえ、C#がタイトルに入ってるスレひたすら爆撃してるだろ(゚Д゚)
563デフォルトの名無しさん:2006/04/07(金) 00:31:33
テクスチャを四角形にクリッピングしたいんですけど、各頂点の UV 座標は

SurfaceDescription desc = Texture.GetLevelDescription(0);
float u1 = clip.Left / (float)(desc.Width - 1);
float u2 = clip.Right / (float)(desc.Width - 1);
float v1 = clip.Top / (float)(desc.Height - 1);
float v2 = clip.Bottom / (float)(desc.Height - 1);

……であってますか?
なんとなく、ずれているような気がするんですけど……。
564デフォルトの名無しさん:2006/04/08(土) 01:59:34
DirectXのランタイムが1.1と2.0って言うのがあるけど.NET Frameworkのバージョンなのかな?

MSのサンプルが1.1で作られてるみたいなんだけど2.0って非推奨だったりする?
その辺に落ちてるサンプルがほとんど1.1用みたいで資料が全然無い・・・。
大人しく1.1で作るべきなのかなぁ。
565デフォルトの名無しさん:2006/04/08(土) 02:07:56
2.0 って、ついこのあいだ出たばかりだし。
566デフォルトの名無しさん:2006/04/08(土) 02:19:01
そもそもまだベータ版だよ。
567デフォルトの名無しさん:2006/04/08(土) 02:21:39
情報量まだないし、俺は2.0はパスしておいた。
568デフォルトの名無しさん:2006/04/08(土) 02:24:49
そうなんですか・・・。

最近DirectXの勉強始めたばかりだから全然そういうのわからなくて・・・。
VS2005とSDK入れたら勝手に入ってたので新しい方が良いかなと思って使ってたのですが・・・。

1.1で頑張ってみます。
ありがとうございました。

あと、1.1だと64bit環境ではプラットフォームターゲットをAnyCPU→x86に変更しないと動かないみたいですね。
2.0では警告出るけど動くようです。
569デフォルトの名無しさん:2006/04/08(土) 03:05:43
>そもそもまだベータ版だよ。
これは嘘。

どうせすぐ2.0が主流になるんだし、そういう点では問題ないと思う。
570566:2006/04/08(土) 04:01:04
>>569
そうなん? なかのひとは beta 版だって言ってるように見えるけど・・・
http://blogs.msdn.com/tmiller/archive/2006/02/12/530741.aspx
http://blogs.msdn.com/dweller/archive/2006/02/10/529884.aspx
571デフォルトの名無しさん:2006/04/08(土) 04:02:51
.NET Framework 2.0 は正式版
.NET Framework 2.0 対応の MDX ランタイムはβ版
572569:2006/04/08(土) 04:09:20
>>570
ああ・・・.NET Frameworkのことかと思ってた。
勘違いです。申し訳ない。

吊ってきますorz
573本当に困ってます:2006/04/15(土) 11:08:30
すみません。ダイレクトX9.0をXPが正規版じゃなくてもインストールできる
サイトをどなたか教えてください。お願いします><
一生懸命過去ログ探したのですがみつかりませんでした。
574デフォルトの名無しさん:2006/04/15(土) 11:14:28
な い
575デフォルトの名無しさん:2006/04/15(土) 11:22:11
>>573
またおまえか
576本当に困ってます:2006/04/15(土) 11:27:56
お前ってだれ!?いつだか前に過去ログにあって、ダウンロードできたんですが、
OS再インストールしてしまって、DirectX9.0いれれなくて、困ってます。
やさしい人お願いします〜。
577デフォルトの名無しさん:2006/04/15(土) 11:32:43
正規XPを再インストールでおk
578デフォルトの名無しさん:2006/04/18(火) 23:10:57
マイクロソフトに聞けよ
579デフォルトの名無しさん:2006/04/22(土) 19:41:38
http://d.hatena.ne.jp/yaneurao/20060423#p1

>いま他人のプログラムをデバッグしている。時間がもったいないので目視のみだ。
>私の場合、小さなクラスならば、目視のみでほぼ100%デバッグできる。

「100%バグが取れた」と無邪気に確信でき、平気で吹聴できる辺りが痛杉。
580デフォルトの名無しさん:2006/04/22(土) 20:20:01
MP3などの音楽ファイルを2倍速で再生しようとしたら、DirectShowを利用する
事になるのでしょうか?
宜しくお願いします。
581デフォルトの名無しさん:2006/04/23(日) 20:06:25
32Bitビットマップのアルファチャンネルって

Bitmap bmp = new Bitmap( "FileName.bmp" );

をすると全て0xffにされるのですが、何が原因でしょうか?

Texture tex = new Texture( device, stream, Usage.None, Pool.SystemMemory );

としても同じでした…
解決策あれば教えてください
582デフォルトの名無しさん:2006/04/23(日) 21:20:58
bmpにαデータを記録する規格は存在しないので、
他のファイルフォーマットを使えばいいだけの話。
583デフォルトの名無しさん:2006/04/23(日) 23:00:20
あとよくあるのはアルファ情報を色に置き換えたbmpを別に用意するとか
584581:2006/04/24(月) 21:29:03
やっぱロード時には無理ですか。
自分でBinaryReaderで読み込んで叩き込むしかないのね…
返答ありがとうございました。
585デフォルトの名無しさん:2006/04/24(月) 22:11:51
>>584
D・D・S!D・D・S!

Texture texture = TextureLoader.FromFile(device, "なんたらかんたら.dds")
586デフォルトの名無しさん:2006/05/07(日) 02:46:11
private Device dsDevice = null;
dsDevice = new Device();



private Device dsDevice = new Device();

って同じ事?
587デフォルトの名無しさん:2006/05/07(日) 13:14:36
オブジェクトの生成タイミングが違うだけで、
基本的には同じ意味だと思う。
生成するクラスにもよるだろうけど。
588586:2006/05/07(日) 19:32:32
( ´∀`)ノ
589デフォルトの名無しさん:2006/05/17(水) 01:09:16
なんかいつのまにかMDXもインストールするランタイムが配布されてたんだな
ってかおせーよマイケル

しかもVS2003のときに作ったやつを2006−4を入れてVS2005でコンパイルすると
ライブラリの競合とか言ってエラー出るし日本語ドキュメントは2004のまんまだし
もうね、、、、
590デフォルトの名無しさん:2006/05/17(水) 05:49:05
XNA Frameworkまでの我慢だ。
591デフォルトの名無しさん:2006/05/17(水) 20:21:20
近頃SDK入れるときにXNAって出てるけど
ようはフレムワクのグラフィックストリームを今までどおり使うだけで
MDXくらいのパフォーマンスが得られるようなものと考えていいのか?
592デフォルトの名無しさん:2006/05/21(日) 22:35:31
c#を流行らす気あんのか?

delphiの道を進んでるぞ
593デフォルトの名無しさん:2006/05/21(日) 22:47:20
C#だとWinGアプリ作れないもんな(´・ω・`)
594デフォルトの名無しさん:2006/05/22(月) 22:04:20
Delphiとの違いは、MSによる言語ということだ。
Delphiなどよりも大きな未来がある。
595デフォルトの名無しさん:2006/05/22(月) 23:09:16
まあ、今の様子だとアレとかアレみたいに唐突に切り捨てられることはなさそうだな
596デフォルトの名無しさん:2006/05/24(水) 00:28:08
ヴィジュアルJ とか
切り離されたのと同じくらい酷い扱いのもなくはないよね?


ほんまにデルファイみたいな末路にならんことを祈るよ
力入れてるならC++よりサンプル増やせといいたい
597デフォルトの名無しさん:2006/05/26(金) 01:09:57
そしてサンプルは共通コモンクラスのせいで
内容がまったく解読できない漏れ
598デフォルトの名無しさん:2006/05/30(火) 21:40:29
質問です。

Meshの1頂点の色を動的に変更したいのですが、どうしたら良いでしょうか?
599デフォルトの名無しさん:2006/05/31(水) 01:52:00
そのメッシュがXファイルからロードしたのか
動的に作ったのかでかわるが
動的に作ったのなら破棄して作り直しとか
600デフォルトの名無しさん:2006/05/31(水) 15:06:48
自己解決しました。

Xファイルからロードしています。
Mesh.VertexBuffer
Mesh.IndexBuffer
から頂点を導き出し、変更できました。

ありがとうございます。
601デフォルトの名無しさん:2006/05/31(水) 19:33:19
基本的なことですみませんが質問です。
現在 Microsoft.DirectX 2.0.0.0 (v2.0.50727) を参照しています。
TextureLoader を使うために Microsoft.DirectX.Direct3DX 1.0.2911.0 (v1.1.4322) を参照したいのですが、
そうすると 「Microsoft.DirectX.Direct3D.Sprite が両方のアセンブリに存在します」という旨のエラーが出ます。
これはどのように解決すればよいのでしょうか。
602デフォルトの名無しさん:2006/05/31(水) 19:43:47
Microsoft.DirectX 2.0.0.0 (v2.0.50727)

を1.x.x.系に汁!
603601:2006/05/31(水) 20:22:03
>>602
異なるバージョンのDirectXは一緒に使えないんですね・・・
全部1.x風に書き換えるのも手間なのでTextureLoaderを使わずになんとか済ませるようにします。
どうもありがとうございました。
604デフォルトの名無しさん:2006/06/01(木) 15:40:32
なんかC#ラブス。
いつかあなたと恋女房
ワロス。
605デフォルトの名無しさん:2006/06/01(木) 21:11:25
MDX,もいっしょにインスコするラインタイムが配布されはじめたんだな
しらなかったよ
606デフォルトの名無しさん:2006/06/01(木) 21:59:50
ホントダ
with Managedってインストーラーに書いてあるね。
配布が楽になるのか?
607デフォルトの名無しさん:2006/06/10(土) 21:26:30
DirectXのAudioVideoPlayBack名前空間にあるAudioクラスで、
mp3音声を再生できるのは分かりました。

しかし、DirectSoundのように、
バッファ単位で処理(音程の変えずに速度変化など)を行いたいのですが、
Audioクラスではバッファを覗くことも変更することも出来ず、
またDirectSoundはmp3に対応していない様でした。

こういった場合、素直にWAVEファイルにデコードして処理するより他ないのでしょうか?
また、デコードに関しての調査で「acm」という、ものを使えば良いらしい、という情報も得たのですが、
これに関してC#で使う方法が見つけられませんでした。どのようにして使うものなのでしょうか?

この二つについて、ご教授いただけると幸いです。
608デフォルトの名無しさん:2006/06/10(土) 23:18:45
age
609デフォルトの名無しさん:2006/06/11(日) 06:50:02
マイクロソフトの公式HP以外で
DirectX9をDLできるとこないですかね?

認証通らないのです
610デフォルトの名無しさん:2006/06/11(日) 07:11:14
>>454あたりから嫁
611デフォルトの名無しさん:2006/06/11(日) 19:46:34
認証できないって……
612デフォルトの名無しさん:2006/06/11(日) 20:56:54
>>609
何か心当たりはありますか?
613デフォルトの名無しさん:2006/06/11(日) 21:44:23
たしかC#などのmanagedではC++より1割程度パフォーマンスが堕ちるだけだと
聞いたけど本当なの?
614デフォルトの名無しさん:2006/06/11(日) 22:05:42
>>613
C#にはmanagedしかないけどな。
C#とmanaged C++を比較してるんならその程度なんじゃないか?
C#とnative C++だったら圧倒的に後者が早いだろうけどね。
615デフォルトの名無しさん:2006/06/11(日) 23:20:59
圧倒的ってどのくらい?
616デフォルトの名無しさん:2006/06/11(日) 23:37:25
パフォーマンスより楽さを選んでしまう俺ガイル
617デフォルトの名無しさん:2006/06/12(月) 01:33:14
この開発効率はいいよな
618デフォルトの名無しさん:2006/06/12(月) 02:34:16
non pow とpow2って何がどう違うのか誰か教えてくれ
619デフォルトの名無しさん:2006/06/12(月) 19:54:50
xinput(゚д゚)ウマー
620デフォルトの名無しさん:2006/06/13(火) 02:05:01
Vistaでは.NET Framework 3.0初期インストールだよな?
MDXサポートも期待してるぜ。
621デフォルトの名無しさん:2006/06/13(火) 02:11:35
XNAはどうなるんだろ
622デフォルトの名無しさん:2006/06/15(木) 20:04:07
xinputというのが何で何がいいのかさっぱり理解できない
XNAはもっとわけわかんね
ぐぐってもわけのわからん記事しか出てこない

ビスタは2.0相当だと思ってたが3.0なのな
MDXはぜひともひょうじゅんでおながいしまつ
623デフォルトの名無しさん:2006/06/16(金) 23:19:37
>>618
pow2 ってのは、
2,4,8,16,32,64,128,256,512,... というように2 を複数回掛け合わせた数のこと。

Direct3D 的には、テクスチャの幅などが pow2 にしかできないドライバと、
そうでないものの区別とかで使う。
624デフォルトの名無しさん:2006/06/19(月) 22:22:23
いまだに2乗数のテクスチャしかつかえないウンコVBなんてあるん?
625デフォルトの名無しさん:2006/06/30(金) 14:09:38
C#のネイティブコンパイルはまだですか?
626デフォルトの名無しさん:2006/06/30(金) 21:34:15
>>625
がんばれ
627デフォルトの名無しさん:2006/06/30(金) 23:18:18
XP VS2005
DirectX9.0c 2006 April

現在、簡単なモデリングツールを作ろうとしてるのですが
Xファイルに保存する際に複数有るメッシュを一つに纏める方法は有りませんでしょうか?

Mesh mesh_a = null;
Mesh mesh_b = null;
Mesh mesh_c = null; として

mesh_aとmesh_bにそれぞれ違うオブジェクト(例えば球体とトーラス)を入れて
それをmesh_cに統合させて、mesh_cをSave使って保存すると言った形です

もし、この方法ではできないと言うのであれば、参考になりそうな文献等を教えていただければ幸いです
よろしくお願いします
628デフォルトの名無しさん:2006/07/01(土) 04:26:07
VC#ExpressでもManagedDirectX使えるの?
ぐぐっても全然情報がないんだけど
どこかおすすめページありませんか?
629デフォルトの名無しさん:2006/07/01(土) 09:26:52
使えるに決まってるじゃん
サンプルをビルドしてみろよ
630デフォルトの名無しさん:2006/07/01(土) 14:21:22
>>625
そのうちネイティブコード吐けるようになると
噂されているが無理だろう 諦めたまえ。

>>627
できるだろふつうに
ポリを一つづつ抽出して
あたらなメッシュを作るだけ
一体なにがわからないのかわからない

>>628
それはあたりまえすぎて載ってないんだよ
何事もなかったかのように使えるから安心汁
631デフォルトの名無しさん:2006/07/01(土) 16:03:39
>630
その抽出と統合の仕方が分からない
抽出はMesh.Cloneを使えば良いのかな?
統合にしても、単純にA+Bって訳にも行かないし

ヘルプ読んでも良く分からない
632デフォルトの名無しさん:2006/07/01(土) 19:47:09
Mesh C = new Mesh(Aの面数+Bの面数, Aの頂点数+Bの頂点数, ・・・)

CのVertexBuffer, IndexBufferへ AとBのVertexBuffer, IndexBufferをコピー(IndexBufferの値は変えれ)
633デフォルトの名無しさん:2006/07/02(日) 23:45:50
統合するとか言ってるが
まさかブーリアンを実現したいんじゃないよね?
634デフォルトの名無しさん:2006/07/03(月) 00:23:54
ManagedDXも一緒にインスコするラインタイムって
どこにあるんかおしえてくらはい
635デフォルトの名無しさん:2006/07/04(火) 12:58:55
どうにかVertexbufferのコピーができるようになった

intで面と頂点の数を入れる変数作って、mesh.NumberVerticesとmesh.NumberFacesで数えて
それをもとにmesh_c作って、mesh_a、mesh_bと一緒にClone使って複製

複製したメッシュのVertexbufferをロックして、それをCustomVertex.PositionNormalColored[]の変数に代入

for(int i=0;i<mesh.NumberVertices;i++){
 source_c[i].Position = source_a[i].Position;
 source_c[i].Normal = source_a[i].Normal;
}
で頂点座標を取得したあと、アンロックして元のメッシュと入れ替えて終了
使用するメッシュごとにiの値は変わるから、割り振る変数入れておく

Vertexbufferの例は結構あるけど、indexbufferの例をあまり見ない
基本は同じなんだろうけど、いやはや難しい

>633
ブーリアンもいつかはできる様になりたいけど、今は複数のメッシュを1つのメッシュにまとめてXファイルに保存したい
636デフォルトの名無しさん:2006/07/10(月) 22:48:01
解像度高いとドット絵しんどいので、
解像度を640×480以下にしたいれす。

誰か、良いテク知らない?
637デフォルトの名無しさん:2006/07/10(月) 23:05:05
320×240とかでウィンドウ作ればいいじゃん
638デフォルトの名無しさん:2006/07/10(月) 23:10:12
>>637
それでもいいんんだけど、
その小さい画面を引き伸ばしたような感じで、
全画面表示したいのよ。

640×480の解像度で、
1024×768のディスプレイに全画面描画すると、
スプライトのエッジが滲んだような感じになりやす。

解像度下げるとスプライト滲んじゃうのかな。
ビデオカードにもよるのかな。
639デフォルトの名無しさん:2006/07/10(月) 23:44:35
>>638
引き伸ばした分の端数をどうしろって言うんだ?
魔法でも使えと?
アタマダイジョウブ?
640デフォルトの名無しさん:2006/07/11(火) 00:33:35
>>638
にじむ場合とにじまない場合があるなあ

うちの場合だと、CRTはにじまないけど、
ノートだとにじむ感じかな

なんなんだろうねこれ
641636:2006/07/11(火) 18:53:59
>>640
サーフェスはでっかいの作って、
それを拡大して転送し表示することで解決したです。

にじみも無かったとです。
642デフォルトの名無しさん:2006/07/12(水) 00:24:22
VGAのバックバッファで描画したのを
QVGAに縮小して表示するんじゃだめなのか?
643デフォルトの名無しさん:2006/07/12(水) 18:22:57
wavファイルが10個あったらsecondaryBufferは10個作るのかな
644デフォルトの名無しさん:2006/07/12(水) 18:30:39
>>642
それだと
QVGAに対応してないビデオボードじゃ動作しないんじゃない?
645デフォルトの名無しさん:2006/07/12(水) 21:51:07
なんかよくわからんが
2Dでマウスで操作しないゲームは
解像度臨機応変に換えられて楽だよな
646デフォルトの名無しさん:2006/07/12(水) 23:20:09
Save使ってXファイル保存しようとすると余計なデータ(MeshVertexColors)が保存されしまって、開いたら真っ黒になる
この部分を消しちゃえばちゃんと表示されるんだけど、このデータが保存されないようにするには
独自の関数作らないとダメなのかなぁ
647Tiny:2006/07/13(木) 20:00:21
Sample Browser(June 2006)のSimpleAnimationを使ってTinyにMesh(BOX)で地面を追加したいと思っています。

Mesh(testMesh)を宣言して、OnFrameRenderに以下を追加しました。
--
Material material = new Material();
material.DiffuseColor = new ColorValue(255, 255, 0, 128);
device.Material = material;
device.RenderState.CullMode = Cull.None;

this.testMesh.DrawSubset(0);
--
 
 しかし、実行してみるとTinyに線がかぶさったように表示されてしまいます。
ためしに、Tinyの描写(DrawFrame)をコメントアウトするとMeshは正しく表示されます。
 なんとなくTinyの描写に原因があるんだろうとは思いますが、どのようにすれば、
Tinyと一緒にMeshも正しく描写されるのでしょうか?よろしくお願いします。


648デフォルトの名無しさん:2006/07/13(木) 23:47:49
ビュー行列を、カメラ行列を視点や注視点を使わずに、xyz軸周りの回転角とカメラの座標を使って出さなきゃならんのですが、
どういった変換をかければよろしいでしょうか。

もしくは、そのあたりについて解説してあるとこありますか?

既知のパラメータは

世界座標系に対する、各軸周りのカメラの回転角
世界座標系に対する、カメラの座標
焦点距離
視野角
アスペクト比

でございます。
どうか知恵を貸してください。
よろしくお願いしますm(_ _)m
649デフォルトの名無しさん:2006/07/14(金) 00:31:33
カメラ座標==視点じゃないの?
あとは既知のパラメータから注視点を求めれば、普通に
射影行列を求められると思うけど。
650デフォルトの名無しさん:2006/07/14(金) 03:04:05
>>649
ありがとうございます。
その方向でできそうです。

と思った矢先に
エラー1項目 "obj\Release\VoxelViewer.viewerForm.resources" は "Resources" パラメータで 1 度以上指定されました。重複した項目は "Resources" パラメータではサポートされていません。VoxelViewer
というエラーでコンパイル不能になりました。
もう元に戻せません。
泣いてます。
651648:2006/07/14(金) 11:19:00
自己レス

あれこれやってるうちに解決しますた。
フォームの記述ををpartialで分割しているところが原因でした。
なぜか両方ともフォーム(?)になっていて、片方をただのクラスファイルにしたらうまくいきました。
652648:2006/07/14(金) 11:20:56
間違えた。
正しくは分割したフォームを両方ともデザイナで変更したのが直接の原因だったみたいです。
653デフォルトの名無しさん:2006/07/14(金) 20:35:23
>>648
カメラは
Direct3Dのチュートリアルの2番目あたりから使ってるよ

あとチュートリアルだけだとわかんない人けっこういるけど

カメラもメッシュと同じようにトランスフォームすれば
水平移動とか回転とか余裕でできる

漏れはこれを知らないで手動で計算してた
ホントバカらしい
654デフォルトの名無しさん:2006/07/20(木) 03:21:03
MDXのストリーミングオーディオのサンプルならここにあるで
https://www.microsoft.com/japan/msdn/columns/code4fun/code4fun02032004.asp
655デフォルトの名無しさん:2006/07/20(木) 07:45:19
すいません。DirectXをはじめようと思っております。
インストールしてC#Expressでテンプレートを開こうとしたのですが
新規プロジェクトをクリックしても項目がないのです。
どうしたらよいのでしょうか?
656デフォルトの名無しさん:2006/07/20(木) 07:56:13
655です。追記します。
インストールしたのが
DirectX 9.0c End-User Runtime
ってやつなのですがこれが違うのでしょうか?
657デフォルトの名無しさん:2006/07/20(木) 09:42:27
SDKを落とせよ・・・
658デフォルトの名無しさん:2006/07/20(木) 10:24:06
>>657
あれからいろいろ調べて2006 Juneをインストールしましたが
「新しいプロジェクト」からテンプレの画面になっても
DirectXの項目は出てきません。
それに、日本語のやつですか?あれをインストールとかしたほうがいいのでしょうか?
英語だと何かとちんぷんかんぷんでございます。
また、その日本語のやつでもいろいろありますし、なにやら
インストールする順番とかがあるような感があるのですが(勘違いかもしれませんが)
Expressじゃ無理なのかもしれないです。
659デフォルトの名無しさん:2006/07/20(木) 11:00:24
AppWizardのDirectXってなくなったんじゃなかったっけ
660デフォルトの名無しさん:2006/07/20(木) 12:02:02
>>658
とりあえず、SDKに付属のサンプルをベースに使ってみたら?
(省略)\Microsoft DirectX SDK (June 2006)\Samples\Managed\Direct3D\Tutorials\Tutorial1
とか。
661デフォルトの名無しさん:2006/07/21(金) 02:26:34
Microsoft.DirectXや
Microsoft.DirectX.3Dなどはどのようにバージョンアップしたら
よいのでしょうか?
662デフォルトの名無しさん:2006/07/21(金) 20:27:44
とりあえず DirectX End User Runtimes (June 2006) を入れればいいんでないかな?
http://www.microsoft.com/downloads/details.aspx?FamilyId=1C190175-7B26-4916-8E5F-6F88A5BC09C5&displaylang=en

MDXライブラリが含まれてるし、
それまでの全てのバージョンがインストールされるはず。
再頒布可能だから作ったソフトに添付することもできるよ。
663デフォルトの名無しさん:2006/07/22(土) 00:09:16
ええと、いろいろな問題がありまして
MSDNの掲示板などでも聞きまくりまして何とか解決しました。
どうも、ありがとうございました。

それにしてもC#でDirectXやるのに本も少ないし、ホームページも
少なくてとても苦労しますね。

また、何かありましたらよろしくお願いいたします。
664デフォルトの名無しさん:2006/07/22(土) 04:25:45
いや、悪いけど二度と来ないでくれ。
665デフォルトの名無しさん:2006/07/22(土) 14:15:50
>>662
そのMDX入りって英語版しかないの?
666デフォルトの名無しさん:2006/07/22(土) 23:34:43 BE:268947836-
日本語ドキュメントは古いのしかないですね。

で質問です。今ピッキングの仕方を調べていたんですが、
Intersectメソッドから深度情報を取得するにはどうしたらいいんでしょうか?

http://www.microsoft.com/japan/msdn/directx/japan/dx9/winform3.aspx
ここに書いていたんですがどこにあるか分かりませんでした。
よろしくお願いします。
667デフォルトの名無しさん:2006/07/22(土) 23:36:08
>>653
DirectXのチュートリアル見てたら便利な関数が多くていい感じですね。

今は描画処理が重くてなんとかしようと四苦八苦してます。
まぁ、立方体10万個*8点=80万個の頂点数があるのがも原因なんですけどね。
668デフォルトの名無しさん:2006/07/23(日) 00:26:27
見た目を変えずに動作を軽くする(描画数減らすとか)のはセンスの試されるところですね
669デフォルトの名無しさん:2006/07/26(水) 06:34:53
みなさん、何かと苦労が絶えないと思いますが
お勧めの本やホームページなんてありますか?
C++ばっかりでC#は本当に資料が少なくて困ってます。
670デフォルトの名無しさん:2006/07/26(水) 07:15:27
>>669
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=577498&SiteID=7
マルチ?それとも、夏だから多発的に湧いた?
671デフォルトの名無しさん:2006/07/26(水) 08:23:14
672デフォルトの名無しさん:2006/07/26(水) 08:54:23
ググれば情報結構あるよ。
数年前はググっても情報なかったから、今はだいぶまし。
673デフォルトの名無しさん:2006/07/27(木) 23:39:45
DSoundでwavなどの再生はわかるんですけど
DAudioVideoPlayBackでmp3やoggの再生の仕方がわかりません
やり方を教えてください
674デフォルトの名無しさん:2006/07/31(月) 19:22:15
追加スワップチェーン(マルチウィンドウ)について質問です。

通常の描画は描画部分を別スレッドに分けても正常に描画してくれますが
追加のスワップチェーンは関連付けたウィンドウが走っているスレッドでないと
Present自体が失敗してしまいますがこういう仕様なんでしょうか?
普通に描画する際のマルチスレッド化に関する注意はドキュメントに
書かれていますが、スワップチェーンに関する記述はネット上でもほとんど
見当たりません…

さらに、別スレッドで描画を行っているデバイスにスワップチェーンを追加して、
追加側は上記問題を解決するために同期を取ってウィンドウと同じスレッドで
Presentするようにすると、今度はDisposeするときに処理が帰ってこなくなることが
あります。Disposeする時も同期を取るようにしても、Dispose自体の処理が
帰ってこない始末です(こちらで行っている同期は成功しています)。
すぐに処理が帰ってきて正常に終了できるときもあるのでタチが悪いです…

わかりにくい質問かもしれませんがよろしくお願いします。
675デフォルトの名無しさん:2006/07/31(月) 19:56:27
初歩的な質問ですいません。
DirectXのバージョンを確認するにはどうしたらいいでしょうか?
676デフォルトの名無しさん:2006/07/31(月) 21:15:48
>>675
dxdiag
677デフォルトの名無しさん:2006/07/31(月) 23:51:50
>>676
いや多分そうじゃなくて、プログラム内での話じゃないのか?
ちなみに漏れは知らん。
678674:2006/08/01(火) 04:31:09
後者に関してはDeviceのDisposingイベントに関連するスワップチェーンを
Disposeするメソッドを実行してもらうようにしたら問題なくなりました。

前者はそういうもんだと割り切って同期を取りながら描画するようにしました。

以上。
679デフォルトの名無しさん:2006/08/01(火) 20:42:10
DirectX でmp3などのID3っていうのか情報タグ見れますか
680デフォルトの名無しさん:2006/08/02(水) 00:26:14
>>679
DirectXで見る必要はない
メディア情報は参照できたかもしれないけど
自前でID3タグを読むほうが楽

ID3V2
ttp://www.id3.org/
ttp://www1.cds.ne.jp/~takaaki/ID3/

ID3V1
ttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLJ_jaJP175JP175&q=ID3
681デフォルトの名無しさん:2006/08/02(水) 00:43:40
いや 楽ではないだろw
ミスも入りやすいし自前で書くくらいなら外部ライブラリを使った方がいいと思われ
使ったことないからわからんけどvcmp3.dllというので読めるんじゃ?
682デフォルトの名無しさん:2006/08/02(水) 01:09:27
>>681
ふむ、まあミスの可能性は否めないな・・・
曲名とか特定の項目を「読む」だけならホント楽だけど

V1ならファイルの最後の128バイトを読むだけ
http://www.cdwavmp3.com/mp3/player/id3tag.html

V2ならファイル最初に”ID3”が入ってる事を確認して、
11バイト目(拡張ヘッダがある場合飛ばして)のフレーム部から
http://www1.cds.ne.jp/~takaaki/ID3/id3v2_4_0-frames_j.txt
4. 定義済みの ID3v2 フレーム
の該当する項目を探して読む

ただこれだけだけだが、ID3V2ならたまにフレームが壊れていたり
変なのが入り込んでいたり・・・云々がある
初心者はライブラリ使うのが無難か

http://sourceforge.jp/projects/id3libdotnet/
みたいなのが出てきたけど、使った事ないからワカンネ

ってここDirectXスレだったorz
683674:2006/08/02(水) 03:20:51
解決したかに見えたが発生頻度が下がっただけだった…
スワップチェーン使う場合は別スレッドで描画しちゃいかんのかああああ

別スレッドで描画するのを今からやめるのはコストが高すぎるから
スワップチェーン使わない方法を編み出すしかないのか…

ううむ…チラ裏すまそ
684デフォルトの名無しさん:2006/08/02(水) 04:10:47
>>683
処理だけは別スレッドで、描画を全てForm.PInvokeでメインに丸投げ
・・・とか思ったけどムリか・・・
685デフォルトの名無しさん:2006/08/02(水) 19:59:19
DirectShowが使えないのがわかってショックでつ
686デフォルトの名無しさん:2006/08/02(水) 20:01:19
DirectShow.netというのがどっかにある。
687デフォルトの名無しさん:2006/08/06(日) 18:17:51
つかってみたけど
画像を連続キャプチャすると逝ってしまうのでつかいものになりませんでした
688デフォルトの名無しさん:2006/08/07(月) 02:12:03
kbstate = keyboarddevice.GetCurrentKeyboardState();
if ( !kastate[key.A] && kbstate[key.A])
  (処理)
kastate = kbstate;


このようなプログラムを書くと一度も(処理)ができないんですけどなぜですかね?
kbのAだけとか、kaのAでないときだけなら動くんですけど
689デフォルトの名無しさん:2006/08/07(月) 03:09:25
Directplayの本なり、ホームページなり
いいのがあったら教えてくれると大変ありがたいです。
どなたかご存じない?
690デフォルトの名無しさん:2006/08/07(月) 19:59:21
>>688
条件を日本語に訳して考えてみようよ
「kbstate[key.A]がFalseで、かつkbstate[key.A]がTrueのとき」
691690:2006/08/07(月) 20:00:38
ごめん見間違えた
692デフォルトの名無しさん:2006/08/07(月) 20:08:23
>>690
もっと簡単になるまで訳さないと理解できんだろ

kastate という配列の key.A番目 が 超OK で かつ
kastate という配列の key.A番目 が 超NG なとき…

あれ?
693690:2006/08/07(月) 20:21:07
kastateをkbstateと見間違えてたけど同じことだね
kastateとkbstateは同じオブジェクトを参照してる
694688:2006/08/08(火) 00:26:14
>>690-693

同じオブジェクトを参照しているということは処理ができなくて当たり前ですか?

DirectInput で KeyDown のような最初に押されたときだけ処理をするというコードが
書きたいんですけど、いい方法ありますか?
695デフォルトの名無しさん:2006/08/08(火) 00:48:49
>>694
そういうことか。やっと kastate と kbstate の意味が分かった。


GetCurrentKeyboardState って、アクセスのたびに別のインスタンス返してくるん?
同じインスタンス返してくるような雰囲気もあるんだけど、それなら自分でメモしておく必要があると思うよ。
696デフォルトの名無しさん:2006/08/08(火) 07:47:21
697デフォルトの名無しさん:2006/08/09(水) 23:31:15
DirectInputを覚えた奴乙
MDX2.0でXInputに統合だってさ
698デフォルトの名無しさん:2006/08/09(水) 23:36:06
XNA Frameworkでちゃぶ台替えしを食らう予感
D3DX廃止らしいし
699デフォルトの名無しさん:2006/08/09(水) 23:53:11
さて。Microsoft.DirectX.DirectSoundのDevice.Device()が、LoaderLockを起こしてしまう。
解決法を検索して見たところ、VS2005ではDirectX2.0を使えという。
だが、MDX2.0にはSecondaryBufferが無い。
代わりにEffectsBufferとやらがあるらしい。
しかしEffectsBufferにはWriteメソッドが無い。
ではMDX1.1と同時に読み込んで使おうか・・・とすると当然ながら1.1と2.0が競合してしまい、同時には使えない。

SecondaryBufferr.Writeを使いたいのだが、
現状こういった事情で使えない。
打破する方法はあるか?
700デフォルトの名無しさん:2006/08/10(木) 01:11:42
で、XNAっていつでるんだ

あと出たとしても日本語マニアルなさそでアレです
701デフォルトの名無しさん:2006/08/10(木) 15:46:56
川西のとっつぁんならやってくれるさ……。
702デフォルトの名無しさん:2006/08/10(木) 16:20:21
>>700

ここで発表されると思われるので、来週中には何かアナウンスが
あるかとwktk

ttps://www.microsoftgamefest.com/conferencedetails.htm#Developer%20tools
703デフォルトの名無しさん:2006/08/16(水) 18:00:35
ttp://higeneko.com/diary.php
というわけで?
704デフォルトの名無しさん:2006/08/16(水) 19:34:31
登録した
705デフォルトの名無しさん:2006/08/16(水) 21:13:07
49ドルで4カ月でもいいんだ
706デフォルトの名無しさん:2006/08/20(日) 22:02:42
XNAまだ〜?
707デフォルトの名無しさん:2006/08/20(日) 23:30:39
>>706
4ヶ月待て。
708デフォルトの名無しさん:2006/08/21(月) 00:00:55
>>706
こっちもよろしく

Xboxのゲームを作ってみないか?
http://pc8.2ch.net/test/read.cgi/gamedev/1155571518/
OpenXDKでXboxプログラミング!
http://pc8.2ch.net/test/read.cgi/gamedev/1095786764/
709デフォルトの名無しさん:2006/08/21(月) 21:12:24
http://msdn.microsoft.com/directx/xna/gamestudio/
>A beta of XNA Game Studio Express will be released on August 30, 2006.
>To receive a notification when the Beta is available,
>please go to http://connect.microsoft.com and select "Available Connections."
>Then choose the XNA connection and follow the link
>to sign up for the XNA Game Studio Express Beta.
710デフォルトの名無しさん:2006/08/21(月) 22:10:55
訳:
ベータに参加したい奴はサインインしてから一番したのリンクから申し込め
https://connect.microsoft.com/availableconnections.aspx
711デフォルトの名無しさん:2006/08/21(月) 22:12:15
ちなみに8月30日にダウンロード開始な
たぶんシアトルの時間で
712デフォルトの名無しさん:2006/08/21(月) 22:33:40
登録してきた
713デフォルトの名無しさん:2006/08/26(土) 01:47:20
visual C# 2005のヘルプの見方がわかんねぇ
なんか検索してもかかんないしなんなんだこれ?
714デフォルトの名無しさん:2006/08/27(日) 22:34:52
('A`)え・・?
715デフォルトの名無しさん:2006/08/30(水) 17:36:20
XNAまでもうすぐ
716デフォルトの名無しさん:2006/08/30(水) 20:13:42
XNAは配布先も会員じゃないとダメらしいので
イラナス
717デフォルトの名無しさん:2006/08/30(水) 22:10:55
さすがにWindows向きの配布には相手が会員じゃなくてもいいだろ
718デフォルトの名無しさん:2006/08/30(水) 23:10:05
Liveを通じて配布が年間99ドル(もっと安いプランもある)
Liveを通じて販売が1000ドルぐらい(予定)
719デフォルトの名無しさん:2006/08/30(水) 23:18:09
まだかな
720デフォルトの名無しさん:2006/08/30(水) 23:29:31
http://msdn.microsoft.com/directx/xna/faq/

Q: How much will XNA Game Studio Express/XNA Framework cost?
A: The XNA Game Studio Express tools and runtime environment for
Windows is completely free. To develop, debug and/or play games on
the Xbox 360 you will be required to purchase a XNA “Creator’s Club”
subscription on the Xbox 360 through Xbox Live Marketplace. The subscription
is available in 2 options, $99 a year or $49 for 4 months.

Xbox向けの場合は有料。Windows向けは完全無料(自由?)。
Windows向きなら商用もOKみたいだから、結構制限緩いね。
721デフォルトの名無しさん:2006/08/30(水) 23:49:19
日本時間だと31日って書いてあったよね、何処かに
722デフォルトの名無しさん:2006/08/31(木) 00:56:50
もともとC#もDirectXも無料だしな
723デフォルトの名無しさん:2006/08/31(木) 10:51:05
キタ━ヽ(ヽ(゚ヽ(゚∀ヽ(゚∀゚ヽ(゚∀゚)ノ゚∀゚)ノ∀゚)ノ゚)ノ)ノ━!!!!
724デフォルトの名無しさん:2006/08/31(木) 11:00:18
Managed DirectXとそんなに変わらないな
結構低レベルな感じ
725デフォルトの名無しさん:2006/08/31(木) 11:51:05
複数のLPD3DXMESH型のメッシュを一つにするのはCloneMesh()で可能でしょうか?
726デフォルトの名無しさん:2006/08/31(木) 13:46:31
727デフォルトの名無しさん:2006/08/31(木) 14:53:22
Microsoft XNA Game Studio Express
http://msdn.microsoft.com/directx/XNA/default.aspx
http://download.microsoft.com/download/f/0/f/f0fd5f92-b2f1-4b4d-8a68-573e4d285e5e/XGSESetup-Beta1.msi

ゲハ板のXNAまとめWiki
http://www16.atwiki.jp/xna360
ニュース速報XNA
http://xna4vip.blogspot.com/

Xboxのゲームを作ってみないか?
http://pc8.2ch.net/test/read.cgi/gamedev/1155571518/
【ワンダー】XBOX360開発キット一般販売【ウィッチ】
http://game10.2ch.net/test/read.cgi/ghard/1155577808/
【ゲーム】米Microsoft、「Xbox 360」のゲーム開発ツール「XNA Game Studio Express」を無料に [06/08/15]
http://news18.2ch.net/test/read.cgi/bizplus/1155652520/
728デフォルトの名無しさん:2006/08/31(木) 18:40:34
LPD3DXMESH m_pMesh1;
LPD3DXMESH m_pMesh2;
LPD3DXMESH m_pMesh3;
と定義した場合に
m_pMesh1 と m_pMesh2 を結合し
m_pMesh3に設定するにはどうすればいいのでしょうか?
729デフォルトの名無しさん:2006/09/06(水) 21:31:54
AudioVideoPlaybackで2つインスタンス作って、
別の動画を同時に再生しています。

ループ再生させたいのでendingイベントを使っていますが、
何故だか、後で追加したほうのイベントしか発生しません。
インスタンスごとに違うイベントを割り当てています。

インスタンスひとつだとループ再生は上手くいきますが、
2つだと下手すると固まります。

AudioVideoPlaybackは同時再生に向いていないのでしょうか。
730デフォルトの名無しさん:2006/09/13(水) 16:52:04
メッシュのグループを1つのメッシュに連結するメソッドとして
PrtEngine.ConcatenateMeshesというのを見つけたのですが、使い方が今ひとつ分かりません
どう使えばよいか、または詳しく説明してある所を教えてもらえませんでしょうか?
731デフォルトの名無しさん:2006/09/13(水) 16:59:07
普通にメッシュのバーテックスバッファ操作してくっつければいいだけじゃん
732デフォルトの名無しさん:2006/09/14(木) 18:40:02
>731
これって、バーテックスバッファだけなんでしょうか?
だとしたらこれは必要ないです、インデックスバッファの連結がしたいので
733デフォルトの名無しさん:2006/09/29(金) 19:19:05
Meshで作ったオブジェクトの位置をワールド座標単位で取得するにはどうしたらいいのですか?
734デフォルトの名無しさん:2006/09/30(土) 11:42:21
メッシュのいるフレームのワールド行列を出してそれを掛けるだけ。
735デフォルトの名無しさん:2006/09/30(土) 17:28:17
初期Directx9のサンプルで例えば、「ClipMirror」を最新のSDKでコンパイルしようとするとエラーが
でます。
例えば、
device.Lights[0].Commit();  が未定義とか

それで、最新の「「ClipMirror」」のサンプルとかってどこかに存在してるのでしょうか?
それか、自分で変数変えていかないといけないのでしょうか?
736デフォルトの名無しさん:2006/10/05(木) 18:01:24
Mesh.Box(this._device, 2.0f, 1.0f, 0.5f);
で作成したメッシュにテクスチャを貼り付けるにはどうしたらいいのですか?
737デフォルトの名無しさん:2006/10/06(金) 21:56:51
MDX2.0脂肪
738デフォルトの名無しさん:2006/10/07(土) 19:19:54
むしろXNAとして再誕
739デフォルトの名無しさん:2006/10/19(木) 14:42:29
返信は来るだろうか・・・

スプライト描画を試してみたんだけど、デフォで描画すると拡大してます。
Sprite.Drawだと拡大率の指定できないからやっぱり
Sprite.Draw2D使うのが無難なんですかね?

合わせて質問、キャラの切り抜きというか透過処理ってどうすればいいんでしょう?
tgaがどうのこうのなんてのをそれとなく聞いたのですが。
740デフォルトの名無しさん:2006/10/19(木) 22:05:21
透過は普通にアルファを使えばできたはずだけど
741デフォルトの名無しさん:2006/10/19(木) 22:10:55
期待しているのは MakeTransparent じゃないかね
742デフォルトの名無しさん:2006/10/20(金) 00:34:32
質問です。

風の噂でDirectX C# のサポートが終わると聞きました。
(うろ覚えで、そのサイトすら忘れたのですが)
その情報って本当でしょうか?
MFCの時みたいになっちゃうんでしょうか?
743デフォルトの名無しさん:2006/10/20(金) 00:53:22
744デフォルトの名無しさん:2006/10/20(金) 12:55:52
やっとこさ3Dできるようになって、モデリングの勉強して、ゲーム用のモデルこさえて
さあ始めるぞ!と戻ってきたら、MDX死亡かよ…。

OSが2kだし、どうすんかな
745742:2006/10/20(金) 13:18:03
>>743
やっぱりですか。。。orz
アメリカには継続は力なりって言葉無いんですかねぇ。
DirectX C# は結構使いやすくて良かったのですが、残念です。
746デフォルトの名無しさん:2006/10/20(金) 14:17:24
XNAでは駄目なの?
MDX1.1では駄目なの?
自分でDirectXのマネージドラッパーを作・・・それはヤだな。
747デフォルトの名無しさん:2006/10/20(金) 14:39:17
XNAはパッドが360コンしか使えないって聞いたけど
どうなんじゃろ。
パッドオンリーの作りたいから、ちょっと敬遠してるんだが

MDX1.1は今後、DirectX10ランタイムの動作対象外にされたりしない?
748デフォルトの名無しさん:2006/10/20(金) 15:09:42
今でも対象外みたいなもんだ
749デフォルトの名無しさん:2006/10/20(金) 15:11:16
たしかにXNAのゲームパッドAPIは360パッドしか使えないよ。
XNAとMDX1.1のDirectInputを組み合わせるのはもちろん可能。

>MDX1.1は今後、DirectX10ランタイムの動作対象外にされたりしない?
VistaでDirectX9が動くかどうかに依存するんじゃない?俺は知らんけど。
750デフォルトの名無しさん:2006/10/20(金) 18:18:41
さすがに正式版では他のパッドも使えるだろ
どうせ360でも動くっていっても結局
#if XBOX
#else
みたいな書き方することになるんだから別にDirectInputとか使ってもいいと思う
751デフォルトの名無しさん:2006/10/20(金) 18:19:18
私待つわ、いつまでも待つわ
752742:2006/10/20(金) 18:55:42
調べてみました。
ttp://download.microsoft.com/download/c/f/4/cf401b2d-31ee-426f-9af8-3e17888ba099/XNAOverview.wmv

慣れるまで大変そう。。。
753デフォルトの名無しさん:2006/10/21(土) 12:39:16
>>742
どうしたらそういう噂になるのか不思議だ。
754デフォルトの名無しさん:2006/10/22(日) 16:07:24
namespace に Direct3D 置いてんのに TextureLoader が呼び出せないのはなぜ?
755デフォルトの名無しさん:2006/10/22(日) 23:10:01
チャットゲー作りたいんだけど、文字入力てどうやってやるの?
今は、ゲームの上にWindowsForm貼り付けて誤魔化してるんだけど
すげーかっこ悪いよ(´・ω・`)
756デフォルトの名無しさん:2006/10/23(月) 00:13:54
Formの見た目をカッコ良くすればそれでもいいんじゃなかろうか
757デフォルトの名無しさん:2006/10/23(月) 19:57:22
枠を非表示にしてFormやテキストボックスのOnPaintをかっこよくオーバーライド
758デフォルトの名無しさん:2006/10/29(日) 11:48:16
たびたびスレ違いですみません。
MDX+C#でゲームを作って、ソース付で公開してみました。
ハードとソフトを定義して1対1で戦うゲームです。
http://www.purple.dti.ne.jp/sslt/ccc2/ccc2.html
759デフォルトの名無しさん:2006/10/30(月) 00:34:59
> フォルダ名に日本語(2バイト文字)を含めないでください。
> (Managed DirectXの仕様です。)
工エエェェ(´д`)ェェエエ工
そんな仕様あったっけ?
760759:2006/10/30(月) 00:37:54
いや俺が知らない制限があるのかも知れんが・・・。

ちなみにゲーム内容はなにやら難しそうなので
後でやらせていただくよー。
761758:2006/10/30(月) 01:46:21
DirectX Sample BrowserからEmptyProjectを
J:\testDX\新しいフォルダ\EmptyProject にインストールすると、
Failed creating the Direct3d device.と表示されて起動しません。
MDXではなくて、UtilityToolkit内のバグではないかとも思いますが。
762758:2006/11/02(木) 01:34:54
>759
Effect.FromFile()で引数のfilenameに日本語が含まれているとエラーになるようでしたので、
直しておきました。


763デフォルトの名無しさん:2006/11/02(木) 23:11:18
>>758
ゲーム画面上に独自UIを構築してるのがビックリなんだが・・・。
デバイス切替とかモード切替とか全部できるし。
元のサンプルあるの?それとも自前?
764デフォルトの名無しさん:2006/11/02(木) 23:45:10
最近のSDKに付いてくるサンプルフレームワークの
GUIパーツやね。
765デフォルトの名無しさん:2006/11/03(金) 01:01:55
ほう、そうなんか。それはいいことを知った。
766デフォルトの名無しさん:2006/12/05(火) 20:34:42
SetTextureStageStateの引数で、un manageのD3DTEXF_POINTとかD3DTEXF_LINEARに
対応するのってどれだろ?
デフォルトではPOINTになってるんだろうけど、拡大するとガビガビになるから
LINEARにしたいんだけど、探しても見当たらん・・・。
767デフォルトの名無しさん:2006/12/05(火) 22:26:39
つMicrosoft.DirectX.Direct3D.TextureFilter.Linear
768デフォルトの名無しさん:2006/12/05(火) 22:48:10
ウホッ、いい男

マジありがd
769デフォルトの名無しさん:2006/12/09(土) 20:19:44
今からゲームを作成する場合、MDX と XNA のどっちを使うべきなんでしょうか
770デフォルトの名無しさん:2006/12/09(土) 20:30:38
MDXでOK。XNAはXBOXのゲームパッドしかできんから。
771デフォルトの名無しさん:2006/12/09(土) 20:36:56
了解。とりあえずがんばってみます。

ところで、マウスの絶対座標は DirectInput からは直接取得できませんよね?
STGでマウスを使おうと思っているんですけど、DirectInput 使わなくても問題は……あまり無いですよね?
772デフォルトの名無しさん:2006/12/09(土) 21:09:46
>>769
今からならどう考えてもXNAだろ?















と誰もが言う未来を想像していたのは俺だけではないはず
773デフォルトの名無しさん:2006/12/09(土) 21:15:03
>722
おもにXNAチームの中の人が思ってただろうね
774デフォルトの名無しさん:2006/12/11(月) 02:28:01
ウィンドウ上でのマウス変更ってどこでやれば良いのでしょうか?
ウィンドウにマウスが乗った瞬間を検出したいです。
なんかスレ違いの悪寒もしますが、分かる方よろしくお願いします。
775デフォルトの名無しさん:2006/12/11(月) 04:03:51
SET_CURSORだっけ?
776デフォルトの名無しさん:2006/12/11(月) 20:14:39
マウスムーブイベントで桶だろ
777デフォルトの名無しさん:2006/12/11(月) 21:57:41
×マウス
○マウスポインタ

>ウィンドウにマウスが乗った瞬間
画面にマウスを押し当てるおばさんを思い出した
778デフォルトの名無しさん:2006/12/12(火) 02:02:46
779デフォルトの名無しさん:2006/12/13(水) 22:45:05
いままでC++でUnmanagedDirectXを使っていたんですが
もしC#でDirectXを叩く場合必ずMDXかXNAを使うんですか?
780デフォルトの名無しさん:2006/12/14(木) 17:41:56
必ずというわけじゃないが
直接叩くならC#を使う意味ってなんだろう?
781デフォルトの名無しさん:2006/12/17(日) 14:46:59
>>779
.NET開発者のためのDirectX連携手法 − @IT
ttp://www.atmarkit.co.jp/fdotnet/directxworld/directxworld03/directxworld03_01.html

MDXはManaged C++と心中(無かったこと)になったんだよ
MSもタイヘンだから出来ればXNA(C++/CLI)だけにしたいんだ
他にも.NETからDirectX使うにはWPF使うとか、C++/CLIで自分でライブラリ作るって手があるらしい

個人的にはC#だけで生きていけるようにC++/CLIみたいなこと(手っ取り早くネイティブ生成?)が
出来るようにして欲しいけど、MSはやる気なさそうだしねorz
782デフォルトの名無しさん:2006/12/17(日) 15:07:14
>>781
>個人的にはC#だけで生きていけるようにC++/CLIみたいなこと(手っ取り早くネイティブ生成?)が
>出来るようにして欲しいけど、MSはやる気なさそうだしねorz

Thunk部分は動的生成という手もある。
そうすればC#だけで全部書ける。
ttp://d.hatena.ne.jp/NyaRuRu/20061130/p1
783デフォルトの名無しさん:2006/12/17(日) 15:14:49
>>781
.NET&Windows Vistaへ広がるDirectXの世界 − @IT
http://www.atmarkit.co.jp/fdotnet/directxworld/index/index.html

この記事面白いな。勉強になった。サンクス
784デフォルトの名無しさん:2006/12/20(水) 22:46:55
いずれはVisual C#からXNA Framework使えるようになるのかな
785デフォルトの名無しさん:2006/12/21(木) 23:55:49
なんか詳細がわかればわかるほど
XNAって期待してたのとかけ離れたものだと分かって鬱になる
おれだけなのか?
786デフォルトの名無しさん:2006/12/22(金) 00:05:14
XPSP2専用って時点でやる気なさそう
787デフォルトの名無しさん:2006/12/22(金) 01:01:29
XNAは当たり判定作るのが楽な以外は
今のとこあまりいいことなさげ。

初心者でもすぐにゲームが作れるってのが
コンセプトらしいけど、3D関連が殆ど
シェーダに丸投げされてるから
初心者はついていけないよ・・・。
788デフォルトの名無しさん:2006/12/22(金) 08:34:34
つBasicEffect
789デフォルトの名無しさん:2006/12/22(金) 10:12:05
>786
今更枯れたOSに対応しなくてもいいよ…
業務アプリとかじゃないんだし
790デフォルトの名無しさん:2006/12/22(金) 20:24:28
>>789
Vistaで動かないんだよ
791デフォルトの名無しさん:2006/12/22(金) 23:35:09
>>787
初心者がついていけないというより、初心者のPCがついていけないw
792デフォルトの名無しさん:2006/12/23(土) 07:27:02
初心者=PC暦浅い=新しいPC使ってる
793デフォルトの名無しさん:2006/12/23(土) 16:27:03
5種類の仕事と5人の人がいて、5種類の仕事を行うコストが個人で異なる。
この様な場合、誰にどの仕事を行わせることがもっとも低コストで仕事が
行えるか求めるフローチャートを作成しなさい、計算方法は、全ての組み合わせ(順列)を求める。その中から最も低コストとなる仕事の割り当てを得る(腕ずく法;Brute Force Method)。なお、最低コストが複数ある場合は、最後に判明した組み合わせのみを表示すればよい。
人1人2人3人4人5
仕事A10、5、7、12、8
仕事B14、20、15、10、15
仕事C18、30、20、25、22
仕事D35、8、18、20、12
仕事E20、13、8、10、17
できる人いませんか?
794デフォルトの名無しさん:2006/12/23(土) 16:42:52
>>793
宿題は、宿題すれへ
795デフォルトの名無しさん:2006/12/25(月) 03:09:02
いま、マウスでもってワールド座標上の一点を指すということをやろうとしています
どうやらIntersectという関数を使って、マウスの示すレイとメッシュの交点を求めれば
よいということまではわかったのですが、
その結果を入れるIntersectInformationという構造体の、交差する三角形の重心座標を示すプロパティが
UとVの2つしかありません。重心を特定するためには後一つプロパティが必要なのではないでしょうか?
それとも、2つわかれば残りは自明なものなのでしょうか?
気になったのでお教えいただければ幸いです
796デフォルトの名無しさん:2006/12/25(月) 09:08:38
797デフォルトの名無しさん:2006/12/25(月) 12:33:47
>>796
ありがとうございます
そこも読んでみましたが、メッシュとレイが交差するかどうかを調べる方法は載っているのですが
メッシュの中のレイが交差した場所を知る方法がわかりませんでした
Mesh.Intersect関数の結果を受け取るIntersectInformation構造体には交差した三角形の重心座標が
格納されているのはずなのですが、その値がUとVの二次元なのでおかしいなと思っていたのです
798デフォルトの名無しさん:2006/12/25(月) 17:07:42
ヘルプドキュメントに載ってなかったっけ
確かv0 + U * (v1 - v0) + V * (v2 - v0)とかなんとか
799デフォルトの名無しさん:2006/12/26(火) 01:16:37
>>798
ありがとうございます
調べてみます
800デフォルトの名無しさん:2007/01/03(水) 02:22:13
Texture.FromBitmap()で生成したものをSprite.Draw2D()で描画(回転とか拡大縮小は一切無し)すると
ビットマップ画像がそっくりそのまま表示される環境と、アンチエイリアスっぽく滲んで表示される環境があるんだけど
どの環境でもアンチエイリアス無しでそのまま表示されるようにするにはどうすれば良い?
801デフォルトの名無しさん:2007/01/04(木) 14:04:19
STGを作るためにはどこのサイトや本を参考
にするのがおすすめですか?
802デフォルトの名無しさん:2007/01/05(金) 12:45:47
>>800
スクリーンのサイズ、微妙に変化してたりしてない?
俺の環境だと、おそらく XP のテーマか何かの影響でウィンドウ表示のときにテクスチャが歪むことがあるんです orz

フルスクリーンでも滲んで表示されるのなら、たぶん違う原因だと思うが。
803デフォルトの名無しさん:2007/01/06(土) 20:04:24
SharpDevelopを使って開発しているのですが、通常のウィンドウズアプリケーションだと
最初に生成されるコードでメッセージループの機能を提供するものとして
System.Windows.Forms.Application.Runメソッドが使用されています。
一方でDirect3Dアプリケーションではそれが見られず、代わり(なのかな?)にSystem.Windows.Forms.DoEventsメソッドが
記述されています。
いろいろ調べてみたところ、ゲームなどはメッセージ以外の要件(時間など)で状態が変わるアプリケーションであるため
Runを使わずに別のループを用意し、その中でDoEventsを呼んでメッセージを処理していると自分なりに解釈したのですが
そういう理解でいいのでしょうか?
よろしければお教えください。
804デフォルトの名無しさん:2007/01/06(土) 21:48:46
>>803
おおかたそんなところ
805デフォルトの名無しさん:2007/01/06(土) 22:15:38
GC周りの問題があって、DoEventsで処理することになったような。
806デフォルトの名無しさん:2007/01/09(火) 15:55:58
>>804,805
お答えいただきありがとうございます。
807デフォルトの名無しさん:2007/01/15(月) 00:50:10
DirectPlayでVoiceを使い
音声通信をしようと思っているのですが、
サイトなりヘルプなり書籍なり説明しているものございますでしょうか?
自分なりに色々探したのですがまったく見つかりません。

ご存知の方教えていただけると幸いです。
808デフォルトの名無しさん:2007/01/15(月) 15:53:20
Microsoft.DirectX.Direct3D名前空間のGeometryクラスを使おうとするとerrorになります。

「名前'Geometry'は現在のコンテキスト内に存在しません。」

きちんとDirect3Dの名前空間をusingしているので使えるはず・・・と思ったのですが。
原因がわかる方がいたら教えて下さい。
809デフォルトの名無しさん:2007/01/15(月) 21:31:35
>>808
アセンブリの参照は追加したのか?
810デフォルトの名無しさん:2007/01/16(火) 14:23:50
>>807
Voiceに特化したまともなMDX本は1つもないよ
サンプルを分解してヘルプ逆引きが一番手っ取り早い
へたれな漏れは1日かかったがな
811デフォルトの名無しさん:2007/01/16(火) 16:48:43
自分のマシンのmdxのバージョンが何番かを確認する方法って何か、ありませんかね?
自分のマシンでコンパイルして出力されてパッケージ化されるダイレクトドローのdllのバージョンは、
5.3.0.900なんですが、
これは、mdx1.1のものだと考えてもよろしいのでしょうか?
それとも、それ以前の、古いバージョンである可能性もありえるのでしょうか?
812デフォルトの名無しさん:2007/01/16(火) 18:39:04
http://www.dwahan.net/nyaruru/getreadyformdx/developer/tool.html

これとか参考になるかもな
つかったことないが
813デフォルトの名無しさん:2007/01/17(水) 00:38:31
よくわかんないけど、アセンブリ参照の番号ってバージョンと別物なん?
814デフォルトの名無しさん:2007/01/17(水) 17:22:36
うーん、すみません。
色々教えてくださっているみたいですが、さっぱり解らんです。
上記のリンク先のツールで試してみましたが、
やっぱり、5.3.0.900のバージョン番号が表記されるだけです。
問題は、これが、最新のdllだと思って良いのかどうか?
と言うことなのですが、自分の知識ではさっぱり解りません。
一応、mdxは2.0以降は廃止になってて、自分は2.0からは、
一切インストールしていないので、それについては安心なのですが、
1.1以前のバージョンとかが、あるのかどうか?
が、不安なんですよね。
何故、こう言う質問をするのかと言うと、
自分のマシンのmdxのダイレクトドローでは、
クリッパーがきちんと機能しないのです。
ウインドウズに表示される、最前面の、フォームのコントロールを参照にセットする、
サーフェスにだけしか、クリッパーが機能しないのです。

まあ、セカンダリ以降のサーフェスに関しては、自分でクリッピングをするコードを
書いたので、それでも、十分に機能するのですが、
もし、最新のダイレクトドローでは、きちんとセカンダリ以降のサーフェスの
クリッパーが機能するのであれば、
勿論、その機能を使ったほうが言い訳でして、

と言う感じで困っておるわけです。
815デフォルトの名無しさん:2007/01/17(水) 17:23:11
誰か、知ってる人が居ましたら、教えてくださいね。
816デフォルトの名無しさん:2007/01/17(水) 19:52:51
>勿論、その機能を使ったほうが言い訳でして、
ここが本当にそう言えるのかもう一度考えてみた方がいいと思うけどなぁ。

MDXのアセンブリは更新されててもバージョンは上げていないとか
開発者が語ってたのをどこかで読んで気もするから、まぁそういうこともあるかもね。
どちらかといえばMDXのバージョンよりもドライバ疑った方が可能性高そうだけど。
817デフォルトの名無しさん:2007/01/17(水) 20:16:15
ほうほう、そうなのですか。
ありがとうございました。
確かに、私のマシンはちょっと古めですし、クリッパーも、完全に機能しないのではなく、
微妙に機能し無いと言う、不自然な壊れ方なんですよね。
確かに、マイマシンのドライバーのせいなのかも知れません。

もし、MDXのダイレクトドローを使ってて、
俺は普通にセカンダリ以降のクリッパーもきちんと機能するよ、って言う
人が居ましたら、その旨教えてくださいませ。
818デフォルトの名無しさん:2007/01/18(木) 22:17:20
>>814
もともとクリッパーってウィンドウモードのためのもので、
プライマリバッファ(つまりデスクトップ)上のクライアント領域が
他のウィンドウと重なってたりで複雑な形状をしていても、
GDIのようにBitBltをできるようにするためのものだと思ってたんだが。

そもそも「本来セカンダリサーフェイスにもクリッパーは使用できるはずだ」
というその前提は、今までネイティブのDirectDrawを使っていたときの経験なのか
それとも単に電波を受けてひらめいただけなのかどっち?
後者だとしたらそもそも思い違いという可能性を疑ったら?
819デフォルトの名無しさん:2007/01/18(木) 23:32:27
ほおっ、なるほど。
やっぱり、そうなのですかね?

自分も、その説を想像してみたこともあるのですが、
クリッピング機能くらい、最新のdllにならあって当然じゃねえ?
見たいな感じで、直ぐに忘れ去ってしまってたんですよね。
でも、言われて見たら仰るとおり、そもそも、
出来て当たり前だと思っていた私の方がおかしかったのかも知れません。
実際、マイクロソフトのサンプルを見ても、セカンダリサーフェスへのクリッッパー
設定のコードは一切無いですしね。

自分が、あるはずだと思ったのは、ネイティブのダイレクトドローの説明をしている
サイトに、単純にサーフェスにクリッパーを設定すれば、クリッピングが出来る、
と書いてあったので、全てのサーフェスに出来ると思い込んでしまったというのもあるのです。
が、確かに、厳密に言えば、全てのサーフェスに出来るとは書いてないですね。
820デフォルトの名無しさん:2007/01/21(日) 05:22:07
基本的にマネージコードのプログラムって、
ハングアップするような事ってまず無いと思っていいですよね。
どんなに滅茶苦茶なコードを書いても、原理的にハングアップなんてしないはずですよね。
それどころか、ネイティブコードで書いたって、マシンをハングアップさせる様な
コードって普通は中々書けないですよね。書こうと思っても。
CPU100パーセント使用率の無限ループとかじゃなくて、ハングアップです。
例外が発行されるのでも、勿論ありません。
マシンが止まってしまい、電源を落とすしか無い状態です。

皆さんの中で、自分の書いたコードのせいで、こんな状態に成ってしまった人って居ますか?

自分の場合、斜めの坂で、マイキャラが滑ったりするようなアクションゲームの
コードを書いたら、非常に高い確率で、ハングアップするような事態になってしまいました。
原因は全く解りません。
ハングアップしてしまうので、デバッグも出来ない状態です。
しかも、全く同じコードなのに、絶対に毎回ハングアップするというわけでも無いと言う、
訳のわからない壊れ方なのです。

一体何なんでしょうか?
察しの付く方がいらしましたら、ご教授ください。
821デフォルトの名無しさん:2007/01/21(日) 07:01:59
>>820
デッドロック
822デフォルトの名無しさん:2007/01/21(日) 16:07:48
>>820
無限ループ書いてるんじゃないの?
823デフォルトの名無しさん:2007/01/21(日) 20:35:27
>>821
すいません。デッドロックって何ですか?
>>822
いえ、無限ループでは決してありません。
無限ループなら、タスクマネージャで、止められるでしょ。
デバッグも出来るし、ウインドウズ事態は止まらないですよね。
824デフォルトの名無しさん:2007/01/21(日) 20:38:40
>>820
メモリの開放忘れでよく発生する現象
825デフォルトの名無しさん:2007/01/21(日) 20:45:07
>>820
C#では無いが、C++のコードで似たような事があったな。
メモリの不正なアクセスしか考えられない。
デバックするか、作り直すしかないわけだが
826デフォルトの名無しさん:2007/01/21(日) 20:47:37
わけのわからんエラーやハングアップはマザボやメモリやグラボといったハード障害の可能性もあるな。
他のPCでも起きるかどうか確かめよう。
827デフォルトの名無しさん:2007/01/21(日) 21:06:11
メモリの不正アクセスの場合、他のハードだと再現しないぞ
828デフォルトの名無しさん:2007/01/21(日) 22:33:47
皆さん、色々とありがとうございます。
自分の場合は、まだ、大量にインスタンスを作ったり削除したりと言う
段階には来てないので、
メモリの解放失敗とかそう言うのでは無いんじゃないかと、、、?
知り合いのパソコンで試しに色々と動かしてみましたが、
確かに、他人のパソコンで止まった事は無かったですね。
まあ、あまり、長時間動かした訳でもないので、完全なテストではないですが、、、。
と言うことで、826,827さん辺りの可能性が高いのかな?

メモリの不正アクセスって、要するに、ハードの問題なのでしょうか?
マネージコードだと、原理的にプログラマがメモリを管理する事は出来ませんものね。
829デフォルトの名無しさん:2007/01/22(月) 04:44:47
たぶんお前のマザーのコンデンサが液漏れ
830デフォルトの名無しさん:2007/01/23(火) 01:05:37
Microsoftのcoding4funのバックナンバーが少ないのは仕様ですか?
831デフォルトの名無しさん:2007/01/23(火) 21:24:21
お前らはmsdnのサイトの掲示板とか利用してるのか?
832デフォルトの名無しさん:2007/01/24(水) 16:33:14
Direct3D.SurfaceにDirect3D.Surfaceを貼り付けるにはどうすれば良いの?
DirectDraw.Surface.DrawFastみたいな感じで。
833デフォルトの名無しさん:2007/01/25(木) 00:50:12
c++にはある、timeBeginPeriod
って言う関数は、c#には無いのか?
c#では、タイマ精度は変えられないのか?
3dのmdxなら、内部で勝手に読み込んで勝手に使ってくれるらしいが、
2dのmdxで、同じ事はできないのか?
834デフォルトの名無しさん:2007/01/25(木) 02:05:38
>>833
俺は P/Invoke で叩いた
835デフォルトの名無しさん:2007/01/25(木) 03:48:24
ほう、サンクスコン。
836デフォルトの名無しさん:2007/01/25(木) 22:05:38
P/InvokeでtimeBeginPeriod、timeEndPeriod、timeGetTimeを定義するクラスを
ライブラリに持っておくと便利だよ。
837デフォルトの名無しさん:2007/01/26(金) 10:11:14
昔はその関数、DLLじゃないといけなかったりしたなー、16ビット時代だが。
時代は変わる
838デフォルトの名無しさん:2007/01/26(金) 11:14:44
こう言うことって、c++で、コードを書かないと駄目なんですよね?
自分のマシン環境にはc#しか、インスコされてないので、まあ、諦めるしかないっすね。
どうも、済みませんでした。
839デフォルトの名無しさん:2007/01/26(金) 11:37:13
>>838
P/Invoke ゆうとるやん
840デフォルトの名無しさん:2007/01/27(土) 02:15:12
Managed Direct3Dで、Zバッファのコピーをしたいのですが、どのようにすればいいのでしょうか。

Texture yearLayer1Texture = new Texture(device, width, height, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default);
Texture yearLayer2Texture = new Texture(device, width, height, 1, Usage.RenderTarget, Format.A8R8G8B8, Pool.Default);
Surface layer1ZBuffer = device.CreateDepthStencilSurface(width, height, DepthFormat.D16, MultiSampleType.None, 0, true);
Surface layer2ZBuffer = device.CreateDepthStencilSurface(width, height, DepthFormat.D16, MultiSampleType.None, 0, true);

device.DepthStencilSurface = layer1ZBuffer;
device.SetRenderTarget(0, yearLayer1Texture.GetSurfaceLevel(0));
device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Beige, 1.0f, 0);
presentation.heightMesh.Render();
SurfaceLoader.FromSurface(yearLayer2Texture.GetSurfaceLevel(0), yearLayer1Texture.GetSurfaceLevel(0), Filter.None, 0);
SurfaceLoader.FromSurface(layer2ZBuffer, layer1ZBuffer, Filter.None, 0);
presentation.layers[yearFloorIndex].obj.Render();

device.DepthStencilSurface = layer2ZBuffer;
device.SetRenderTarget(0, yearLayer2Texture.GetSurfaceLevel(0));
presentation.layers[yearFloorIndex + 1].obj.Render();

似たようなシーンを2回レンダリングして半透明合成するので、yearLayer1TextureとyearLayer2Textureを用意して、
共通のオブジェクト(背景)をレンダリングします。(presentation.heightMesh.Render())
その後、yearLayer1TextureからyearLayer2Textureにコピーして、
違う前景をそれぞれレンダリングする、ということを行いたいと思っています。

テクスチャのコピーはうまくいくのですが、SurfaceLoader.FromSurface(layer2ZBuffer, layer1ZBuffer, Filter.None, 0);の部分の
Zバッファのコピーがうまくいきません。

Zバッファはコピーできないんでしょうか?
841デフォルトの名無しさん:2007/01/27(土) 05:49:00
>>839
ありがとうございます。
どうやら、自分は、根本的にプラトフォーム呼び出しの事が解ってなかったみたいで、
http://msdn2.microsoft.com/ja-jp/library/26thfadc(VS.80).aspx
でも、見て、勉強しなおしてきます。
自分のマシンの2002年バージョンでは、p/invokeで、検索しても、
全然情報が出てこないんですよね。
842デフォルトの名無しさん:2007/01/27(土) 13:47:47
その後、色々と調べたら、結構簡単に、プラットフォーム呼び出しが可能になりました。
ありがとうございました。
843デフォルトの名無しさん:2007/01/27(土) 18:53:39
しかし、
timeBeginPeriod、timeEndPeriod、timeGetTime
これらのメソッドは比較的簡単に出来たけど、
タイマ精度を調べるメソッドは非常に扱いが難しいですね。
構造体の参照を渡す様に組まなければいけないみたいで、、、。
色々やったけど、難しすぎるので諦めました。
本当なら、これを調べて、タイマ精度を元の値に戻すように組まないと
いけないっぽいですね。
844デフォルトの名無しさん:2007/01/27(土) 19:48:26
P/Invokeが面倒になってきたらC++/CLIへの切り替え時かもよ?
845デフォルトの名無しさん:2007/01/29(月) 15:50:25
デバッグ開始 の場合正常に動作するのですが
デバッグなしで開始 を選ぶとエラーメッセージとともに
終了してしまいます。
ビルドしてexeで起動してもエラーは出ませんでした。
このエラーは無視して大丈夫なのでしょうか
846デフォルトの名無しさん:2007/01/29(月) 15:54:08
そのエラーメッセージはなんなんだ。
DLLが見つからんとかそういうのか?
847デフォルトの名無しさん:2007/01/29(月) 17:18:11
問題が発生したため終了します
と出るだけで具体的なエラーが検出されるわけではありません。
デバッグありの場合、エラーも警告もでませんでした。
848デフォルトの名無しさん:2007/01/29(月) 17:39:02
F5だと動作して、Ctrl+F5だとだめで、EXEダブルクリックで動作、、か
環境っぽいけどReleaseバージョンでCtrl+F5だとどうよ
849デフォルトの名無しさん:2007/01/29(月) 18:14:24
正常に動作しました。
850デフォルトの名無しさん:2007/01/29(月) 18:21:20
プログラムのせいじゃなくて環境かもね。
まあそのまま様子見でよさそう。
851デフォルトの名無しさん:2007/01/29(月) 18:28:47
そうしてみます。
いろいろとありがとうございました。
852デフォルトの名無しさん:2007/02/06(火) 01:41:55
フルスクリーンのときにAlt+Tabを押しても不具合が起こらない最小限のサンプルってある?
853デフォルトの名無しさん:2007/02/06(火) 01:50:28
不具合なんて存在しません
854デフォルトの名無しさん:2007/02/06(火) 14:17:28
マイクロソフトのサイトに、フル画面時の、
デバイスの参照を失った時のリストアのサンプルはあったな。
最小とは言えないが、一応、リストアするためのコードはあったはず。
855デフォルトの名無しさん:2007/02/07(水) 12:10:06
XPなんですがDirectXがインストールできません
最新バージョンを落としセットアップの画面で同意書にサインし
ダウンロード&インストールまでするのですが適用するには再起動が
必要ですという画面になり、再起動してもインストールされていず
またデスクトップに落としたセットアップファイルに戻ります
何度繰り返してもインストールしますか?と聞かれ、して再起動してるのに
インストールされません。どうすればいいのか教えてください。
856デフォルトの名無しさん:2007/02/07(水) 12:39:24
>>855
OSから再インストール
857デフォルトの名無しさん:2007/02/11(日) 01:55:05
質問します
マイクロソフトからDirectX9をダウンロードしても
再起動の表示が出ませんどうすればいいですか?
858デフォルトの名無しさん:2007/02/11(日) 02:14:36
>>857
マルチはよくない
859デフォルトの名無しさん:2007/02/11(日) 11:03:15
        ,. -‐  ̄  ̄ ̄ ` ヽr―‐ 、
   `ー--‐r'´    /         \::::::>
      /    / / | !  ヽ ヽ   ヽ:::::\
      /  !  / / | |  !  ヽ !    |ヽ ̄
     /  1 ,斗t 7  !. | Tiト、 .!    ! レ--、____
     / / |/ V 、   ヽ| __ヽ \|   ! | _ -、__}   フヒヒwwサーセンwww
    / ∧ | r ニミ     frぅミヽ. |   ! |//≦三}
   /  |  |/ ハ__ハ     {r、_!} レ    !ハ/:::::::::::\
   |   |⌒| Vr_ソ 、   Vrソ |    「}く:::::::::::::::::::::::\
   | !  ハ | ::::  r--- z   :::: |    |ノ \:::::::::::::::::::;∧
   | !  ! 弋!    i    |    |    |__ノ::::::::::::::::::::::::ハ
   ∨ ∧ i 人.   |    }    V   !::::::::::::::::::::::::::::::::::::}
    _\| > へ>、_`  '  _ イ  \ハ/:::::::::::::::::::::::::::::::/
  /==、 、.   \}  ¨ ´ ハ     //:::::::::::::::::::::::::::/
<ユ二ー、 ヽヽ  ∧_r‐ニニミ }   //|::::::::::::::::::::::/
  /⌒\ \ \\ ∨::Vフ// ///::::::::::>' ̄
. /::::::::::::::::ヽ ヽ  \_ミヘ:::::::/ </ /:::::/
/:::::::::::::::::::::ヽ:::∨ ー‐ >‐>く__ /::} ̄
:::::::::::::::::::::::::::ヽ:::>―く::::(___人::r‐‐ュ::::|
::::::::::::::::::::::::::::::|:::::::::::::::::\:::/:: \::::::::::|
::::::::::::___:::__:::|:::::::::::::::::::::::::{:::   \::ハ
rァ/ 、 、 、 \:::::::::::::::::::::::\    \|
860デフォルトの名無しさん:2007/02/15(木) 02:04:47
C#にてスフィアにテクスチャを貼り付けたいのですが、
資料がdirectX逆引き大全しかなく内容がC++になっております。
こう書けばいいんじゃんね?とか、またご参考になりそうなwebサイトをご存知でしたら
ご教授ください。
861デフォルトの名無しさん:2007/02/15(木) 03:54:40
関数名は大体似てるから、あとはmsdnなりで
862デフォルトの名無しさん:2007/02/15(木) 08:40:57
>>860
マルチしおってからに。
863デフォルトの名無しさん:2007/02/15(木) 09:04:03
マルチ指摘厨ウザ
864860:2007/02/15(木) 09:32:40
>>862
マルチ投稿申し訳ありません。あちらの方はスレ違いすぎたので訂正しておりました。

>>861
ありがとうございます。実は今日の課題が出来なかったのですが
どうみても間に合いません。本当にありがとうございました。
延長して改良してみたいと思います。
865デフォルトの名無しさん:2007/02/22(木) 01:41:08
spriteをTransformで縮小したいのですが
倍率が0.3倍程度になると元画像の一部だけが表示されるように
なってしまいます。
縮小が成功する限度というものがあるのですか?
866デフォルトの名無しさん:2007/02/22(木) 02:34:01
引数がもっといっぱいあるのを調べてみな
867デフォルトの名無しさん:2007/02/23(金) 13:30:49
はっきり言って俺はC#は詳しいよ。
Append()は戻り値がvoidなので新たにオブジェクトを作らない。
よーく考えろ。

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\| ̄ ̄ ̄ ̄ ̄ ̄
                        _,,t-‐‐-、,-‐‐-、
                     三'::::::............... .....::::::`y,.
                     ナ::::::::::::::::::::::::::::::::: :::::::::::::ヾ
              | ̄|   V::::::::::::::::_{{ ({∫∬ノノjヾ:::::{
           | ̄| | ̄|   ナ::::::::::::::i`__,,,,,,,ァ_  _,,,,,_ t;;:ヌ
           |  | |  |  イヘ::::::(ヾ~!,ャt、 !'''i ィtン )=f }f
           |  | |  |  i {t)テ" ヘ' '___,イ ヽ_/ 介'
           |  | |  | _,rヘ_,j|!'     /ー--''!     |'
           |,.ィ―'''' ̄ /| |       /二ク     !
           /;;:::'';;::''::;;:/ { ! 、     ヾニン   ノ\
            /'''::::;r|''':::;;;|  | ! \       _,,./|::;;'''\
        /:;;/ |;;;''::;;|   丶\  `__>-ー´   !;;;:'''::iヽ、
          i/   |'::;;;;''|      三 ―''"       !''::;;;;| /ヽ
        /⌒ヽ  |;;''':::;|       \            !;;::''|/  i
         /     \{'';;;::''}          ̄二ニ=    !::;;|   |
        /ヘ     |;;:::::;{            ‐-      !/   |
        /  i     |:::;;;''!             ー       !  / |
     /   l     |;;'';イ                   }   {、
     〉、      ∧テ{ ヽ  _   _,,,,;;;;;:::-==ニ;;;_   ノ __,イ´
      / \_    //レ!      ̄           ̄ { ̄  |



868デフォルトの名無しさん:2007/02/24(土) 11:55:29
デブおた死者プチュは市ね
869デフォルトの名無しさん:2007/02/24(土) 15:05:17
戻り値がVoidでも参照渡しで何か帰ってくるかもしれない
870デフォルトの名無しさん:2007/02/24(土) 15:28:27
871デフォルトの名無しさん:2007/02/24(土) 15:36:59
VOID

とは宇宙空間にあるものです
872デフォルトの名無しさん:2007/02/24(土) 21:50:33
>>870とかみたいのが何をいいたいのかまじでわかんない
罵りなのかこういうのって?
873デフォルトの名無しさん:2007/02/25(日) 01:14:47
874デフォルトの名無しさん:2007/02/25(日) 01:23:01
>>870みたいなレスってマジでいみふめいだわ。
レスをするときに途中で文書を書く前に
間違えて慌てて書込ボタンを押してしまった人のレスだと思うよ。
ときどき見るんだよね。ム板では。
875デフォルトの名無しさん:2007/02/25(日) 01:32:01
unsafeを前提にしてるお前らもどうかと思うが
876デフォルトの名無しさん:2007/02/28(水) 22:39:04
ライティングって、RenderStateのLightingをtrueにしてLights[0]を設定してUpdateして
ポリゴンにマテリアル割り当てればいいんですよね?
何故かEmissive色のべた塗りになってしまうんですが、これってライトが効いてない証拠ですよね?
877デフォルトの名無しさん:2007/03/05(月) 01:28:08
ぶっちゃけWINDOWSが正規品じゃないみたいなので、DirectXをダウンロード
できません。何か方法はありますか?
878デフォルトの名無しさん:2007/03/05(月) 01:32:34
>>877
論理的には、ファイルのコピーとレジストリやシステム構成ファイルを書き換えればできるだろうけど。
実際に設定するのは無理だと思う。
879デフォルトの名無しさん:2007/03/05(月) 02:26:28
>877
Windows買えば? 
880デフォルトの名無しさん:2007/03/05(月) 02:37:52
ぶっちゃけすぎwwwwwwwwwwwwwwwwwwwwwwwwwwwww
881デフォルトの名無しさん:2007/03/05(月) 03:26:47
正規品のWindowsで落としたものをインストールしる
882デフォルトの名無しさん:2007/03/05(月) 06:53:57
これひどいw
883デフォルトの名無しさん:2007/03/05(月) 13:37:57
x64でネイティブ動作する2chブラウザつくってください
884デフォルトの名無しさん:2007/03/06(火) 22:41:30
>>877
仮想化ソフトをインストールしてWindows2000等でダウンロード
もしくはマン○喫茶
885デフォルトの名無しさん:2007/03/06(火) 22:42:03
>>883
キミがいうネイティブってどういう状態を想定してるのかな、かな?
886デフォルトの名無しさん:2007/03/06(火) 22:46:52
Wowじゃなくて.NETじゃなくてってことだろう
C#じゃ無理ね
887デフォルトの名無しさん:2007/03/07(水) 10:02:38
>>884
コ?
888デフォルトの名無しさん:2007/03/10(土) 17:06:34
long l1 = Stopwatch.GetTimestamp();
_texture1 = new Texture(_device, _image1, Usage.None, Pool.Managed);
long l2 = Stopwatch.GetTimestamp();
long a = (l2 - l1) * 1000 / Stopwatch.Frequency;

こんなコード書いたんですが、512x512の画像で9秒近くかかってしまいます(面積に比例するようです)。
Texture.FromBitmapが遅いという書き込みは前にもあったんですがこんなものなんでしょうか?
何かわかる方がいたらお願いします。
889デフォルトの名無しさん:2007/03/10(土) 18:34:36
すみません自己解決しました。
遅いのはVisualStudio内で実行した時だけのようです。
http://www.thezbuffer.com/articles/401.aspx
890876:2007/03/11(日) 13:42:24
>>876です。
問題のソースをこちらに置きました。

ttp://gamdev.org/up/img/9102.zip

どなたか、どの部分のせいでライトがうまく動かないのか見ていただけないでしょうか。
厚かましいお願いだとは思いますが、なにぶん手詰まりの状態でして・・・
891デフォルトの名無しさん:2007/03/12(月) 11:27:11
>>890
ソースは何ら問題無し。
モデルに問題があるっぽいな。
SDK付属のViewerで見ても同じようになってた。
以前メタセコでX出力したら、こんな感じになってた気がする。
仕様なのか、俺が使えてないだけなのか知らんけど・・・。

ttp://gamdev.org/up/img/9108.zip
簡単なモデル上げといたから、こっちで試してみるといいよ。
ちゃんとギラギラ表示されるから安心しる。
892デフォルトの名無しさん:2007/03/12(月) 11:31:51
あ、あと環境光が逆光気味になってて、黒く見えるから
Z値に-1でも入れといた方がいいかも。
893876:2007/03/12(月) 17:33:03
>>891
ありがとうございます。確認しました。
モデル不良に関しては完全に想定外でした・・・

>以前メタセコでX出力したら、こんな感じになってた気がする。
まさにそれで作成したモデルでした。
894876:2007/03/12(月) 19:32:32
いじってみたのですが、メタセコの出力の時に
法線とUVマッピングを有効にする必要があるみたいですね。
一応参考までに。
895デフォルトの名無しさん:2007/03/13(火) 14:53:43
>>894
このエラーは他の人もやりそうなエラーですな。
次回があるならテンプレでも作っとく?
896デフォルトの名無しさん:2007/03/13(火) 18:16:54
プログラムの配布ってどうすればいいんだろ。
今のDirectXランタイムって、MDXのも含まれてる?
それともランタイムも一緒に配布しなきゃいかんのかな。
897デフォルトの名無しさん:2007/03/14(水) 10:26:12
MDXの単体配布パッケージは無い。
DirectXのランタイムと一緒に配布しないとダメ。
898デフォルトの名無しさん:2007/03/14(水) 10:56:38
z
899デフォルトの名無しさん:2007/03/14(水) 10:57:50
mdxは普通にコンパイルして、出力すれば、自動的に
ランタイムがパッケージ化されるので、実際やってみれば、
あまりその辺は意識しないで済むよ。
900デフォルトの名無しさん:2007/03/14(水) 21:31:22
一応 MDX の単体配布パッケージはあるんだけどな……
901デフォルトの名無しさん:2007/03/15(木) 07:40:12
うそーん、どこに?
902デフォルトの名無しさん:2007/03/15(木) 22:38:54
Webインストーラ使わせようぜ。開発者としてはURL載せとくだけだから楽だ。
・・・とは必ずしもいかないんだよなぁ。ReadMe読まない人結構いるんだよな。
903デフォルトの名無しさん:2007/03/15(木) 22:44:38
それはランチャー作って半強制的に読ませればOK!

でもスタンドアロン機のために結局同封しなきゃいけない気がする
非ネット環境は切捨てなのかね
904デフォルトの名無しさん:2007/03/18(日) 00:29:17
うーん、やっぱ同梱が一番だよなぁ……。
ファイルサイズが10MB超えちゃいそうだけど、
最近はユーザー側もそんなに気にならないかな?
905デフォルトの名無しさん:2007/03/18(日) 04:55:14
なにを言ってるんだ
ユーザが使いたいソフトならば入れるだろ
906デフォルトの名無しさん:2007/03/18(日) 12:47:30
スタンドアロン機のため=オフライン配布=容量気にしない=同封OK
907デフォルトの名無しさん:2007/03/20(火) 00:06:47
ゲームだといきなりまず「使いたい」とはなりにくいけどな。
908デフォルトの名無しさん:2007/03/20(火) 00:35:25
やりたくもないゲームなんて入れるやついるのか?
ライターくらいなもんじゃないかな
909デフォルトの名無しさん:2007/03/20(火) 00:38:38
いやユーザーは簡単に諦めてしまうものなんだよ。面倒だからもういいやって。
910デフォルトの名無しさん:2007/03/20(火) 09:22:26
なにを言ってるんだ
諦めるって事は使いたいほどのソフトじゃないって事だ
911デフォルトの名無しさん:2007/03/20(火) 13:42:10
使ってみるまで本当に使いたい物だったのかわからんでしょう
912デフォルトの名無しさん:2007/03/20(火) 15:05:22
使わなかった人にとってはどうでもいい事だ
似たようなソフトなんていくらでもあるだろ
913デフォルトの名無しさん:2007/03/20(火) 22:39:47
センス無いねぇ
914デフォルトの名無しさん:2007/03/22(木) 01:13:59
いろんな意見があるだろうが
動きませんでしたより動きましたという
あたりまえの結果のほうがいいにきまってると思う

フレムワクもMDXランタイムもインストーラに含められるならそのほうがいいと思うよ普通に
915デフォルトの名無しさん:2007/03/22(木) 04:58:20
>>914
同意。

あと製品だと、インストーラーにランタイム全部入れてくれってときもあるのでな
製品のインストール完了状態で、動くとこまで持っていけないと困る。

まあ、場合によるが・・・
916デフォルトの名無しさん:2007/03/23(金) 00:06:55
SetRenderTarget関数に関する質問なんですけど
これの一つ目の引数、int型のrenderTargetIndexについてです。
これはrenderTargetIndexを増やしながら関数を複数回呼ぶことで
複数のレンダリングターゲットに同時に描画できる、ということなのでしょうか?
つまり
device.SetRenderTarget(0, surface0);
device.SetRenderTarget(1, surface1);
と呼ぶことで、surface0とsurface1に同時に描画できる、というものなのでしょうか?

msdnにはこの引数について解説が載ってなかったもので、よろしければお教えください
917デフォルトの名無しさん:2007/03/23(金) 01:43:32
いいえ
918デフォルトの名無しさん:2007/04/09(月) 18:17:05
Vector3 center = new Vector3(0.0f, 0.0f, 0.0f);
Vector3 position = new Vector3(0.0f, 0.0f, 0.0f);
Matrix scaleMatrix = new Matrix();
Vector2 scale = new Vector2(1.0f, 1.0f);
int sizew = 0;
int sizeh = 0;
float scaling = 0.0f;
float lens = 0.0f;
for (int i = 0; i<MAX; i++)
{
scaleMatrix.Scale(scaling, scaling, 1.0f);
Vector2 rotScaleCenter = new Vector2((position.X + sizew / 2.0f) * scaling, (position.Y + sizeh / 2.0f) * scaling);
_sprite.Transform = scaleMatrix * Matrix.Transformation2D(rotScaleCenter, 0.0f, scale, rotScaleCenter, Geometry.DegreeToRadian(lens), new Vector2(0.0f, 0.0f));
_sprite.Draw(this._texture, Rectangle.FromLTRB(0, 0, sizew, sizeh), new Vector3(0.0f, 0.0f, 0.0f), position, Color.White);

}
のようにスプライトを表示したいのですが、処理が重くなってしまいます
どこが重いのか指摘おねがいします
919デフォルトの名無しさん:2007/04/09(月) 20:34:39
・どの程度重いのか?(何秒かかっているか)
・1フレーム何枚出力しているのか?(MAXの値は?)

あと、重いときは、プロファイルをとってみるクセをつけること。
920デフォルトの名無しさん:2007/04/09(月) 22:29:33
>>919
this._sprite.Draw(this._texture, Rectangle.FromLTRB(0, 0, sizew, sizeh), Vector3.Empty,
new Vector3(posx,posy, 0.0f), Color.White);
で表示したときよりもfpsの値が10前後小さくなってしまいます
MAX=500です
プロファイルというのは意識してませんでした
調べてみます
921デフォルトの名無しさん:2007/04/11(水) 13:06:30
C#って中間言語だよね?
ゲームが普通のスピードで動くの?
922デフォルトの名無しさん:2007/04/11(水) 13:14:40
>>921
動く。
923デフォルトの名無しさん:2007/04/11(水) 16:45:36
共通言語ランタイムは、パフォーマンスを向上させるようにデザインされています。
このランタイムには多くの標準ランタイム サービスが用意されていますが、
マネージ コードのインタープリタ処理が行われることはありません。
ジャスト イン タイム (JIT: Just-In-Time) コンパイルと呼ばれる機能により、
すべてのマネージ コードは、それが実行されるシステムのネイティブ機械語
で実行できます。また、メモリ マネージャは、メモリの断片化を防止し、
メモリ参照ができる限りローカルで行われるようにすることで、
パフォーマンスを向上させます。
924デフォルトの名無しさん:2007/04/11(水) 16:52:21
日本語で説明してくれ
925デフォルトの名無しさん:2007/04/11(水) 21:14:46
ファイル上では中間言語だけど、動くときは機械語で動く。
926デフォルトの名無しさん:2007/04/12(木) 00:13:57
>>925
C++より遅いって言われるのはなんで?
927デフォルトの名無しさん:2007/04/12(木) 00:26:48
>>921
JITコンパイルで検索しる。
928デフォルトの名無しさん:2007/04/12(木) 00:27:46
>>926
どこで言われてるんだろ・・・。
どっかの検証サイトで大した差が出ないと言われてた気がする。
929デフォルトの名無しさん:2007/04/12(木) 00:30:00
>>926
実質的には.NETフレームワークがネイティブより遅い言うことだろうけど、
ランタイムが自動的にメモリを大幅に確保する必要があるため、起動時までに時間がかかる。
ネイティブは必要なメモリを随時確保していくため早いと言われる。
また、.NETフレームワークでFormsが不要な描画処理を毎回行っているため
ネイティブのMFC/WTLに比べると遅いから。
930デフォルトの名無しさん:2007/04/12(木) 18:10:01
>>924
______   _      _| ̄|_  _         _
|____   |   |  | 口口  |_  _|  \\       | |  __     __ __
     / /   |  |        | |  _   ̄ ___  | |  |__|  _| |_| |_
    / /    |  |   _    | |  _| |_  |___| | |        |_  _  _\
    | |      |  \_/ /   / / /。 _|        | |  ___    .| |.|__|/ /
    \\     \   /     ̄  \/           | | |___|    |__|   ̄
       ̄       ̄ ̄                      ̄
931デフォルトの名無しさん:2007/04/12(木) 18:17:35
>>930
Portuguese please.
932デフォルトの名無しさん:2007/04/12(木) 21:28:31
>>928-929
サンクス
大差ないようで安心した
933デフォルトの名無しさん:2007/04/12(木) 21:38:16
P/Invoke 時のマーシャリングでも多少時間がかかりそうな気がする
あと、GC 入るタイミングではレスポンスが悪化するとか
934デフォルトの名無しさん:2007/04/12(木) 22:16:33
質問させてください。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_m/directx/direct3d/tutorials/tutorial1.asp
このサンプルコードで実行すると
クライアントサイズが0x0になったときに
DriverInternalErrorが出てるんですが、
何が原因なのか、どうすれば回避できるのか
ググったりしてみてもどうしてもわかりませんでしたorz
恐縮ですがアドバイス的なものを頂けませんでしょうか。
935デフォルトの名無しさん:2007/04/13(金) 21:40:21
>928
おいおい、めちゃくちゃ差があるってば。
936デフォルトの名無しさん:2007/04/13(金) 22:57:31
GCの計画的な押さえ込みと、値型のテンポラリコピーの極力排除を前提として
ネイティブとの誤差が最大20%てなところかなぁ。まぁどーしたって遅くはなるよね。
でも一度.NETの開発環境に浸かっちまうと、もうWindows上での開発は
ネイティブで書く気無くなるんだよなぁ。
937デフォルトの名無しさん:2007/04/14(土) 00:22:27
MSは1割って言ってたな。
938デフォルトの名無しさん:2007/04/14(土) 00:40:49
この手の議論っていたるところでしょっちゅう見かけるけど、
パフォーマンスがどれだけ落ちるかなんてアプリに依存しまくりでしょ

特にDirectX周りだと、パフォーマンスのボトルネックになってんのが
CPUなのかどうかも環境や状況に影響を受けるし
939デフォルトの名無しさん:2007/04/14(土) 01:01:59
DirectX使うゲームじゃCPU処理負荷なんて大した問題にならんよ。
940デフォルトの名無しさん:2007/04/14(土) 01:13:45
>>938
まあ「○○言語は××言語より速い/遅い」といった議論は、
お互い承知の上でニヤニヤしながらやる雑談向けのネタであって、
そのまま鵜呑みにしたり誰かに吹き込んだりするものじゃないですな。
>>921はとりあえずグダグダ言う前に手を動かすべき段階っぽく見えるけど。

雑談ついでだけど、異なる言語で同じ計算の速度を見るときの「同じ計算」って何よ? って問題も。

C#だとReflectionとか動的コンパイルとかが身近なので、
C++版とはまた違った最適化を行うのが普通な感じ。
例えばこういうのとか。
ttp://d.hatena.ne.jp/siokoshou/20070411#p1

言語が違えばアルゴリズムの段階で全然違うコードが吐き出されることも多々あるわけで
そういう場合はアルゴリズムの差で勝負が決まることもあると。
941デフォルトの名無しさん:2007/04/14(土) 11:37:14
マリオカートで何に乗ろうが、
1位になるのも腕次第ってわけだ。
942デフォルトの名無しさん:2007/04/15(日) 14:44:53
ゲームを作っているのですがループ中に明示的に非同期で処理させたい場合はどのようにすればいいのですか?
ゲームでのローディング画面みたいなのが作りたいです
943デフォルトの名無しさん:2007/04/15(日) 21:13:31
>942
マルチスレッド、
状態を保持したサブルーチン
944デフォルトの名無しさん:2007/04/16(月) 06:27:21
サポートされていないDirectPlayでボイス通信を作ろうと思っております。
C++の本を読みながらC#に翻訳しなんとかしようと思っております。
まず、サーバを作らなくてはいけないのですが、初期化するとき

Microsoft.DirectX.DirectPlay.Voice.Server mddvs = new Microsoft.DirectX.DirectPlay.Voice.Server()

とこんな感じで初期化しようと思っているいるのですが、
右辺の()のところにobjectの引数を指定しなければいけないのですが
ここには何の情報を入力したらいいのでしょうか?
945デフォルトの名無しさん:2007/04/17(火) 10:16:41
DirectX for Visual Basic Type Library
使ってる人いる?
946デフォルトの名無しさん:2007/04/20(金) 21:14:02
DirectInputを使って同じパソコンに接続された2台のマウスのそれぞれの移動量を
取得することは可能なのでしょうか?
2台のマウスのそれぞれのGUIDを取得し、それぞれに対応するDeviceオブジェクトを
取得しようと試みましたが、

DeviceList mouseList = Manager.GetDevices( DeviceClass.Pointer, EnumDevicesFlags.AttachedOnly );

上記のコードで2台のマウスのDaviceInstanceのリストを取得したところ、マウス1台
分のDaviceInstanceオブジェクトしか取得できず、つまずいてしまいました。

根本的にやり方が間違っているのでしょうか?
947946:2007/04/21(土) 13:44:55
自己解決しました。
Windows 2000, XPからはDirectInputによって複数のマウスから送られてくる
パラメータを別々に取得することができなくなったそうです。
その代わり、Windows XPではDirectInputではなく、Raw Input APIを使うことで、
複数のマウスの移動量を取得することができるようです。

ソース: http://www.jstookey.com/arcade/rawmouse/
948デフォルトの名無しさん:2007/05/04(金) 15:56:01
質問!!


ところで、C/C++で何作ってるんですか??
949デフォルトの名無しさん:2007/05/11(金) 14:05:22
子供。
950デフォルトの名無しさん:2007/05/11(金) 14:16:38
>>949
子供はコウノトリが運んでくるだよ。
>>948
バグとデスマを作るんだよ。
951デフォルトの名無しさん:2007/05/16(水) 00:39:01
じゃあコウノトリの子供は誰が運んでくるの?
952デフォルトの名無しさん:2007/05/16(水) 00:56:44
久々に付いたレスが>>951か・・・
953デフォルトの名無しさん:2007/05/16(水) 09:49:23
郵便局への郵便は郵便屋が運んでくるべ
954デフォルトの名無しさん:2007/05/16(水) 10:09:25
自分の作品はまるで自分の子供のようだという意味だ
コウノトリとかバカじゃないの
955デフォルトの名無しさん:2007/05/22(火) 00:44:49
>>953
その理屈はおかしい。
郵便にたとえるならコウノトリは郵便局員(配達屋)だ。
局員の子供を郵便局が運ぶのはおかしい。
956デフォルトの名無しさん:2007/05/22(火) 10:04:02
郵便局員の自宅への郵便は郵便局員が運ぶ、か
957デフォルトの名無しさん:2007/05/22(火) 20:43:24
つまり、コウノトリの子供は別のコウノトリが運んでくるわけか
人間に例えると社員割引があるからって自分が勤めている産婦人科で
出産したら同僚にまんこ見られて恥ずかしい思いをしたって感じかな?
958デフォルトの名無しさん:2007/05/22(火) 20:57:40
なるほど、つまり、コウノトリはまんこだったんだね。
959デフォルトの名無しさん:2007/05/23(水) 00:17:31
>>957
>>958
いい勉強になりました
960デフォルトの名無しさん:2007/05/23(水) 02:41:40
Microsoft.DirectX.Direct3DX.dll のバージョン 1.0.2911 が要求する d3dx??_??.dll のバージョンって幾つでしたっけ?
961デフォルトの名無しさん:2007/05/23(水) 04:44:20
何がでしたっけ?だ
ですか?だろ
962デフォルトの名無しさん:2007/05/23(水) 05:08:17
まぁまぁ、そうカリカリせずに。さっさと答えろや。
963デフォルトの名無しさん:2007/05/23(水) 06:31:54
何が答えろや。だ
答えてくださいだろ
964デフォルトの名無しさん:2007/05/23(水) 10:13:15
ナンダヨ、でぃぺんだんしーうぉーかーで簡単に調べられるじゃんかヨッ
ちったぁ自分の手ェ動かしてから質問しろヨッ
965デフォルトの名無しさん:2007/05/23(水) 10:50:16
俺が居ない間に妙なことになりつつも DependencyWalker の存在あーだこーだ。
色々ありがとうございました。
966デフォルトの名無しさん:2007/05/23(水) 10:52:54
d3dx9_30 でした。どうもすいません
967デフォルトの名無しさん:2007/05/23(水) 19:08:39
d3dx10_68000.dllが出る頃に
968デフォルトの名無しさん:2007/05/23(水) 20:49:17
>>961
ですか?だと偉そうじゃん
でしたっけっていうのは丁寧な言葉なんだぜ?
969デフォルトの名無しさん:2007/05/23(水) 21:57:57
>>968
そうかな?
でしたっけ?だと、もともと知らないくせに
「僕は本当は知ってるんだけどど忘れしちゃったもんで」
的な意図に見えるから俺は使わないな
970デフォルトの名無しさん:2007/05/23(水) 22:03:17
>>969
そう感じる奴もいるのか……
住んでる世界が違うと言葉の意味まで違うんだな
そりゃ戦争も無くならんわ
971デフォルトの名無しさん:2007/05/23(水) 22:09:43
>>968の方が少数だと思うが。
ていうか馴れ馴れしいんだヨ。俺はお前の友達じゃねぇンだ。
972デフォルトの名無しさん:2007/05/23(水) 22:39:12
べ、べつにあんたなんか友達なんて思ってないんだからねっ(だってこぃ・・こいび・・・ぷしゅ〜)
973デフォルトの名無しさん:2007/05/23(水) 22:40:34
俺の感じ方も>>968よりは>>969に近いな

スレと関係ないしどーでもいいような気もするがw
974デフォルトの名無しさん:2007/05/24(木) 00:52:02
俺も >>969 みたいに思う。
975960:2007/05/24(木) 01:17:27
俺も >>969 みたいに思う。
976デフォルトの名無しさん:2007/05/24(木) 01:35:28
俺も >>969 みたいに思う。

>>975
ワロタ
お前がかよwww
977デフォルトの名無しさん:2007/05/24(木) 01:41:35
つーか普通に忘れたから聞いてるんでは?
丁寧かどうかは別の問題だろ
978デフォルトの名無しさん:2007/05/24(木) 10:34:04
でしょうか?

でいいでしょう。
979デフォルトの名無しさん:2007/05/24(木) 16:55:02
〜でしたかご存知の方はおられないでしょうか?
980デフォルトの名無しさん:2007/05/26(土) 04:40:12
http://www.microsoft.com/japan/msdn/academic/Articles/DirectX/01/
例えば、このアドレスの情報は検索すると出てくるけど、
トップページからリンクを辿って行ってもたどり着けないようになっている。
同様に昔は見れた、マネージドダイレクトxの他のサンプル
も、同様に見れなくなっている。
やっぱり、マイクロソフトとしては、マネージドダイレクトxは
もはや過去のもので、もう、サポートしなくなってるからなのかな?
俺的には、この手のサンプルはいずれ見ようと思ってたものなので、
見れなくなってると結構困るんだけどな。
みんなは困らねえ?

981デフォルトの名無しさん:2007/05/26(土) 05:00:16
と、思ってたら、単に俺の検索の仕方が悪かっただけで、
マネージドの講座は直ぐに見つかったよ。
スマソ。

でも、上記のアドレスがトップからたどり着けなかったのは本当だけど。
何でだろうね?
982デフォルトの名無しさん:2007/05/26(土) 12:42:15
ヒント
MDX→WPF
MDX→XNA
983デフォルトの名無しさん:2007/05/26(土) 13:33:53
5年後

WPF→WEG
XNA→EXS
984デフォルトの名無しさん:2007/05/26(土) 18:17:14
10年後

WEG→終了
EXS→終了
985デフォルトの名無しさん:2007/05/26(土) 19:21:26
>>990
スレ立てよろしく。
986デフォルトの名無しさん:2007/05/26(土) 20:30:39
20年後

終了→DirectX Reloaded
終了→XNA Returns
987デフォルトの名無しさん
MDX Strikes Back