1 :
デフォルトの名無しさん :
04/12/26 03:17:29
糞スレで2ゲットするのが趣味
おや、新しいスレたてたんですね、皆さんのんびりまたーりと行きましょう。
5 :
デフォルトの名無しさん :04/12/29 08:13:51
前スレのが上になってるからageとこう。
高速にきれいな文字を表示するにはどうしたらいいんでしょうね? 高速にきれいな文字を表示するにはどうしたらいいんでしょうね? 高速にきれいな文字を表示するにはどうしたらいいんでしょうね? 高速にきれいな文字を表示するにはどうしたらいいんでしょうね? 高速にきれいな文字を表示するにはどうしたらいいんでしょうね? 高速にきれいな文字を表示するにはどうしたらいいんでしょうね? 高速にきれいな文字を表示するにはどうしたらいいんでしょうね? 高速にきれいな文字を表示するにはどうしたらいいんでしょうね? 高速にきれいな文字を表示するにはどうしたらいいんでしょうね?
そして誰も高速にきれいな文字を表示するやり方を提示できないわな
無益なカキコするやつは、 無難に情報量の多いC++でやれよw
普通にやっても高速で綺麗だよ
30っこぐらいダストもっさりする。1.3G
>>12 ということは1秒で1800個ぐらいからもっさりなのか。
でもそれだとエロゲのスキップでも結構高速な部類だぞ。
どれぐらいまで速くしたいの?
自分ではパフォーマンスの測定もろくにせず
一般的な文言を鵜呑みにして他人をも洗脳しようとする
>>1-13 の方がよっぽどクズ。
いろんな系統のプログラムで測定してみたが、
俺の環境ではManagedによるパフォーマンス低下は大体0〜15%。
当たり前のことだが、GPUよりCPUを酷使するプログラムでは
パフォーマンスはネイティブに比べ大きく低下する。
逆にパフォーマンスがほぼGPUでの処理のみに依存しているようなプログラムでは、
体感的にはもちろん、数値的な差もほとんど確認できない。
ただし、MDXが提供するクラスの中には、単なる状態取得プロパティ・メソッドに見せかけて、
実は呼ばれる度にオブジェクトを新規に確保→コピーを繰り返すという、なんとも迷惑なのがかなり多くある。
また最近のバージョンでは減ってきたとはいえ、
>>755 みたいなバグが未だ潜んでいる可能性は大いにある。
Managedでパフォーマンスを重視するなら、ネイティブでの開発経験はもちろん、
Managedメソッドとそれに対応するネイティブメソッドとの関係を詳細に把握しておくことが必要。
逆にManagedで開発するメリットとしては、やはり圧倒的な開発効率がある。
.NET Frameworkが提供する豊富なライブラリを利用できる上、
対象の説明まで表示してくれるインテリセンスなどIDEのサポートも非常に便利。
上では欠点ばかり書いてしまったが、
MDXのクラスはManagedの流儀に併せてきれいに再構成されているし、
ほとんどのクラスがMarshalByRefObjectから派生しておりAOP的なプログラミングも可能。
何にでも言える事だが、そのデメリットを充分に理解しているのなら、
そのメリットを生かすためにそれを使うことには躊躇しなくてもよい。
俺はもちろんネイティブDirectXも使うし、Managed DirectXもありがたく使わせてもらっている。
>>14 >の方がよっぽどクズ。
いつものセリフでベタですねw
こぴぺおつ
いちいち反応する
>>15 が一番クズだな。
>>14 は前スレの780のコピペ。
いきなりそのままコピペする意味が分からんが。
いいけども持病が早くする方法俺も知りたい。 今メッシュでやってるけどこれだと10文字ぐらいの文字列10個で90ミリセクぐらい増加する。
文字描画
ここで文字列おせーおせー、ってうるさい奴らってさあ、 Direct3D.Font(ID3DXFont)の速度じゃ満足できないってこと? これは内部でGDIで描画→コピーを繰り返してるから、 確かに速度はあまり出ないけど、 バージョンが細かく上がるたびに結構速くなってる。 んが、Spriteと共にインタフェイスが変わりまくるから、有用な資料が少ない。
あれだろ、2次元の画面に文字表示したいんでなくてポリゴンと一緒に3次元で表示したいってことだろ。
メモリBmpから作ったテクスチャの透過職を指定したいんですがどうやったらいいんでしょうか? TextureLoder.FromFileだと引数で指定できるようですが、FromBMPからの場合後から指定するやり方がわかりません。 それらしいメソッドも見当たりません。
>>23 透過職(´,_ゝ`)プッ
Bitmapのアルファ成分を活用するんじゃだめなの?
Bitmapにアルファ付きPNGをロード→FromBmpでやってみたが、普通に行けるんだが。
>>24 字間違えて悪かったな。ヽ(`Д´)ノウワァァン
んーとGDI+でbmpに描画してそれをテクスチャにしようと思ったんだけど、考えてみりゃそのときにアルファ値つけて描画できるのかな?ん出それ読み込めばアルファ値つきテクスチャになるのかな?その辺よくわかってません。ためしてみます。
>>25 ん出それ (´,_ゝ`)プッ
> 考えてみりゃそのときにアルファ値つけて描画できるのかな?
できる
> ん出それ読み込めばアルファ値つきテクスチャになるのかな?
なる
分かってる分かってないじゃなくて、ちょっと試してみれば確認できるだろ・・・
つかアホだろお前
よいお年(´,_ゝ`)ヲッ
今年こそまともな議論がされますように
誰か作った面白いやつさらしてくれ できればツール系
>>29 前スレの780氏みたいなのが多ければ、ちょっとはまともになるかもな。
>>29 みたいなのばっかだとクソスレ確実だな。
ゲ製作みたいに全ソースを晒す文化ってこの板にはないよね。
ゲ製作にもないような気がする・・・
高速な文字列表示できました。お騒がせして申し訳ありませんでした。 しかしながらこのすれは2%ぐらいしか役立ちませんでした。 なんつーかもう・・・ とったやり方 一枚のテクスチャに複数文字割り当てて表示。数百文字列でもパフォーマンス十分
>一枚のテクスチャに複数文字割り当てて表示 つーか普通だろう。 誰でもやってるし、サンプルのフレームワークでもやってる。 一人で正月から騒いでんじゃねぇよ。
当然やっているであろう手段をやってなかったのか。 こりゃ一本とられたな。
当たり前なら最初から教えろボケ。こちとら初心者なんだよ だから引きこもりプログラマなんだよお前ら
正月早々おいしいやつらだなおい
>>37 サンプルでも堂々とやってるから、当然見てるものだと思ってたよ。
サンプルくらいちゃんと見てから質問しまちょうね。
>>39 サンプルでやってんのも文字の貼り付けなの?見てないから知らんが。
一枚のテクスチャから貼り付ける基本のことを言ってるんでなくてテクスチャでやるしかない?ことの指摘を誰もしなかったこといってんじゃねーの?
D3DXFontのこと説明して悦に入ってるやつもいたしな。
情報を小出しにされてもなあ……
分からない分からないって人に聞いてばかりで自分では何も試そうとシナい。 自覚してるのかもしれないが無能だからそれすらできない。 挙句の果てにムシャクシャして他人を罵倒する
あほか、いろいろ試してんだよ。お前と一緒にするな このスレの住人が無能の高慢ちきぞろいだから罵倒してるんだろ
>>42 もちろん、そんな奴らばっかりではないが、
>>43 に代表されるような、どうしようもない無能が多いことも事実だな。
おまいもなー
なんか煽り耐性低いよな。質問する奴はこれから要トリップにして、 トリップ無い質問は完全無視という文化が必要だ。
もうその辺の話はいいよ
じぶんである図形をあらわすクラスを作ったんだけど、そのくらすごとにVertexBuffer を持つのは作法悪いのか? まとめてひとつのVertexBufferでもつべき?
別にいいんじゃねーの? それでわかりやすいってなら特に問題ないと思うが ただ、表示する図形が3種類くらいしかないのに 膨大な数のクラスのインスタンスそれぞれが頂点バッファ持ってるんだとしたら メモリの効率はいくないよな そいう場合は1つにまとめて各クラスで共有するようにすれ
50 :
デフォルトの名無しさん :05/01/05 11:05:33
それは、メモリ量の効率のことで計算速度のほうは問題ないということでしょうか? パイプラインの仕組みがよくわかってないのですが、SetStreamをすることで内部的にどうなってるのか見当つかずにいます。
各インスタンスの頂点バッファでも 共通の頂点バッファからでも SetStreamの回数が同じなら 速度的にあまりかわりはないような気ガス 共通の頂点バッファをSetStreamして描画*1000=245ms 1000のインスタンスの頂点バッファをSetStreamして描画=268ms 同じ図形を描画するときには いちいちSetStreamをしないように細工すると いくらか早くなった気ガス まぁ簡単なサンプル作ってためして美空ひばり テスト結果はここに貼ってくれると有意義なスレになるであろう
確かCOM呼び出しをいかに減らすかが高速化の鍵だったような。 DrawPrimitiveって1回の呼び出しで500プリミティブだか1000プリミティブだかに 最適化されてたという話を昔聞いたことがあるが 今はドライバもVGAもPC自体も色々変わったし数値も大分変わるだろうね
> 確かCOM呼び出しをいかに減らすかが高速化の鍵だったような。 そんな鍵はない。
それを「COM呼び出し」と表現してしまうのはなんか違うだろう。
独自用語で頓珍漢なことをいう馬鹿はどこにでもいるが、COM呼び出しどころか、 ポリゴンとプリミティブを混同している時点で救いようがない大馬鹿。
カリスマ、トムたんキター
>>57 MCS (Microsoft Consulting Services) ってなに?
60 :
デフォルトの名無しさん :05/01/06 23:38:29
ゲーム等で地形MAPのような巨大なモデル(約1000万ポリゴン)を読み込み表示させたいのですが モデルのすべてを表示させるのはあまりにも時間がかるので可視部分だけ表示させたいと思います。 それで質問なのですが 視点が変わり可視部分のポリゴンを描画するとき、その都度新たにインデックスバッファとバーテクスバッファを 毎フレーム作成しDrawPrimitiveする必要があるのでしょうか? (つまり毎フレーム、可視部分のポリゴンのみで新規にモデルを作成するのだろうかということ) それとも巨大なモデル自身が可視部分のポリゴンだけを表示し、あとは表示しないようにしているのでしょうか?
>>60 そんなの、お前の技量次第だろ。
やり方はいくらでもある。
描画速度とかクオリティを見比べながら、
自分が作りたいものに近づくようにいろいろ試行錯誤してみればいいんじゃないの
適当な大きさに分けて、まず簡易クリッピングしる!
>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の違いもよくわかりません。 どうすればいいでしょうか?
再生できないMP3の条件がわかりました。 どうやらID3V2タグのサイズ指定がおかしい奴は再生できないようです。 具体的にいうと、ID3V2タグのサイズをXとしたときファイルの先頭からX+10番目のアドレスから 曲本体のデータが始まっていない場合エラーになるようです でも、普通のMP3プレーヤーではサイズ指定がおかしくても普通に再生できます サイズ指定の狂った奴でも再生できるようにするにはどうすればよいでしょうか? なるべく、MP3ファイルの方はいじらないようにしたいのですが・・・
とりあえず、巨大なモデルを空間分割し、ゲーム開始前にボクセル毎にモデルを作成することにしました。 この時2個以上のボクセルにまたがってるポリゴンはloose octree的な考え方で対処します。 これでバーテクスバッファを毎フレーム作成するような無駄はなくなルト思います。
あ、そう。
>>67 無駄な事書くなら、
無難に情報量の多いC++でやれよw
一般的な文言を鵜呑みにして他人をも洗脳しようとする
>>1-69 の方がよっぽどクズ。
いろんな系統のプログラムで測定してみたが、
俺の環境ではManagedによるパフォーマンス低下は大体0〜15%。
当たり前のことだが、GPUよりCPUを酷使するプログラムでは
パフォーマンスはネイティブに比べ大きく低下する。
逆にパフォーマンスがほぼGPUでの処理のみに依存しているようなプログラムでは、
体感的にはもちろん、数値的な差もほとんど確認できない。
ただし、MDXが提供するクラスの中には、単なる状態取得プロパティ・メソッドに見せかけて、
実は呼ばれる度にオブジェクトを新規に確保→コピーを繰り返すという、なんとも迷惑なのがかなり多くある。
また最近のバージョンでは減ってきたとはいえ、
>>755 みたいなバグが未だ潜んでいる可能性は大いにある。
Managedでパフォーマンスを重視するなら、ネイティブでの開発経験はもちろん、
Managedメソッドとそれに対応するネイティブメソッドとの関係を詳細に把握しておくことが必要。
逆にManagedで開発するメリットとしては、やはり圧倒的な開発効率がある。
.NET Frameworkが提供する豊富なライブラリを利用できる上、
対象の説明まで表示してくれるインテリセンスなどIDEのサポートも非常に便利。
上では欠点ばかり書いてしまったが、
MDXのクラスはManagedの流儀に併せてきれいに再構成されているし、
ほとんどのクラスがMarshalByRefObjectから派生しておりAOP的なプログラミングも可能。
何にでも言える事だが、そのデメリットを充分に理解しているのなら、
そのメリットを生かすためにそれを使うことには躊躇しなくてもよい。
俺はもちろんネイティブDirectXも使うし、Managed DirectXもありがたく使わせてもらっている。
> いろんな系統のプログラムで測定してみたが、 >俺の環境ではManagedによるパフォーマンス低下は大体0〜15%。 両方同じように作ってあるのはSDKのサンプルぐらいだが、 >大体0〜15%。 この範囲からは完全に外れた数値が出ている。 ということは別のプログラムを用意したと言うことなのだろうから、 そのいろいろなプログラムとやらを具体的に提示してみろ。 とりあえず、逃げるなよ。
>>71 MS公式アナウンスに噛み付いてるのはおまいさんなんだから
一応は参考値ぐらい出すのが筋じゃないか?
参考値も何も、SDKのサンプルを実行すれば確認できるだろう。 C#とVC版で0%は皆無、最悪なものになるとFPSは半分になる。 で、まずは0%だったものを提示してみろ。 いつまでも言い訳をこねて逃げ回るなよ。
なんで怒ってんだ?カルシウム取れよ。
どれもFPSが半分になんてならないけどなぁ
>>71 コピペにレスご苦労さん。
ところで、どのサンプルで試してどのくらいの数値が出た?
ちなみにDecemberだとManagedで遅くなる、都合の悪いサンプルは添付されなくなっている。
カルシウムはマグネシウムと一緒に摂らないと意味がないよ 野菜食っても肉とらないのと同じくらい無意味
79 :
デフォルトの名無しさん :05/01/08 19:06:06
>>77 じゃぁ October でも Summer でもいいから
劇的に差がつくやつを具体的にどれか挙げてくれよ
>>70 の文章は何度コピペされれば気が済むんだ。もう見飽きたんだが。
>71
>この範囲からは完全に外れた数値が出ている。
「GPUよりCPUを酷使するプログラムでは パフォーマンスはネイティブに比べ大きく低下する」
って書いてるじゃん
どんなにGPU側の処理が重かろうと、CPUが処理を行う限り0%はあり得ないはずだが、 どうやったら0%になるの?
>>82 正真正銘のバカだな。何が「ありえないはず」だよ。自分ではちょっとでもやってみたの?
あるフレーム描画で、CPU側の処理よりGPU側の処理の方が時間がかかったら、
そのフレームのプレゼンテーションが終わるまで、CPUは待たされることになる。
結果、フレームレートはGPU側の処理のみに依存する。
念のため言っとくと、VSYNCどーのこーのは関係ないぞ。
例になるかは分からんが、俺の環境(しょぼい)では
画面のクリアだけを行うループでは、どっちでも約4010fps、
クリアして疾走Tinyのみを表示するループでは、どっちでも約1560fpsで、全く変わらず。
ごめん、俺大嘘書いてるわ。
とりあえず
>>83 はスルーしてください。
あ、計測結果は本当で間違いないです。
おまいら頭良さそうだから聞くけど
>>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: これらの質問に答えるには時間がかかってくださってありがとうございます!
どの辺に改善の余地が有ると思います? APIの明快さかな。まだ一部に残るAPIの難解だからね。ネイティブAPIよりは明快になったんだけど。 Whidbey(VS2005)で、搭載される新機能例えばジェネリクスなどは全く考慮されてないからね。 近い将来それらの問題を扱うことが私の計画です。
Decemberを入れて、参照を最新のものに変えたら、 さっきまで動いてた自作のXファイルプレイヤーが 読み込みで失敗するようになってしまった。 どこで止まるのかよくわからなくて、最新のtinyプレイヤーサンプルと比較しながら 調べてます。 同じ経験の方います?
そういう場合、大抵はグラボのドライバを最新のものに更新すれば直ったりする。
C#の本ヌレってどこ?
>>90 レストンクス。ダメですた。
Mesh.LoadHierarchyFromFileの引数の、
AllocateHierarchy継承クラス内の
コールバック関数のCreateMeshContainerが呼ばれた後に
エラーが出るようです。
検索して同じ症例を探しても見つからなくて、サンプルと
見比べても(全く同じでは無い)問題無いと思うんだけど、
ずっと調べてるけどわからない・・・
ちなみに
心当たりある方よろしくお願いします。
どう調べたらもわからない状態なんで寝て明日考えますorz
ちなみに自作のものはCutting Edgeを見ながら 作ったものです。明日そのままのソースで問題無いか 調べてみよう
どんなエラーが出るか書いてくれれば、解答は出ないかもしれないけどより有用なレスになると思う
>>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
削ったんならどこかにそーそあげて見れ
スタックトレースくらい書けよ
スタックトレースを調べて(↓)、出力してみました。 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
>>98 意味がわからないというのは「スタックトレース」という単語のことか?
それともスタックトレースを書く理由か?
101 :
98 :05/01/10 20:13:23
>>100 すみません単語の意味も書く理由もわかりません。
Helpで調べて
>>99 のように出力されました。
でもこれからどう原因を突き止めるのかわかりません。
メソッドの呼び出し履歴
まっさらの状態からDirectXSDKインスコする場合 8月 10月 11月の順に入れればいいんでしょうか?
マジックアイ見たいな立体に見えるやる作って動かしてみたが動画だと著しく疲れるな・・・・
IndicatedConnectAbortedイベントってどういう時に使うのよ? というかC# + DirectPlayについて言及しているサイトって無いのか?
DirectPlayってもう次で消えるんでしょ?
便利なのになぜ削除されるんだろ
いままさにDirectPlayの勉強してるところなのに シネと言われたような気分だ・・ Winそけっとで通信しろと? それとも新たなライブラリでも作るんか? それとボイスチャットはどうなるのだね あれだけのためにDirectPlay使っておったのに
Indigoになるんだろ
Direct3Dで、 device.Dispose(); を呼ぶと2分近く待たされるようになったんですが 何か「これじゃね?」という事例ありませんでしょうかorz 色々いじってるもんで、原因の切り分けがしづらくて困ってます Athlon64+RADEON9600XTのマシンでも、ノートマシンでも発症してます
SetPeerInformationメソッドを呼び出すとInvalidFlagsExceptionを吐くんだが、 PlayerInformationってのは接続後には変更できないのか?
>113 ラデ9600Proだがそんな事象はデテナイ オタフクソース晒すなら検証するが?
>>115 ソースを大きくいじる前は起こってなかったので
99%ソースがウンチョスなんだと思いますorz
Dispose()って実際どんな処理してるんでしょ?
確保して解放されてないメッシュとかの解放も
ここでやってるんでしょうか?
こういう情報はどうやって調べていいのかもわからないので困ります。。。
>>116 ManagedCodeの中身が知りたいなら.NET Reflectorでも使えば
Mesh Intersectは内部でどんなロジックで動いてるんでしょう? またMeshとMeshの接触はどう計算すればいいんでしょう?
>>119 つりじゃねーよ。それともそんなにへんなこと聞いてるのか?
>>118 一行目は真上に書いてある。
二行目は色んなところで散々ガイシュツ。
>>121 通信は.NET frameworkで面倒みるからDirectPlay廃止!
と言ってるようにみえるのは邪推かな。
VertexBuferとかいじったときにブルースクリーン出るぞ( ゚Д゚)ゴルァ!! 恐ろしくてデバッグできん・・・orz
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も試しました。
vbがnullだって怒られるの?
解決しました。 vbがnullではなく中のオブジェクト取得(よくわからんが配列生成呼び出し履歴で落ちてた)で出ていたようです。 CustomVertex.PositionNormal[] verts = (CustomVertex.PositionNormal[]) vb.Lock(0,typeof(CustomVertex.PositionNormal), LockFlags.NoDirtyUpdate,8); 頂点サイズを指定することで解決しました。
座標変換で質問です。 スクリーン座標を得るのに次のようなコードを書いたのですが中心から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); }
ちなみにおまいらどのぐらいパフォーマンス出るんですか? うちの環境では8500ぐらいのMesh.BOxを表示しただけで3fpsぐらいになりますが。 1.5GCeleGEForce2です
>>129 コード置いといてくれれば図る人いると思うけど
わざわざ調べたりするのは酔狂な人だけだと思う
いや大体どのぐらい出るかの目安を知りたかったので・・・
Microsoft.DirectX.dllのバージョンについてごちゃごちゃ調べてたんだが、 「Runtime Information」を使用すると[5.04.0000.2904]と出るのに、 C:\windows\assembly\内のMicrosoft.DirectX.dllアセンブリのバージョンは[1.0.2902.0]ってなってたんだ。 これって不味くない?
C#でDirectXのバージョンを取得するコードってどう書くの?
134 :
デフォルトの名無しさん :05/01/24 16:19:20
バージョンとアセンブリは全く違う。 勘違い甚だしいこと極まりないな。
半透明なめっしゅってどうかいたらいいんでしょう?
136 :
デフォルトの名無しさん :05/01/24 21:37:39
SetAlpha(1.0f); DrawOpaqueMesh(); SetAlpha(0.5f); DrawTransparentMesh();
>>132 Runtime Informationって何ですか?何を実行すれば見られるんでしょうか?
ここ最近の厨房様に共通する特徴でいらっしゃいます。 他スレでもここ数日だけで単純にググればすぐ分かるようなご質問を、畏れ多くても 何点か指摘させていただきました。
140 :
デフォルトの名無しさん :05/01/28 15:24:18
海外サイトでPurple#という3Dライブラリを発見したのですが、このライブラリを 使ってる人いますか? それと、このライブラリを紹介している日本語サイトがあったら教えてください。
>>140 英語わからねぇなら無理して使うなよ背伸び厨
使っていません
>>141 君は怒りっぱなしだな。
C丼の使いすぎじゃないのか?
中華丼?
145 :
デフォルトの名無しさん :05/02/02 17:16:23
directSoundで、再生の早さを変えず音の高さを変えるにはどうすれば? Frequencyだと、早さと音が変わってしまう。 どなたか教えて下さいm(_ _;)m
146 :
デフォルトの名無しさん :05/02/02 19:04:59
スプライト使って立ち絵表示するとき、別のグレースケール画像を アルファマスクにして部分的な半透明を施す方法ありますか? 『マスク画像の黒⇒0%、白⇒100%、灰色⇒半透明』な感じで
Sprite.Draw 時にマスク、じゃなくて Texture に直接加工を施すのか 『Texture.LockRectangle ⇒ unsafe カリカリ』で良いの?
ありますか?って質問だから実に正しい回答だと思う
きもっ
ひさしぶりにきてみたら きもいすれになってしまってるのな おまいらもっとなかよくしる
C#←なんて読むの?
しーしゃーぷ とよみます。
きもっ
C丼→何て読むの?
たね とよみます。
きもっ
くそすれさげ
きもっ
05/02/16 02:28:12
しつもーん VisualStudio.NET2003 が既にインストールされている環境で DirectXSDK(Oct2004)をインストールしたのですが、 プロジェクト作成時のテンプレートにDirectX9 C# Wizardのアイコンが出てきません。 バージョン情報を見ると、「セットアップされている製品」の中に DirectX extensions for Visual Studio .NET と表示されているので一応SDKはインストールされているはずなのですが。。。 なぜでしょうか。
おやまあ、お客さんだよ珍しい。
>>168 Oct2004だとWizard無くなってた気がする。
DXSDKのサンプルブラウザからEmptyProjectを入れるか古いWizardを流用配置するかのどっちか。
なるほど、Wizardは古いバージョンのみだったんですね〜。 早速サンプルブラウザからEmptyProjectを含めていろいろインストールしてみたのですが、 VS.NETでビルドすると、実行時に 「オブジェクト参照がオブジェクトインスタンスに設定されていません。」 と出てしまいます。。 サンプルブラウザの「Executable」からはどれを実行しても正しく動作するのですが。 どういうこっちゃ。。。
>>171 画像なんかのリソースを持ってきてないとか・・・・・・んなわけないか
>>171 どこでエラーが起こっているか書こうよ・・・
すみません。 エラーの詳細は、 実行時で 「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 です。
特に何のエラーもなく実行できるが… emptyproject.cs:line 433 というとこれかね? sampleFramework.CreateDevice( 0, true, Framework.DefaultSizeWidth, Framework.DefaultSizeHeight, sample); ソースコードが明示されてなかったからわざわざEmptyProjectつくっちゃったよ・・・
176 :
168 :05/03/12 16:29:08
具体的な箇所は、、 common\dxmutmisc.cs 822: e.OnResetDevice(); 832: e.OnLostDevice(); common\dxmut.cs 541: ChangeDevice(settings, null, false); 2092: throw; 2744-45: // Call the resource cache device reset function ResourceCache.GetGlobalInstance().OnResetDevice(device); 2771付近: finally { if (!success) Cleanup3DEnvironment(true); } emptyproject.cs 433: sampleFramework.CreateDevice( 0, true, Framework.DefaultSizeWidth, Framework.DefaultSizeHeight, sample); でつ・・
複数個所で同時にエラーが起こっているような物の言い方だな
World WindがMDXの牽引役になってくれるかもしれん。 うちらも続かんと。
>>178 検索した。凄いソフトが出てきたなおぃw
180 :
デフォルトの名無しさん :05/03/16 22:37:00
>>181 無限ループ逝ってくる。
WW、微妙にバージョンアップしてるね。
.net + DirectX で作ったソフトを公開したいんだけど、 .net FrameworkとDirectXを入れてもらえば Xp、2K、Me、98、95 で動くかな? 他にユーザーに用意してもらう事はある?
>>182 用意するのは次の3つ
.NET Framework
DirectX
Managed DirectX
このうち、一番下が難所。コレを入れるのに貴方はもう一回質問するだろう。
あと、多分 95 はサポート外
184 :
182 :2005/03/23(水) 20:02:28
>>183 インストーラー作ればOKかな?
インストールフォルダにdllがインストールされるけど
MDXって配布OKだっけ? ちなみに単にDLL置くだけじゃ動かない・・・。
Managed DirectX はインストーラー作ったときに 組み込まれるdllだけじゃダメなの? こればっかりは開発者環境では確認出来ない・・・
なんかManaged DirectXつかったフリーソフトあったら 紹介して参考にしたいから。
>>188 例えば
>>178 とか?
ところで、MDX は単なるラッパーなんだから、独自に DirectX のラッパー作っちゃえば
MDX 配布とか関係ないよね
みんなやらないのは、単に面倒だから?
MDXの登場で.NET言語からDirectXを利用しやすくなったのに、 独自に作るのは意味が無い気がする。
>>189 > 独自のラッパー
巨大でややこしいインストーラーを避けたいがために、
どうせ自分専用だと割り切って作るなら、選択肢としてはあり得るかと思います。
思ってはいるのですが…
・Managed C++(次版では C++/CLI)を覚えること
・DirectX のラッパーライブラリを作ること自体、多少厄介な作業であること
・MDX という「主流」から離れること
・将来、配布問題が解決された暁には、自作ライブラリなど一瞬で粉みじんになること
・そこまでして .NET に浸りたいのですか → もう後戻りできないよ orz
…やはり素人にはお勧めできません。
大丈夫だよ189はプロだから
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(); ---------------------------------------------------- この件につきまして、何かご存知の方がいっらっしゃれば、 ご教授、お助けください。
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(); ---------------------------------------------------- この件につきまして、何かご存知の方がいっらっしゃれば、 ご教授、お助けください。
ティアリングが出る原因は知らないけど、結局V-Syncに同期しているのだから、 アプリの速度はリフレッシュレートに支配されない? ちなみにポーリングでループするのは、お勧めできない。
197 :
デフォルトの名無しさん :2005/04/06(水) 01:47:17
>>195 同期のタイミングを待っている間、他の処理をしようという目論みです。
presentParams.PresentationInterval=PresentInterval.One;
で、
device.Present();
を使うと、同期を取る間帰ってこないので。
同期をとらないと、ティアリングが発生します。
>ちなみにポーリングでループするのは、お勧めできない。
これは例です。
本来はこんなことしません。
(実はしてたりして)
198 :
デフォルトの名無しさん :2005/04/07(木) 22:01:10
ちなみにマルチは、お勧めできない。 つーか回答者に失礼すぎ。てかコピペ? GDNJか2chかどっちかはっきりさせろ
GDNJとかよ。勇気あんな。
200 :
デフォルトの名無しさん :2005/04/09(土) 02:41:59
くっちゃね
201 :
デフォルトの名無しさん :2005/04/09(土) 18:25:38
.netの新規プロジェクトにDirectXのテンプレートがありません。 どうしたら表示されますか?
>>201 [スタート]→[プログラム]→[Microsoft DirectX 9.0 SDK Update (リリース年月)]→[DirectX Sample Browser]→[EmptyProject]→[Install Project]
2005Aprilには日本語ドキュメントついてないの? 2004SummerにはUnzipしたときに取り出せるらしいが。
Unzipした時に無かったら2004Octで我慢するしかないんじゃね?
そうする
206 :
デフォルトの名無しさん :2005/04/09(土) 23:22:55
くっちゃね
C++ の D3DXVec3Project に相当する関数は C#にはアリマセンカ?
というか誰も居ないのかここ・・ 他で質問シテキマス
210 :
デフォルトの名無しさん :2005/04/29(金) 01:23:34
C#.NET+Managed DirectXでシェーダープログラムを組んでるんですが、「デバッグ」→「Direct3D」→「Start with Direct3D Debugging」をしてみてもコンパイルをするのみで実行しません。 皆さん普通にシェーダーデバッグできてますか? 情報知っている方どうぞ教えてください。 設定その他はしてあり、C++の環境ではシェーダーデバッグに入れます。
マルチイクナイと説教したいが 質問に答えられないので寝る
>>210 デバッグはうちも出来んよ。C# では何故か。
普通に実行して、コンソールとかにログ吐けばよろし。
DrawTextで "MS 明朝"のサイズ20で"テストテスト"と表示する場合、 実際何px×何pxの描画サイズで表示されるのかを調べる方法を教えてください。
DirectXじゃないけど、描画されるテキストサイズはこんな感じで調べてる(返り値はfloat) graphics.MeasureString("テストテスト",font).Width graphics.MeasureString("テストテスト",font).Height
>>214 ありがとうございます。
試してみます。
>>215 もう居ないかな〜
最新版だと、Direct3D.Font.MeasureString が使えます (何故か返り値が Rectangle だけど)
>>216 ありがとうございます。
とても役に立ちますね。コレ。
フン・・・無能ばかりで笑えるぜ
219 :
デフォルトの名無しさん :2005/05/07(土) 15:46:52
ここは218がどれだけ有能か検討するスレになりました
218は人工無能
221 :
デフォルトの名無しさん :2005/05/08(日) 10:21:10
\ ∩─ー、 \/ ● 、_ `ヽ / \( ● ● |つ | X_入__ノ ミ 、 (_/ ノ \___ノ゙ / 丶' ⌒ヽ::: / ヽ / /::: / /へ ヘ/ /::: / \ ヾミ /|::: (__/| \___ノ/:::
const int sec = 1; でsecに1足したいんですけど sec = sec + 1じゃだめなんですか??
226 :
デフォルトの名無しさん :2005/05/11(水) 16:34:06
>>225 それじゃだめ。
System.Threading.Interlocked.Increment(ref sec);
が正解
sec の値に 1 足すだけだったら 「sec + 1」 でできますよー
>>225 const int sec = 1;
~~~~~
そもそも定数に1は足せないんじゃないか?
229 :
デフォルトの名無しさん :2005/05/11(水) 21:50:57
ArrayList便利すぎ キャラクターの管理に最適 だと思わんかおまいら
>>230 動的に生成消滅が発生するようなオブジェクトに、ArrayListはないだろう・・・中身は単なるstd::vector相当だよ。
といっても.NET Frameworkにはstd::listに相当するもんが標準では存在しないけど。
てかこれも釣りかorz
Manageのドキュメント読んだけど、DirectSoundでストーリームバッファを扱うのがよくわからなくて、 Manageのサンプルをあさったら、全部静的バッファ?だった C++のドキュメント読めってことですかね
>>231 俺はArrayList使ってるが何も不便は感じていない。
>>233 別に不便とか便利とか言ってないでしょ。
中身はvectorなんだから、格納するオブジェクトの数が増えてくると極端に速度が低下するのは目に見えてるだろ。
挿入・削除の速度とメモリ効率のバランスを考えると、dequeに相当するコレクションは最低限欲しいところだが。
てかまたこれも釣りかorz
>>232 >Manage
>ストーリーム
C++のドキュメントじゃなくて、まずは英語から勉強しまちょーね
個人がチクチク作るゲームならArrayListで十分だろ dequeに相当するコレクションとかつまんないとこまでこだわるなら C++で作るべきだろ 釣りじゃないからな
ActiveBasicでDirectX
N88BasicでDirectMaX
>>234 今作っているものでは特に速度面での問題は無い。
勝手に釣り扱いするおまえの脳みそにがっかりだ。
喧嘩しかできないのか低脳は
低脳&初心者なら釣りではなく素で言っていると思われ
なぜ 241 はこんなに喧嘩腰なんですか
挿入・削除の速度とメモリ効率のバランスを考えるとArrayListは使えない だがdequeに相当するコレクションがないので改良の余地はない なんて論議の価値もない話題で〆て低脳とか初心者とか釣りとか言ってる おまいみたいな香具師がいるとスレが荒れるんだよ 偉そうにウンチクしてる暇があったら代替案くらい出せよ おまいの作ったArrayListじゃとても実現できないような 素晴らしいオブジェクト管理をするゲームでもいいぞ
そろそろこのスレも潮時だな
スルーも出来ないガキが多すぎ
…とスルー出来なかったガキが申しております。
敬語も正しく使えないガキが多すぎ
>>249 「申す」には謙譲語と丁寧語の両方の意味があるんだよ。ヴォケ
敬語は将来、滅びる。
このスレも将来、滅びる。
254 :
デフォルトの名無しさん :2005/05/24(火) 15:11:11
影が黒ペンキを塗りまくったように黒いんですが なんとかなりませんか?
どういう風にしたいのですか?
>>255 影が黒ペンキを塗りまくったように黒くないようにしたいんです
影が赤ペンキを塗りまくったように赤くなりました!ありがとうございます。
一生やってろ
単なる赤ではやっぱり影っぽくなかったので、LiSPSMを試してみたら、 遠景でも近景でもエイリアシングがなくなってシーン全体にきれいにぼけた影が落とせました!ありがとうございます。
261 :
デフォルトの名無しさん :2005/05/27(金) 22:37:13
ロングホーンが出たら、ダイレクトXを使わなくても描画スピードが出るってことだよね
内部ではDirectX使ってんじゃねーの?
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#は使わないよね
> ゲーム開発では必要だろうけど、C#は使わないよね imigawakarann
DirectXですぐゲームに結び付けるアフォ多いよな
ぶっちゃけ DirectX1.0 は GameSDK の名前で発表されてたからな
269 :
デフォルトの名無しさん :2005/05/30(月) 22:46:09
ぶっちゃけ DirectX 10 は WGF なわけだが、 これは Windows Game Foundation じゃなく、ここはしっかりと Windows Graphics Foundation だ。 間違えるなよ。
DirectX で良いよ。その方が呼びやすいし
271 :
デフォルトの名無しさん :2005/06/04(土) 12:17:00
AVALONとの関係は?
exp(AVALON) = WGF
WGFってプロレス?
WGFって何さ
チャットみたいに、クライアント領域内に直接入力文字を描画させたいと思っているのですが、 半角英数小文字大文字、! ?などの記号等を キー入力に応じて拾わせたいのですが、どんなやり方がありますか? Shift + 1 が押されたら!とか、 ハードコーディング的にやるのでしょうか。 CapsLockの状態も考慮してやるには、ネイティブを使う必要がありますかね。
普通にKeyイベントで検証しろや
>>277 おお ありがとうです。
KeyPressEventHandler使って実現させました。
こんなに簡単なのに気づかず粘ってたorz
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年くらい後にワード文書に、マクロでポリゴンを自由に挿入できるようになるのかもね?
初心者でもポリゴン? そんなのどうでもいいよ まんどくさいマネージドDXの インす子しなくてよくなるほうが超重要です
>>282 ポリゴンどころかインストールもできない程の初心者だ
ってことが言いたいのですか?
>>283 「僕のコンピュータにはDirectXは入ってるはずなのにあなたのソフトが動きません。
あと、僕のコンピュータがクリックして困ってます」といったような初心者の苦情の処理は苦痛だということだ。
285 :
デフォルトの名無しさん :2005/06/28(火) 19:29:54
Inputのサンプルで キーボードのデバイスを作った場合は Unacquireで開放してるけど マウスの場合は無いんだけど いらないの?
いらないかと 心配ならマウスのほうはイベントで殺れ
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++のプログラムでは半透明になりました。 もう、何がなにやら・・・ 完全に手詰まり状態なので、お知恵を拝借したくお願いします。
289 :
287 :2005/07/02(土) 06:23:29
>>288 うは、なんじゃそりゃ。
頂いたリンク先にある通りに変更した所、無事半透明に成功しました。
というわけで解決しました。
どうもありがとうございました。
(´・ω・`)あれ?じゃぁなんであのサンプルソースだとダメだったんだろう・・・?
290 :
デフォルトの名無しさん :2005/07/06(水) 13:11:49
もし、ロングホーンの時代になったら、 GDI+のコードだけで ダイレクトxの画像描画ができるような時代になってたとしたら、、、 今必死でマネージドダイレクトxの初期化やら設定やらを勉強してるのが 一切無駄になる可能性もあるってことだよね。 うれしいけど、いやんな話だね。 みんなはその辺をさ、どう思って勉強してるのさ!?
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で結構です。
>>293 内積を計算するだよ
(x1,y1,z1) (x2,y2,z2) があるとき
cos(θ)=x1*x2+y1*y2+z1*z2
>>294 おっと絶対値で割るの忘れてた
cos(θ)=x1*x2+y1*y2+z1*z2 / { √(x1*x1+y1*x1+z1*z1) * √(x2*x2+y2*x2+z2*z2) }
296 :
293 :2005/07/06(水) 22:30:19
ありがとうございます。 内積で求まるのは、aとbのなく度ですよね。 いま、aからbへMeshシリンダで線を引きたいと思っています。 シリンダをどのように回転させればいいのかで迷っています。 ご教授をお願いします。
>>296 うーん、良く分からんです、もっと正確に書いてもらえれば答えられるかもしれませんです。
a b へ回転するような行列を作りたいというなら以下の方法ですかね。
a b の内積を計算して cos θ を求める
a b の外積を計算して sin θ と回転軸を求める
これから行列を作る。
適当な軸でもって回転する行列は
単位回転軸のテンソル積行列に cos θ をかけたものを単位行列から引く
これに外積計算を行うことの出来る行列を加算するといった感じになります。
必要なら式書きます。
299 :
293 :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); とんでもない間違いしているような気もしますが・・・・。 どこがおかしいのかお教えください。
>>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
あ、思いっきりまちがい >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 ) ; 以下一緒ね。
>>299 さらに良く見てみると a が0ベクトルになっちょりますが、こりゃよろしいんで?
303 :
293 :2005/07/07(木) 22:31:30
何度もすみません。
それっぽくは動きます。値によって90度ずつズレたりもします。
>>302 ダメですね。0ベクトルの時の対象法はありますか?
ベクトルで頭を悩ましています。なにか参考になるベクトルの本やWebがありましたら
お教えください。
304 :
293 :2005/07/08(金) 11:57:25
すみません。問題なく動きました。 こちら側の些細なミスでした。すみませんでした。 なんとか動くことができました。ありがとうございました。
306 :
デフォルトの名無しさん :2005/07/08(金) 17:30:48
C#くずだー directshow C# sdkは どこだーー
そんなもんねえよ。
308 :
デフォルトの名無しさん :2005/07/08(金) 23:36:13
>>306 それはC#くずだーではなく.netくずだーが正しい。
まあdirectshow.netがあれば困らんだろ。
あれは普通のDirectShowを知らないと使えないだろ
>directshow.net こんなもんあるの?
313 :
デフォルトの名無しさん :2005/07/10(日) 03:49:42
>>313 この本の直前として読むなら、高校の教科書がいいよん、
中学高校の教科書は結構あなどれないよ、久しぶりにみたりすると、その丁寧さに驚きますです。
315 :
デフォルトの名無しさん :2005/07/10(日) 04:56:26
direct3Dでのアニメーションを背景にし、最前面に円を表示したいのですが詰まっています 円は任意の大きさに変更可能であること、塗りつぶししないこと この二つが満たされていれば、どの様な方法でも構いません これまでに、 Meshの円柱を短くして表示(塗りつぶされている&背景が消えてしまって失敗) spriteでテクスチャを使って表示(大きさ変更が融通効かずに失敗) 円だけGDIでDrawEllipseを使って表示(背景・円共に点滅してしまって失敗) と試してきましたが、どれもうまく行きません 見た目はGDIを使った円が、最も理想的な形だったのですが・・・ direct3Dを使って、ただ単純な円を描くにはどの様にすれば良いのでしょうか 無知すぎる質問かもしれませんが、何とぞご教授下さい
>>316 ビルボード表示すりゃいいんじゃねーの?
SetFVFでD3DFVF_XYZRHW指定するかD3DVERTEXELEMNT9で
D3DDECLUSAGE_POSITIONT指定してバーテックスシェーダをバイパス、
もしくは普通のポジション指定でバーテックスシェーダでw=1.0にして、
スケーリングでも何でもやればいい。
塗りつぶさないならDrawPrimitiveでプリミティブ指定をD3DPT_LINELISTか
D3DPT_LINESTRIPにしとけばおk。
>>317 出来ました・・・
ただ円を描くだけなんだから、簡単な方法があるはずだと思いこみ
一番最初にDrawPrimitiveでやる方法を除外してしまってました
横着したばっかりに、長いこと時間を無駄にorz
助言ありがとうございました!
319 :
デフォルトの名無しさん :2005/09/05(月) 00:27:46
今日ネットゲームをしようとしたらdirectx 9.0b is required!って言われました 何て意味でしょうか?
Vistaになったら.NETのパフォーマンスあがるんだろうか。 負荷負けすぐする。キツいなぁ。
参考になる文献が無さ過ぎて挫折しそうだぜ、ブラザー、、、
最初は俺も文献少なくてムリポとか思ってたけど、 仕方なくC++用の文献読んでたら、 自然とC#用に脳内変換できるようになった。
俺も資料無くて詰まり気味 やっぱC++でDirectX覚えてからの方がいいんかしら…
どのあたりで詰まってる?
ボーンアニメを切り替える時に、モーションブレンドで繋ごうとしてるんだけど それらしいサンプルも見つからないし、何していいかも解らない状態…。
C#とDirectSoundを使ってリアルタイム処理をする時、遅延はどれくらいになりますか? したいことは、外部から音を録音して、そのまま(できればエフェクトをかけて)スピーカーから再生することです。
今後非推奨となるDirectPlayって、 やっぱ今からは実装しないほうがいいんだろうか。 Indigo betaとか使えということかな。
画像を描画する際、 透過色以外の部分を一つの色で塗りつぶすには、どうすれば良いのでしょうか? 2DのRPGを作っているんですが、攻撃を受けた際、 攻撃を受けたキャラの画像に、エフェクトを掛けたいんです。
テクスチャの頂点色をその色にしておいて、 攻撃を受けたときだけテクスチャステートのColorArgument1をDiffuseにするとか。 TFactorを利用するのもあり。
>>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通りあるけど、どっち?
>>336 前者はありえるが、後者は可能性低いのが普通なんだがなんぜMSだから何しでかすか・・・
338 :
デフォルトの名無しさん :2005/09/24(土) 20:00:06
>>337 なるほど。サンクスコン。
俺が思うに、
確かにダイレクトxからは無くなるけども、
ロングホーンからはosがそもそもダイレクトxを使うので、
そもそもダイレクトxからダイレクトドローをわざわざ使う必要がなくなるだけで、
これからは普通の描画がダイレクトドローになっていくのでは?と思ってるんだけども。
結果として、確かにダイレクトxの上でのダイレクトドローは無くなると。
コンパイルできないし、コンパイルする必要も無くなると。
だが、osが普通にダイレクトドローを使うので、
今までのダイレクトドロー系アプリも、
今後の普通の描画もすべて同じように表示可能になるのでは?
DirectX9の D3D では、バックバッファのサーフェースをロックして、そこからDC(Graphics)が取れる形になっています 予想ですが、ここに全部統合する気じゃないかな? フロントバッファが直接取得できなくなってますが、今後はフロントバッファのフォーマットとバックバッファのフォーマットは違うものになってくるのではと思われます。(バックバッファのフォーマットに浮動小数点とかでてきたし) 次の DirectX10 ではいよいよマルチタスク・マルチスレッド(時分割処理等)にも対応するらしいので、 DirectX は描画エンジンというより強力な並列計算機になって行きそうな雰囲気です。 サーフェイス等リソース管理機能とサーフェイスに対する並列計算機能とフロントバッファ(ウィンドウ)へのビットブリッドに集約されるのではと予想。
クラスライブラリになってるスキンメッシュのサンプルとか無いもんだろうか。 DirectX AppWizardから継承とかされるとサッパリわかんねーよ・・・
>>340 それ俺もてこずったけど何とか実装できた。
>>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.");
なんじゃこりゃ
俺も初心者なんでサパーリだ、スマン・・・
>>342 裏山鹿
よかったらソース見せてくだせぇ
>341 >343 うちでは作業ディレクトリを、展開したSkinnedMeshCSディレクトリに したら動いた。 でもパス名に日本語が含まれているとダメっぽい。
346 :
343 :2005/09/27(火) 22:42:07
お、動いた。
>>345 ありがd
でもポリゴンのソートが豪快にバグってる気がする…
>>346 脇の下のことを言っているのなら、あれはTinyのデータが悪い。
MeshViewerでもバグる。
なんかくるくる回してると、見えちゃいけないとこが見えたりする感じ。 (顔やら首が透けて後頭部の髪の毛が見えたり、体の左側から右腕が透けて見えたり) 自作の1スキンモデルだとものすごい勢いで欠けまくる… うちの環境だけなのかな? まぁ、表示部分はサンプル結構あるみたいなんで 勉強がてら直してみるか(`・ω・´)
349 :
デフォルトの名無しさん :2005/10/08(土) 20:41:34
よし!お前らとりあえずMDXのオススメ書籍を挙げろ 何卒宜しくお願い致します。
MDXってなに?
なんでも略しゃいいってもんじゃないな
ハンガリアン記法を推奨するようなセンスだからな
略さないと打ちづらくね? Managed DirectX おもむろにモニタもキーボードも見ずに ,anaged direvtz
MSはもうハンガリアン記法でないわけだが。
358 :
デフォルトの名無しさん :2005/10/10(月) 21:37:21
>>349 初心者向けだと日経ソフトウェアでゲームつくってた号がよかったかな。
数ページしかないけど、あれで十分だろと思う。
雑誌数ページで十分とは、あまり面白くないギャグだ。
矩形のコピーさえ出来れば大抵のゲームには十分 Xファイルの表示まで出来れば作れないゲームは少ない
つれたつれた
こんなとこで鰻釣りしてないで早く寝なさい
360の作品が見てみたいもんだ。
ぜひ、ゲーム製作技術板に来てください
365 :
358 :2005/10/16(日) 17:33:04
>>359 たしかに十分ではないけど、あとはヘルプとC++の資料を読み替えろ
ということで、だってないでしょうそんな本という悲観的な
意図が含まれています。
.NET frameworkの中にDirectXが統合される日はいつですか?
367 :
デフォルトの名無しさん :2005/10/17(月) 11:13:31
あと6年くらいかと。
>>365 お前はあのヘルプを読んだことがあるのか?と小一時間・・・
英文版ヘルプですらろくすっぽ説明がなくてサンプルソースを必死で読み込まないと理解できないよ
現状C版のヘルプをみながら想像力巧みに試用してみるというのが現状だよ
ヘルプのDirectSoundのストリーム再生の説明さ、日本語も英語も間違ってるし、 SDKのサンプルプログラムにはストリーム再生するプログラムはないし。 最悪だった。
370 :
358 :2005/10/19(水) 21:07:23
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種類のアニメーションを交互に切り替えた時に、前回切り替えをしたフレームタイムから再生されてしまう…。 アニメーションを切り替えた時に、必ずアニメーションの始点から再生させるには、どうすればいいんだろ。
374 :
373 :2005/11/11(金) 17:45:57
自己解決 AnimationController.SetTrackPosition(newTrack, 0.0); で、いけました。 スレ汚し失礼
int newTrack = curTrack == 0 ? 1 : 0; ってなかなか洒落てるね
そっか。!はエラーになるんだ。
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#用の記述が見つからず困っています。 どうかよろしくお願いいたします。
初期化時のPresentParametersの設定はどうなってる?
379 :
377 :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 って弄る必要あるの?
381 :
377 :2005/11/20(日) 19:04:58
>>380 以前は弄らずにPresentInterval.Defaultでやっていたのですが
少し負荷を掛けると60FPSを割ってしまうようなので
Immediateとタイマーを使ってやっていたのですが
あんまりよくないのかな・・・?
正直あまり理解しないで使ってたり
382 :
378 :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; ちらつくのはタイマー使ってるからかもね。
383 :
377 :2005/11/21(月) 22:49:14
>>382 ダブルバッファリングに、何か処理が必要なのかと思っていたのですが
チラつくのは環境の問題なのですね。
タイマー切って、PresentInterval.Defaultでやっても改善されないので
もしかしたらモニタに問題があるかもしれません・・・(かなり古い物なので)
とりあえずモニタ買い換えるまで、このまま進めてみたいと思います。
どうもありがとうございました。
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
おまえらみたいなバカにゲームなんてつくれないさ
これはまたわかりやすい馬鹿が降ってきましたよ。
388 :
デフォルトの名無しさん :2005/11/26(土) 16:33:07
VSではなくBorlandのC#BuilderでDirectXに挑戦しようと思って いるのですが、とっかかりがわかりません。 ご存知の方教えていただければ嬉しいです。
つまりVSではやってうまくいったけど BCではDLLのリンクが出来ないという意味?
390 :
デフォルトの名無しさん :2005/11/26(土) 17:19:25
VSは持ってないんです。 今日、図書館から本を借りてきてやろうと思いましたが 内容がVSだわC++だわで最初っからつまづいてしまったので 皆さんに相談している次第です。
質問に答えるにもとっかかりがいるな
392 :
デフォルトの名無しさん :2005/11/26(土) 21:13:04
まず、アプリケーションを選択するのに VSでは[Win32 プロジェクト]の[Windowsアプリケーション] とありますが これはBCではC#アプリケーションということでいいのでしょうか? 次にライブラリの追加ですが、 これはBCでは参照の追加にあたるのかなと推測したのですが どうも違うような感じです。d3d9.libとかが見つかりません。
それはVC++の話じゃないか!
395 :
デフォルトの名無しさん :2005/11/27(日) 08:22:10
396 :
デフォルトの名無しさん :2005/11/27(日) 15:56:33
色々やってましたら 参照の追加で Microsoft DirectX Transforms Core Type Library Microsoft DirectX Transforms Image Transforms Type Library がありましたので入れてみました。 ただ、ここからさきがまったくです。 とりあえず、立方体でも描画してみたいのですが どのメソッドをかけばいいのか、それ以前に、どんなフォームを貼り付ければ いいのか、本を見てもちんぷんかんぷんです。 ご存知の方、いらっしゃいましたら宜しくお願いいたいます。
最初からチンプンカンプンならVisual Studio買ったらどうかな。 学生さんだよね? theSpoke Premiumなら5,000円ぐらいで買えるし、 2005への無料アップグレードもあるらしいよ。 基本を理解してから他の環境に移行した方がかえって速いと思うよ。
キミの頭じゃとうてい無理だろう。
>>398 何かあったのか?初心者スレに常駐したりして。
すでに挫折しているのならば、
他のことをがんばった方が幸せになれると思うよ。
おまえもな
おまえ「も」な
402 :
デフォルトの名無しさん :2005/11/27(日) 23:26:37
あ、なんかあれてきちゃったみたいで恐縮です。 一応、C#でプログラムが組めるのでその点は大丈夫なのですが 調べたらどうもC++がはばかってる様子(間違ってたらすいません)で あとはコードを書くだけなんですけどその点はVSもBC#も変わらないかなと思うんです。 それで、ホームページあれこれ見てたんですが例えば立方体を表示させる枠ってLabelでいいみたいなのですが どうなのでしょうか?だとしたら難しく考えすぎてました。 ご存知の方いらっしゃればお願いいたします。
403 :
デフォルトの名無しさん :2005/11/28(月) 17:00:27
日本語を喋る知能があれば プログラム言語である程度の事は出来るはず
そんなに遠回りしないといけないんだったらやめます
406 :
デフォルトの名無しさん :2005/11/30(水) 07:58:58
あ、405は僕じゃないです。 C#はVSでもBC#もソースは変わらないので その点は大丈夫なのですが 本がC++なもので困っておる次第です。 ですので、VSでは 単純に立方体を画面に表示するソースは どう書くのか教えていただけるとこちら側で応用できると思います。 ご存知の方、ソースと立方体を表示する枠はLabelでいいのか はたまた、違うものなのかVSの場合でかまいませんので 教えていただけると幸いです。
DirectX+C#の情報は未だに多いとも言えないから、 どうしてもC++の情報を読む機会が多くなるよ。 >立方体を表示する枠はLabel これが何だかよくわからないんだけど、 Mesh.Box( (ry とは違うのかな。
410 :
デフォルトの名無しさん :2005/11/30(水) 18:46:33
>>407 >>408 >>409 どうもありがとうございます。すごく参考になります。
ところで、今日、図書館に予約していたDirectXに関する本の
順番が回ってきたので借りました。
そうすると、C#で紹介しているではありませんか、当然VSを使った内容ではありますが
これでなんとかなるぞと思って読むと、
VSにはDirectX 9 Visual C# Wizardなるものがあるではないですか。
みなさんはいつもこれを使われているのでしょうか?
どうもこれでいかないと駄目な予感が大です。くじけそうです。
とても親切にしていただいたのに本当にごめんなさい。
DirectX 9 Visual C# Wizardは今のバージョンには無いぞ
412 :
デフォルトの名無しさん :2005/11/30(水) 20:21:42
え!?そうなんですか。 では、みなさん、しょっぱなはどんな感じでスタートなのでしょうか?
俺は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のようなものがあるのでしょうか?
段々ネタに見えてきた。 VS使ったことないだろ。
418 :
デフォルトの名無しさん :2005/12/01(木) 13:04:30
VSはちょっとだけなら使ったことありますが 基本的にはBC#を使ってます。 同じものを作るのにソフトが違うだけで何かと弊害が多くて困っております。
VS安いのでも買えばいいのに。 もしくはVS2005ベータ(無償)とか。
420 :
デフォルトの名無しさん :2005/12/01(木) 13:16:39
VSのベータ版が出てるんですか? それは試したいです。 ちなみにベータ版ってやっぱり色々問題あるものでしょうか?
>>404 が書いた事ぐらいしっかり読め。
それから、DirectXのドキュメントは読んだのか?
C#そのものは出来ると言っていたが、
>>409 のライブラリのソースは読んでみたか?
422 :
デフォルトの名無しさん :2005/12/01(木) 13:42:56
なんか、もうくじけそうなのでVS入手します。 皆さん、長い間お世話になりました。 また、何かありましたらよろしくお願いします。
423 :
413 :2005/12/01(木) 21:18:21
>>414 ちなみに俺はコマンドラインでコンパイルしてる。
424 :
デフォルトの名無しさん :2005/12/02(金) 19:15:22
Visual C# 2005のベータ版を皆さんのアドバイスに従って入れてみました。 その後DirectXもいれました。 どうやら、Visual C#とVisual Studioは違うようです。 BC#と同じ結果に終わってしまいました。 報告です。
>>424 DXSDKについてるサンプルをコピーして使うんじゃなかったっけ?
オマエはメモ帳でも使ってればいいんだよ
君はチラシの裏な
チラシの裏に書かれたコードもコンパイルするマイクロソフトの技術力は世界一
429 :
デフォルトの名無しさん :2005/12/03(土) 01:40:43
調べもしないで質問するな」って冷てえなって思ってたけど その気持ちがちょっとわかった
サルがVS使ったってゴミしか作れないからやめとけ
経験談。
AudioVideoPlaybackのVideoを使って 動画のプレイヤーを作っています。 FullScreenプロパティを使って、 フルスクリーンにしたのですが、 ユーザーからの入力(クリック、キーボード)などで FullScreenを解除したいのですが、 どうしてもFullScreen時のWindowを取得出来ないため、 FullScreenを解除出来ません。 何か方法は無いものでしょうか?
フォーム作る時に this.KeyPreview = true; にしてみるとか
436 :
434 :2005/12/05(月) 21:21:37
ありがとうございます! 家に帰ったらさっそく試してみます。
437 :
434 :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に横棒を追加したいんだけど?
>>438 MenuItemのTextプロパティに半角ハイフンを指定。
MenuItemにseparator
申し訳ありませんが質問させてください。 DirectXのライブラリとC#を使って簡単なゲームを作成したのですが 作成したゲームのウィンドウの左上部分とデスクトップやファルダに表示させるアイコンの 関連付け方法がわかりません。よろしければ参考サイトや方法を教えていただけないでしょうか。 使用ソフトはVS2003のC#.net OSは2000です。
App.icoを編集するとかでなくて?
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 俺も全く同じ経験をした。
アイコンは大きいのと小さいのを両方編集しないといけない。
切り替えられるはず
447 :
445 :2005/12/08(木) 02:05:59
自己解決しますたすまそ
>>446 ありがとうございます解決しました。
イメージの現在のアイコンイメージの種類を選択すると16*16と
32*32の2つがでてくるので16*のほうも編集しないといけないようです。
449 :
441 :2005/12/11(日) 12:03:22
ゲームをネットワーク対応にさせようとおもっているのですが DirectPlayで調べたところサイトが少ないことと DirectPlayはあまり使われていないとかMSのほうでも 使うなみたいなことがReadmeに書いてあるらしいのですが 実際はどうなのでしょうか? ネット対応ゲームを開発している方に聞きたいです。 また、DirectPlay以外に使っているものがあれば 勉強したサイトやお勧めの参考書を教えていただけないでしょうか。
DirectPlayは非推奨なので、 とりあえず俺は.NET FrameWorkの標準のAPI(通信系)使ってる。
451 :
441 :2005/12/12(月) 20:05:50
>>.NET FrameWorkの標準のAPI(通信系
なるほど、本屋に行ってみたらWinSockに関する参考書がたくさんあって
その中でもサンプル入りの物を購入してきたので今いじっています。
http://www.kamada7.com/ ここのGAME CODING vol2ってやつです。
いろいろさらに調べてたら
>>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が海賊版らしく 買ったお店に問い合わせると幸せになれると思うよ。
456 :
454 :2005/12/15(木) 15:05:21
買った店が無くなっててレシートも捨ててしまったので 連絡が取れません・・。完全にしてやられましたorz やはり正規品を買うしかないのでしょうか?
457 :
411 :2005/12/15(木) 16:06:34
認証しなくても落とせるはずだとおもったけど?
458 :
411 :2005/12/15(木) 16:08:34
それとどうしてもダメならDXSDKって雑誌の付録DVDとかに入ってる場合があったような
459 :
454 :2005/12/15(木) 17:34:34
最近発売された雑誌にも付いているでしょうか?
>>454 文章がなんか、買ってないけど買ったような
言い方なんだけど。
ようするに海賊版を買ったわけだな。
まあ、そこんところはオウンリスクという事で。
462 :
デフォルトの名無しさん :2005/12/15(木) 21:17:44
質問させてください。 ポリゴンに張ったテクスチャに、アンチエイリアシングをかけて表示させたいのですが どのようにすればよいのでしょうか。
ポリゴンの切れ目とか繋ぎ目を? それともテクスチャの画像自体を?
464 :
462 :2005/12/15(木) 22:00:14
>>463 テクスチャ画像自体にです。
描画速度重視で、小さい画像を引き伸ばして
地面に該当するポリゴンに貼り付けているのですが
ガビガビになってしまうのです・・。
>>464 元画像そのものをアンチエイリアス処理しておかなきゃいけない気がする。
あと頂点カラーを併用して滑らかに見せられないかな?
まあ、テクスチャ画像くらいケチらなくてもいいと思うけどね。
466 :
462 :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はサポートしてません」って言われた。 泣きたい。
死ねばいいのに
このスレ住民ってゲームCGクリエイター?
>>468 最新のは2000サポートされてない。
(October2004)ってのにしとけ
(December2004)も対応してるお
473 :
411 :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のヘルプには 「情報の参照」ってやつ自体がなくて先に進めないです。
別にDirectXのドキュメントを普通に開けばいいじゃないか…
477 :
475 :2005/12/24(土) 17:10:38
それでも使えますが、F1キーを押してヘルプ参照するのに 慣れてしまったもので、できれば統合して使いたいんです
連結ヘルプコレクションで登録すれば、ヘルプの目次には 出てこないけど、F1キーで参照できるよ。 連結ヘルプコレクションは、ヘルプの検索で検索をかければ 辿り着ける。
479 :
デフォルトの名無しさん :2005/12/26(月) 01:28:24
Alt + Tab でフルスクリーンを引っ込めた後、復帰する際に見事にコケます。 どうやら復帰時に Form.OnResize が動いてて、それに Device が反応するかららしいのですが…… フルスクリーンから確実な復帰を行うには、どのような手順で何を行えばよいのでしょうか……。
質問っす C#でマイクロスレッドって出来そうですか?
481 :
460 :2006/01/01(日) 05:21:11
っていうかごめん。凄くスレ違いだった。
どなたかもし知ってたら教えてください。
まあこれだけだとなんなので…
>>479 Device.OnResizingだったかな?
確かDeviceのイベントにそんな奴があったと思う。
そいつの引数はCancelEventArgsとかいう奴で、
そいつでキャンセルしてやると自動Resetを避けられるようになるよ。
482 :
デフォルトの名無しさん :2006/01/05(木) 16:50:01
DirectDrawを使ってピクチャボックスに画像を描画しているのですが、アルファ値を有効にして描画する方法がわかりません。 インターネットで検索してみたのですが、見つかるのはDirect3Dを使って描画する方法ばかりでDDrawを使ってアルファ値を有効にする方法が見つけられませんでした。 どなたか方法をご存知の方、教えて下さい。お願いいたします。
自分で
484 :
デフォルトの名無しさん :2006/01/05(木) 17:47:23
DirectDrawがどうなってるか知らんけど Direct3DにはSpriteとか2D専用クラスもあるし
>>482 Drawでαブレンドを実装しているハードウェアはまず無いので、
自分でピクセルごとに計算する必用がある。
で、お前は方法が見つけられないのではなくて、
面倒そうだから見なかったことにしているだけだろう。
TextureLoader.FromStream から透過PNG読み込むと色が変になるから、 Bitmap 作って Texture.FromBitmap 使いました…… ナニコレ。メンドクサイ。・゚・(ノД`)・゚・。
お、なかなか良く出来てるみたいだね。 打てない箇所が見えなくてやりにくいのと(残りどのくらいあるのかがわからない) AIがどこに打ったのかが判るといいかな。まあこれはゲームの話になるけど。 あとソース中に関数や変数に日本語使ってるけど、今後プログラムを他人とやる場合や 他の言語を使う場合に問題になる可能性があるので、そういうことも視野にいれてるなら 半角アルファベット+アンダーバーのみにしたほうがいいね。
補足。 いまのやつは動いてるからいまのはそのままでも問題ナシ。
>>487 >Managed Code for DirectX
逆だとオモ
491 :
487 :2006/01/10(火) 05:42:38
487です。ご指摘ありがとうございます。
>>488 表示方法をもう少し考えてみます。
>>490 日本語のページをなにも考えずにコピーしていました。
直します。
スレ違いすみませんでした。
エラー出てうごかね SDKのバージョンは どれ使ったの?
493 :
487 :2006/01/17(火) 06:39:13
487ですが、 Microsoft DirectX SDK (December 2005) を使いました。 どんなエラーですか?
>>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
てくすちゃぶれんでんぐ
499 :
496 :2006/01/23(月) 20:15:55
>>497 >ポリゴンに文字貼り付けたいってこと?
そうです。
アバターチャットのようなものを作っていて
チャットを、アバターから吹き出しのようにして出してるのだけど
その吹き出しの処理が
Spriteで吹き出しを表示→その上にfont.DrawTextで文字列を重ねて表示
となっていて、遠くの吹き出しは、アバターや障害物の裏に
隠れるといった感じにしたいのですが、font.DrawTextは
2次元配置しかできないようなので、一度Bitmapに書き込んで
Texture.FromBitmapでテクスチャにして貼り付けるようにしてみましたが
吹き出しを更新する度に、Texture.FromBitmapを行っていて
この時の処理が重いようで、瞬間的に10fps前後になることもしばしば…。
これ以外何か方法は無いものでしょうか。
>>498 テクスチャブレンディングでフォントの表示が出来るということでしょうか。
調べてみたけどみつからない・・・。
500 :
487 :2006/01/24(火) 14:17:19
>>495 ご指摘ありがとうございます。
エラー、Express Editionを入れて直してみました。
矢印キーでの回転はModelViewerCameraをつかっていると
難しいと思います。
ライトと表示関係も調整して更新しました。
厨的な質問かもしれませんが、WebアプリケーションでDirectXを使えますかね?
プレゼンテーション層
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の値を求めればよいのでしょうか?
505 :
449 :2006/02/08(水) 19:36:50
449で質問をさせていただいたものなのですが using System.Net.Sockets を使ってゲームをネットワーク対応させようと思っています。 ネットワークプログラムは初めてでかってがわかりませんが とりあえず文字列を転送して操作させようと思っているのですが メイン画面に通信部分を入れると server.AcceptTcpClient();で待ち状態になって画面がとまってしまうため スレッドを作って通信部分を別動作させてあげたのですが 画面がとまることはなくなりましたが通信がうまくいってくれません。 参考になるサイトがなかなか見つからなく もし、参考になるサイトをご存知の方がいらっしゃいましたら 教えていただけないでしょうか
>>504 任意の座標をスクーリーン〜ローカル行列でトランスフォームして
そのZを使えばいいんじゃね?
過疎っているように見えるが、 書き込みがあるとレスが付く。 素晴らしきかな。
508 :
411 :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は落ちてカクカクして同期もまったく取れないので 座標を送るようにしようと思いましたが 方法がわかりません。よろしければご教授願います。
509 :
411 :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); 上記のはメイン画面表示ループからスレッド分岐した関数の通信部分です。 サーバー側に滑らかに座標データを転送する方法をご存知の方いらっしゃいましたらアドバイスお願いします。
510 :
411 :2006/02/12(日) 01:43:27
解決しました。 同じような問題を抱えてる方がいましたらいつでもご質問ください
511 :
デフォルトの名無しさん :2006/02/13(月) 12:58:08
512 :
デフォルトの名無しさん :2006/02/13(月) 15:31:00
DirextXSDKのチュートリアル3で三角形がぐるぐる回転するやつなんですが 3角形のオブジェクトを2つや3つにする方法が全然わかりません どうやってVertexBufferを2つ以上にするんでしょうか?
ネトゲつくる椰子は 最初は座標とかパラメータとか全部送ろうとするんだよな それがいかに効率悪いことであるかにどのくらい早く気づくかが勝負の分かれどころ 普通は入力情報のみを渡すのが定石なんだが まぁがんばれ
514 :
デフォルトの名無しさん :2006/02/17(金) 16:52:19
>512 VertexBufferを二つ作って位置をずらすか、 VertexBufferの頂点を増やす
>>513 そして、入力情報だけじゃ同期とれないことに気づくわけだが
ネトゲ≠3D 最悪、内部符号垂れ流しでゲーム進めるのも、一箇所でもネット使ってればネトゲ
a
518 :
411 :2006/02/21(火) 12:41:36
同期に関する勉強はしているので やはり固定の動作を決めておいて入力情報である程度動作させるのが 一般的のようですね。 いろいろ、方法を考えて如何にデータ量を抑えようか考えていこうとおもっています。
初心者なんですが、質問があります。 ビットマップをもとに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)
515 名前: デフォルトの名無しさん [sage] 投稿日: 2006/02/17(金) 16:57:53
>>513 そして、入力情報だけじゃ同期とれないことに気づくわけだが
楽勝だと思うんだが
どう同期がとれないと言ってんだろ
MMOみたいなCS型のネトゲのこと言ってんのかな?
>>520 MMORPG以外に位置座標の同期が必要になるネトゲって何だ?
FPSとみせかけてリバーシ
位置情報なんて鯖から送られて来るだろ
フレームレートだったらfpsと書くなぁ
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);
527 :
487 :2006/03/01(水) 14:12:51
528 :
デフォルトの名無しさん :2006/03/04(土) 23:42:45
DirectXではないのですがC#でゲーム関係のことでここで聞いても 大丈夫ですか? ゲームで大量のオブジェクトに高速にメモリを割り当てたいのですが、 必要になるたびにnewするのでは、newの時間や、メモリ消費が問題に なるような気がします。 C++ではメモリをあらかじめ確保しておき、そこから必要に応じて割り当てて やることができたのですが、C#でそのようなこと、もしくはそれに相当する処理が 可能でしょうか?
DirectX SDK入れたいのですが、ネットワークにつなげない状態で手に入れる方法ってありますでしょうか? 今、ネットにつなげられない(このカキコは漫喫で書いてます)ので、どこかでCDとかで買えると助かるのですが どこかで売ってますでしょうか。
535 :
デフォルトの名無しさん :2006/03/09(木) 13:42:17
Ver 2.0.0.0のDLLを使ってるのですが、ライトが設定できません。 Update()またはEnableを設定したときにInvalidCallExceptionが スローされます。前のバージョンでは同じ設定で設定できました。 2.0のヘルプはまだ存在でしないのですか?
2005はVisialStudioのウイザードに追加されなくなったデすか?
537 :
デフォルトの名無しさん :2006/03/11(土) 00:27:36
コンパイラ環境が.NETの2002なんですが、DirectX9SDKをインストールしても APPウイザードにDirectXのプロジェクトが作れないばかりか、諦めて 普通にAPPプロジェクトで作ろうとして、参照の追加を設定しようと思ったら、 参照のリストにあるべきMicroSoft.DirectXとかがないです。 どうやったら使えるようになるか教えてください。お願いします。
2003使ってるんだが 2005でSDKちゃんと使えてる? 買い換えたいんだがそこらへんが心配で躊躇
いいよ2005。2003からのりかえた。
540 :
S-Take :2006/03/14(火) 11:41:37
誰か助けてください! DirectX9SDKでプログラミングしていたら、「LPDEIRECTINPUT8」が 定義されていないという旨のエラーが出てきます。 ちゃんと、<dinput.h>はインクルードしているんですが…。 なぜなんでしょう?
だってすぺるまちがってるし
542 :
S-Take :2006/03/14(火) 11:58:57
ごめんなさい。 「LPDEIRECTINPUT8」じゃなくて、 「LPDIRECTINPUT8」です。
dinput8.h じゃなかったっけ?
544 :
S-Take :2006/03/14(火) 12:18:16
dinput8.hというヘッダーファイルははないです。
……スレ違い
546 :
526 :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();
DirectInputはswitchで振り分けられないですか?
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
…
550 :
デフォルトの名無しさん :2006/03/19(日) 23:34:00
>>528 俺は特に問題になってない。
定期的にコレクトされる際にカクっと来る場合はあるが。
あなたが言ってるような処理が可能かどうかといえば、普通に可能。
まあ問題になってから対処してもいい部分な気がするけど。
Videoで動画再生している人いますか? 再生が終了したら動画を消したいんですがどうすればいいんでしょうか。 Ending イベントで Owner = null とするとウインドウ外に表示されてしまいます。 Dispose() を呼び出すと実行時例外が発生します。
553 :
551 :2006/03/24(金) 04:51:25
自己解決しました。すみません。 Ending イベントの中で this.BeginInvoke(new MethodInvoker(delegate() { video.Dispose(); })); としたらできました。
どなたか前スレのログ持ってませんか? datでもhtmlでもいいのでおねがいします
>>555 さん、どうもありがとう
じっくり読み直してきます
557 :
デフォルトの名無しさん :2006/03/28(火) 11:50:29
わかりやすいチュートリアルを公開してるHPはないのかね〜
みなさんはEmptyProjectから作ってますか? それともWindowsアプリケーションから作ってますか?
はじめまして、よろしくお願いいたします。 .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]にしか入りません。 うまく、カンマを区切りと認証して、横の配列にも格納 したい場合どのように記述すればよろしいのでしょうか? ご指導お願いいたします。
言っていることがよくわからないしそもそもスレ違いです
>>560 おまえ、C#がタイトルに入ってるスレひたすら爆撃してるだろ(゚Д゚)
テクスチャを四角形にクリッピングしたいんですけど、各頂点の 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); ……であってますか? なんとなく、ずれているような気がするんですけど……。
DirectXのランタイムが1.1と2.0って言うのがあるけど.NET Frameworkのバージョンなのかな? MSのサンプルが1.1で作られてるみたいなんだけど2.0って非推奨だったりする? その辺に落ちてるサンプルがほとんど1.1用みたいで資料が全然無い・・・。 大人しく1.1で作るべきなのかなぁ。
2.0 って、ついこのあいだ出たばかりだし。
そもそもまだベータ版だよ。
情報量まだないし、俺は2.0はパスしておいた。
そうなんですか・・・。 最近DirectXの勉強始めたばかりだから全然そういうのわからなくて・・・。 VS2005とSDK入れたら勝手に入ってたので新しい方が良いかなと思って使ってたのですが・・・。 1.1で頑張ってみます。 ありがとうございました。 あと、1.1だと64bit環境ではプラットフォームターゲットをAnyCPU→x86に変更しないと動かないみたいですね。 2.0では警告出るけど動くようです。
>そもそもまだベータ版だよ。 これは嘘。 どうせすぐ2.0が主流になるんだし、そういう点では問題ないと思う。
570 :
566 :2006/04/08(土) 04:01:04
.NET Framework 2.0 は正式版 .NET Framework 2.0 対応の MDX ランタイムはβ版
572 :
569 :2006/04/08(土) 04:09:20
>>570 ああ・・・.NET Frameworkのことかと思ってた。
勘違いです。申し訳ない。
吊ってきますorz
573 :
本当に困ってます :2006/04/15(土) 11:08:30
すみません。ダイレクトX9.0をXPが正規版じゃなくてもインストールできる サイトをどなたか教えてください。お願いします>< 一生懸命過去ログ探したのですがみつかりませんでした。
な い
576 :
本当に困ってます :2006/04/15(土) 11:27:56
お前ってだれ!?いつだか前に過去ログにあって、ダウンロードできたんですが、 OS再インストールしてしまって、DirectX9.0いれれなくて、困ってます。 やさしい人お願いします〜。
正規XPを再インストールでおk
マイクロソフトに聞けよ
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 ); としても同じでした… 解決策あれば教えてください
bmpにαデータを記録する規格は存在しないので、 他のファイルフォーマットを使えばいいだけの話。
あとよくあるのはアルファ情報を色に置き換えたbmpを別に用意するとか
584 :
581 :2006/04/24(月) 21:29:03
やっぱロード時には無理ですか。 自分でBinaryReaderで読み込んで叩き込むしかないのね… 返答ありがとうございました。
>>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(); って同じ事?
オブジェクトの生成タイミングが違うだけで、 基本的には同じ意味だと思う。 生成するクラスにもよるだろうけど。
588 :
586 :2006/05/07(日) 19:32:32
( ´∀`)ノ
なんかいつのまにかMDXもインストールするランタイムが配布されてたんだな ってかおせーよマイケル しかもVS2003のときに作ったやつを2006−4を入れてVS2005でコンパイルすると ライブラリの競合とか言ってエラー出るし日本語ドキュメントは2004のまんまだし もうね、、、、
XNA Frameworkまでの我慢だ。
近頃SDK入れるときにXNAって出てるけど ようはフレムワクのグラフィックストリームを今までどおり使うだけで MDXくらいのパフォーマンスが得られるようなものと考えていいのか?
c#を流行らす気あんのか? delphiの道を進んでるぞ
C#だとWinGアプリ作れないもんな(´・ω・`)
Delphiとの違いは、MSによる言語ということだ。 Delphiなどよりも大きな未来がある。
まあ、今の様子だとアレとかアレみたいに唐突に切り捨てられることはなさそうだな
ヴィジュアルJ とか 切り離されたのと同じくらい酷い扱いのもなくはないよね? ほんまにデルファイみたいな末路にならんことを祈るよ 力入れてるならC++よりサンプル増やせといいたい
そしてサンプルは共通コモンクラスのせいで 内容がまったく解読できない漏れ
598 :
デフォルトの名無しさん :2006/05/30(火) 21:40:29
質問です。 Meshの1頂点の色を動的に変更したいのですが、どうしたら良いでしょうか?
そのメッシュがXファイルからロードしたのか 動的に作ったのかでかわるが 動的に作ったのなら破棄して作り直しとか
自己解決しました。 Xファイルからロードしています。 Mesh.VertexBuffer Mesh.IndexBuffer から頂点を導き出し、変更できました。 ありがとうございます。
基本的なことですみませんが質問です。 現在 Microsoft.DirectX 2.0.0.0 (v2.0.50727) を参照しています。 TextureLoader を使うために Microsoft.DirectX.Direct3DX 1.0.2911.0 (v1.1.4322) を参照したいのですが、 そうすると 「Microsoft.DirectX.Direct3D.Sprite が両方のアセンブリに存在します」という旨のエラーが出ます。 これはどのように解決すればよいのでしょうか。
Microsoft.DirectX 2.0.0.0 (v2.0.50727) ↑ を1.x.x.系に汁!
603 :
601 :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,もいっしょにインスコするラインタイムが配布されはじめたんだな しらなかったよ
ホントダ with Managedってインストーラーに書いてあるね。 配布が楽になるのか?
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できるとこないですかね? 認証通らないのです
611 :
デフォルトの名無しさん :2006/06/11(日) 19:46:34
認証できないって……
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++だったら圧倒的に後者が早いだろうけどね。
圧倒的ってどのくらい?
パフォーマンスより楽さを選んでしまう俺ガイル
この開発効率はいいよな
non pow とpow2って何がどう違うのか誰か教えてくれ
xinput(゚д゚)ウマー
Vistaでは.NET Framework 3.0初期インストールだよな? MDXサポートも期待してるぜ。
XNAはどうなるんだろ
622 :
デフォルトの名無しさん :2006/06/15(木) 20:04:07
xinputというのが何で何がいいのかさっぱり理解できない XNAはもっとわけわかんね ぐぐってもわけのわからん記事しか出てこない ビスタは2.0相当だと思ってたが3.0なのな MDXはぜひともひょうじゅんでおながいしまつ
>>618 pow2 ってのは、
2,4,8,16,32,64,128,256,512,... というように2 を複数回掛け合わせた数のこと。
Direct3D 的には、テクスチャの幅などが pow2 にしかできないドライバと、
そうでないものの区別とかで使う。
624 :
デフォルトの名無しさん :2006/06/19(月) 22:22:23
いまだに2乗数のテクスチャしかつかえないウンコVBなんてあるん?
C#のネイティブコンパイルはまだですか?
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使って保存すると言った形です もし、この方法ではできないと言うのであれば、参考になりそうな文献等を教えていただければ幸いです よろしくお願いします
VC#ExpressでもManagedDirectX使えるの? ぐぐっても全然情報がないんだけど どこかおすすめページありませんか?
使えるに決まってるじゃん サンプルをビルドしてみろよ
>>625 そのうちネイティブコード吐けるようになると
噂されているが無理だろう 諦めたまえ。
>>627 できるだろふつうに
ポリを一つづつ抽出して
あたらなメッシュを作るだけ
一体なにがわからないのかわからない
>>628 それはあたりまえすぎて載ってないんだよ
何事もなかったかのように使えるから安心汁
>630 その抽出と統合の仕方が分からない 抽出はMesh.Cloneを使えば良いのかな? 統合にしても、単純にA+Bって訳にも行かないし ヘルプ読んでも良く分からない
Mesh C = new Mesh(Aの面数+Bの面数, Aの頂点数+Bの頂点数, ・・・) CのVertexBuffer, IndexBufferへ AとBのVertexBuffer, IndexBufferをコピー(IndexBufferの値は変えれ)
統合するとか言ってるが まさかブーリアンを実現したいんじゃないよね?
ManagedDXも一緒にインスコするラインタイムって どこにあるんかおしえてくらはい
どうにか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以下にしたいれす。 誰か、良いテク知らない?
320×240とかでウィンドウ作ればいいじゃん
>>637 それでもいいんんだけど、
その小さい画面を引き伸ばしたような感じで、
全画面表示したいのよ。
640×480の解像度で、
1024×768のディスプレイに全画面描画すると、
スプライトのエッジが滲んだような感じになりやす。
解像度下げるとスプライト滲んじゃうのかな。
ビデオカードにもよるのかな。
>>638 引き伸ばした分の端数をどうしろって言うんだ?
魔法でも使えと?
アタマダイジョウブ?
640 :
デフォルトの名無しさん :2006/07/11(火) 00:33:35
>>638 にじむ場合とにじまない場合があるなあ
うちの場合だと、CRTはにじまないけど、
ノートだとにじむ感じかな
なんなんだろうねこれ
641 :
636 :2006/07/11(火) 18:53:59
>>640 サーフェスはでっかいの作って、
それを拡大して転送し表示することで解決したです。
にじみも無かったとです。
VGAのバックバッファで描画したのを QVGAに縮小して表示するんじゃだめなのか?
wavファイルが10個あったらsecondaryBufferは10個作るのかな
>>642 それだと
QVGAに対応してないビデオボードじゃ動作しないんじゃない?
なんかよくわからんが 2Dでマウスで操作しないゲームは 解像度臨機応変に換えられて楽だよな
Save使ってXファイル保存しようとすると余計なデータ(MeshVertexColors)が保存されしまって、開いたら真っ黒になる この部分を消しちゃえばちゃんと表示されるんだけど、このデータが保存されないようにするには 独自の関数作らないとダメなのかなぁ
647 :
Tiny :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
カメラ座標==視点じゃないの? あとは既知のパラメータから注視点を求めれば、普通に 射影行列を求められると思うけど。
650 :
デフォルトの名無しさん :2006/07/14(金) 03:04:05
>>649 ありがとうございます。
その方向でできそうです。
と思った矢先に
エラー1項目 "obj\Release\VoxelViewer.viewerForm.resources" は "Resources" パラメータで 1 度以上指定されました。重複した項目は "Resources" パラメータではサポートされていません。VoxelViewer
というエラーでコンパイル不能になりました。
もう元に戻せません。
泣いてます。
651 :
648 :2006/07/14(金) 11:19:00
自己レス あれこれやってるうちに解決しますた。 フォームの記述ををpartialで分割しているところが原因でした。 なぜか両方ともフォーム(?)になっていて、片方をただのクラスファイルにしたらうまくいきました。
652 :
648 :2006/07/14(金) 11:20:56
間違えた。 正しくは分割したフォームを両方ともデザイナで変更したのが直接の原因だったみたいです。
>>648 カメラは
Direct3Dのチュートリアルの2番目あたりから使ってるよ
あとチュートリアルだけだとわかんない人けっこういるけど
カメラもメッシュと同じようにトランスフォームすれば
水平移動とか回転とか余裕でできる
漏れはこれを知らないで手動で計算してた
ホントバカらしい
654 :
デフォルトの名無しさん :2006/07/20(木) 03:21:03
655 :
デフォルトの名無しさん :2006/07/20(木) 07:45:19
すいません。DirectXをはじめようと思っております。 インストールしてC#Expressでテンプレートを開こうとしたのですが 新規プロジェクトをクリックしても項目がないのです。 どうしたらよいのでしょうか?
656 :
デフォルトの名無しさん :2006/07/20(木) 07:56:13
655です。追記します。 インストールしたのが DirectX 9.0c End-User Runtime ってやつなのですがこれが違うのでしょうか?
SDKを落とせよ・・・
658 :
デフォルトの名無しさん :2006/07/20(木) 10:24:06
>>657 あれからいろいろ調べて2006 Juneをインストールしましたが
「新しいプロジェクト」からテンプレの画面になっても
DirectXの項目は出てきません。
それに、日本語のやつですか?あれをインストールとかしたほうがいいのでしょうか?
英語だと何かとちんぷんかんぷんでございます。
また、その日本語のやつでもいろいろありますし、なにやら
インストールする順番とかがあるような感があるのですが(勘違いかもしれませんが)
Expressじゃ無理なのかもしれないです。
AppWizardのDirectXってなくなったんじゃなかったっけ
>>658 とりあえず、SDKに付属のサンプルをベースに使ってみたら?
(省略)\Microsoft DirectX SDK (June 2006)\Samples\Managed\Direct3D\Tutorials\Tutorial1
とか。
661 :
デフォルトの名無しさん :2006/07/21(金) 02:26:34
Microsoft.DirectXや Microsoft.DirectX.3Dなどはどのようにバージョンアップしたら よいのでしょうか?
663 :
デフォルトの名無しさん :2006/07/22(土) 00:09:16
ええと、いろいろな問題がありまして MSDNの掲示板などでも聞きまくりまして何とか解決しました。 どうも、ありがとうございました。 それにしてもC#でDirectXやるのに本も少ないし、ホームページも 少なくてとても苦労しますね。 また、何かありましたらよろしくお願いいたします。
いや、悪いけど二度と来ないでくれ。
665 :
デフォルトの名無しさん :2006/07/22(土) 14:15:50
666 :
デフォルトの名無しさん :2006/07/22(土) 23:34:43 BE:268947836-
>>653 DirectXのチュートリアル見てたら便利な関数が多くていい感じですね。
今は描画処理が重くてなんとかしようと四苦八苦してます。
まぁ、立方体10万個*8点=80万個の頂点数があるのがも原因なんですけどね。
見た目を変えずに動作を軽くする(描画数減らすとか)のはセンスの試されるところですね
669 :
デフォルトの名無しさん :2006/07/26(水) 06:34:53
みなさん、何かと苦労が絶えないと思いますが お勧めの本やホームページなんてありますか? C++ばっかりでC#は本当に資料が少なくて困ってます。
夏
ググれば情報結構あるよ。 数年前はググっても情報なかったから、今はだいぶまし。
DSoundでwavなどの再生はわかるんですけど DAudioVideoPlayBackでmp3やoggの再生の仕方がわかりません やり方を教えてください
674 :
デフォルトの名無しさん :2006/07/31(月) 19:22:15
追加スワップチェーン(マルチウィンドウ)について質問です。 通常の描画は描画部分を別スレッドに分けても正常に描画してくれますが 追加のスワップチェーンは関連付けたウィンドウが走っているスレッドでないと Present自体が失敗してしまいますがこういう仕様なんでしょうか? 普通に描画する際のマルチスレッド化に関する注意はドキュメントに 書かれていますが、スワップチェーンに関する記述はネット上でもほとんど 見当たりません… さらに、別スレッドで描画を行っているデバイスにスワップチェーンを追加して、 追加側は上記問題を解決するために同期を取ってウィンドウと同じスレッドで Presentするようにすると、今度はDisposeするときに処理が帰ってこなくなることが あります。Disposeする時も同期を取るようにしても、Dispose自体の処理が 帰ってこない始末です(こちらで行っている同期は成功しています)。 すぐに処理が帰ってきて正常に終了できるときもあるのでタチが悪いです… わかりにくい質問かもしれませんがよろしくお願いします。
初歩的な質問ですいません。 DirectXのバージョンを確認するにはどうしたらいいでしょうか?
>>676 いや多分そうじゃなくて、プログラム内での話じゃないのか?
ちなみに漏れは知らん。
678 :
674 :2006/08/01(火) 04:31:09
後者に関してはDeviceのDisposingイベントに関連するスワップチェーンを Disposeするメソッドを実行してもらうようにしたら問題なくなりました。 前者はそういうもんだと割り切って同期を取りながら描画するようにしました。 以上。
DirectX でmp3などのID3っていうのか情報タグ見れますか
いや 楽ではないだろw ミスも入りやすいし自前で書くくらいなら外部ライブラリを使った方がいいと思われ 使ったことないからわからんけどvcmp3.dllというので読めるんじゃ?
683 :
674 :2006/08/02(水) 03:20:51
解決したかに見えたが発生頻度が下がっただけだった… スワップチェーン使う場合は別スレッドで描画しちゃいかんのかああああ 別スレッドで描画するのを今からやめるのはコストが高すぎるから スワップチェーン使わない方法を編み出すしかないのか… ううむ…チラ裏すまそ
>>683 処理だけは別スレッドで、描画を全てForm.PInvokeでメインに丸投げ
・・・とか思ったけどムリか・・・
685 :
デフォルトの名無しさん :2006/08/02(水) 19:59:19
DirectShowが使えないのがわかってショックでつ
DirectShow.netというのがどっかにある。
つかってみたけど 画像を連続キャプチャすると逝ってしまうのでつかいものになりませんでした
kbstate = keyboarddevice.GetCurrentKeyboardState(); if ( !kastate[key.A] && kbstate[key.A]) (処理) kastate = kbstate; このようなプログラムを書くと一度も(処理)ができないんですけどなぜですかね? kbのAだけとか、kaのAでないときだけなら動くんですけど
689 :
デフォルトの名無しさん :2006/08/07(月) 03:09:25
Directplayの本なり、ホームページなり いいのがあったら教えてくれると大変ありがたいです。 どなたかご存じない?
>>688 条件を日本語に訳して考えてみようよ
「kbstate[key.A]がFalseで、かつkbstate[key.A]がTrueのとき」
691 :
690 :2006/08/07(月) 20:00:38
ごめん見間違えた
>>690 もっと簡単になるまで訳さないと理解できんだろ
kastate という配列の key.A番目 が 超OK で かつ
kastate という配列の key.A番目 が 超NG なとき…
あれ?
693 :
690 :2006/08/07(月) 20:21:07
kastateをkbstateと見間違えてたけど同じことだね kastateとkbstateは同じオブジェクトを参照してる
694 :
688 :2006/08/08(火) 00:26:14
>>690-693 同じオブジェクトを参照しているということは処理ができなくて当たり前ですか?
DirectInput で KeyDown のような最初に押されたときだけ処理をするというコードが
書きたいんですけど、いい方法ありますか?
>>694 そういうことか。やっと kastate と kbstate の意味が分かった。
GetCurrentKeyboardState って、アクセスのたびに別のインスタンス返してくるん?
同じインスタンス返してくるような雰囲気もあるんだけど、それなら自分でメモしておく必要があると思うよ。
DirectInputを覚えた奴乙 MDX2.0でXInputに統合だってさ
XNA Frameworkでちゃぶ台替えしを食らう予感 D3DX廃止らしいし
さて。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っていつでるんだ あと出たとしても日本語マニアルなさそでアレです
川西のとっつぁんならやってくれるさ……。
登録した
49ドルで4カ月でもいいんだ
XNAまだ〜?
ちなみに8月30日にダウンロード開始な たぶんシアトルの時間で
登録してきた
visual C# 2005のヘルプの見方がわかんねぇ なんか検索してもかかんないしなんなんだこれ?
('A`)え・・?
XNAまでもうすぐ
XNAは配布先も会員じゃないとダメらしいので イラナス
さすがにWindows向きの配布には相手が会員じゃなくてもいいだろ
Liveを通じて配布が年間99ドル(もっと安いプランもある) Liveを通じて販売が1000ドルぐらい(予定)
まだかな
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みたいだから、結構制限緩いね。
日本時間だと31日って書いてあったよね、何処かに
もともとC#もDirectXも無料だしな
キタ━ヽ(ヽ(゚ヽ(゚∀ヽ(゚∀゚ヽ(゚∀゚)ノ゚∀゚)ノ∀゚)ノ゚)ノ)ノ━!!!!
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
728 :
デフォルトの名無しさん :2006/08/31(木) 18:40:34
LPD3DXMESH m_pMesh1; LPD3DXMESH m_pMesh2; LPD3DXMESH m_pMesh3; と定義した場合に m_pMesh1 と m_pMesh2 を結合し m_pMesh3に設定するにはどうすればいいのでしょうか?
AudioVideoPlaybackで2つインスタンス作って、 別の動画を同時に再生しています。 ループ再生させたいのでendingイベントを使っていますが、 何故だか、後で追加したほうのイベントしか発生しません。 インスタンスごとに違うイベントを割り当てています。 インスタンスひとつだとループ再生は上手くいきますが、 2つだと下手すると固まります。 AudioVideoPlaybackは同時再生に向いていないのでしょうか。
メッシュのグループを1つのメッシュに連結するメソッドとして PrtEngine.ConcatenateMeshesというのを見つけたのですが、使い方が今ひとつ分かりません どう使えばよいか、または詳しく説明してある所を教えてもらえませんでしょうか?
普通にメッシュのバーテックスバッファ操作してくっつければいいだけじゃん
>731 これって、バーテックスバッファだけなんでしょうか? だとしたらこれは必要ないです、インデックスバッファの連結がしたいので
733 :
デフォルトの名無しさん :2006/09/29(金) 19:19:05
Meshで作ったオブジェクトの位置をワールド座標単位で取得するにはどうしたらいいのですか?
メッシュのいるフレームのワールド行列を出してそれを掛けるだけ。
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); で作成したメッシュにテクスチャを貼り付けるにはどうしたらいいのですか?
MDX2.0脂肪
むしろXNAとして再誕
返信は来るだろうか・・・ スプライト描画を試してみたんだけど、デフォで描画すると拡大してます。 Sprite.Drawだと拡大率の指定できないからやっぱり Sprite.Draw2D使うのが無難なんですかね? 合わせて質問、キャラの切り抜きというか透過処理ってどうすればいいんでしょう? tgaがどうのこうのなんてのをそれとなく聞いたのですが。
透過は普通にアルファを使えばできたはずだけど
期待しているのは MakeTransparent じゃないかね
質問です。 風の噂でDirectX C# のサポートが終わると聞きました。 (うろ覚えで、そのサイトすら忘れたのですが) その情報って本当でしょうか? MFCの時みたいになっちゃうんでしょうか?
やっとこさ3Dできるようになって、モデリングの勉強して、ゲーム用のモデルこさえて さあ始めるぞ!と戻ってきたら、MDX死亡かよ…。 OSが2kだし、どうすんかな
745 :
742 :2006/10/20(金) 13:18:03
>>743 やっぱりですか。。。orz
アメリカには継続は力なりって言葉無いんですかねぇ。
DirectX C# は結構使いやすくて良かったのですが、残念です。
XNAでは駄目なの? MDX1.1では駄目なの? 自分でDirectXのマネージドラッパーを作・・・それはヤだな。
XNAはパッドが360コンしか使えないって聞いたけど どうなんじゃろ。 パッドオンリーの作りたいから、ちょっと敬遠してるんだが MDX1.1は今後、DirectX10ランタイムの動作対象外にされたりしない?
今でも対象外みたいなもんだ
たしかにXNAのゲームパッドAPIは360パッドしか使えないよ。 XNAとMDX1.1のDirectInputを組み合わせるのはもちろん可能。 >MDX1.1は今後、DirectX10ランタイムの動作対象外にされたりしない? VistaでDirectX9が動くかどうかに依存するんじゃない?俺は知らんけど。
さすがに正式版では他のパッドも使えるだろ どうせ360でも動くっていっても結局 #if XBOX #else みたいな書き方することになるんだから別にDirectInputとか使ってもいいと思う
私待つわ、いつまでも待つわ
752 :
742 :2006/10/20(金) 18:55:42
>>742 どうしたらそういう噂になるのか不思議だ。
namespace に Direct3D 置いてんのに TextureLoader が呼び出せないのはなぜ?
チャットゲー作りたいんだけど、文字入力てどうやってやるの? 今は、ゲームの上にWindowsForm貼り付けて誤魔化してるんだけど すげーかっこ悪いよ(´・ω・`)
Formの見た目をカッコ良くすればそれでもいいんじゃなかろうか
枠を非表示にしてFormやテキストボックスのOnPaintをかっこよくオーバーライド
> フォルダ名に日本語(2バイト文字)を含めないでください。 > (Managed DirectXの仕様です。) 工エエェェ(´д`)ェェエエ工 そんな仕様あったっけ?
760 :
759 :2006/10/30(月) 00:37:54
いや俺が知らない制限があるのかも知れんが・・・。 ちなみにゲーム内容はなにやら難しそうなので 後でやらせていただくよー。
761 :
758 :2006/10/30(月) 01:46:21
DirectX Sample BrowserからEmptyProjectを J:\testDX\新しいフォルダ\EmptyProject にインストールすると、 Failed creating the Direct3d device.と表示されて起動しません。 MDXではなくて、UtilityToolkit内のバグではないかとも思いますが。
762 :
758 :2006/11/02(木) 01:34:54
>759 Effect.FromFile()で引数のfilenameに日本語が含まれているとエラーになるようでしたので、 直しておきました。
>>758 ゲーム画面上に独自UIを構築してるのがビックリなんだが・・・。
デバイス切替とかモード切替とか全部できるし。
元のサンプルあるの?それとも自前?
最近のSDKに付いてくるサンプルフレームワークの GUIパーツやね。
ほう、そうなんか。それはいいことを知った。
766 :
デフォルトの名無しさん :2006/12/05(火) 20:34:42
SetTextureStageStateの引数で、un manageのD3DTEXF_POINTとかD3DTEXF_LINEARに 対応するのってどれだろ? デフォルトではPOINTになってるんだろうけど、拡大するとガビガビになるから LINEARにしたいんだけど、探しても見当たらん・・・。
つMicrosoft.DirectX.Direct3D.TextureFilter.Linear
ウホッ、いい男 マジありがd
769 :
デフォルトの名無しさん :2006/12/09(土) 20:19:44
今からゲームを作成する場合、MDX と XNA のどっちを使うべきなんでしょうか
MDXでOK。XNAはXBOXのゲームパッドしかできんから。
了解。とりあえずがんばってみます。 ところで、マウスの絶対座標は DirectInput からは直接取得できませんよね? STGでマウスを使おうと思っているんですけど、DirectInput 使わなくても問題は……あまり無いですよね?
>>769 今からならどう考えてもXNAだろ?
と誰もが言う未来を想像していたのは俺だけではないはず
>722 おもにXNAチームの中の人が思ってただろうね
774 :
デフォルトの名無しさん :2006/12/11(月) 02:28:01
ウィンドウ上でのマウス変更ってどこでやれば良いのでしょうか? ウィンドウにマウスが乗った瞬間を検出したいです。 なんかスレ違いの悪寒もしますが、分かる方よろしくお願いします。
SET_CURSORだっけ?
マウスムーブイベントで桶だろ
×マウス ○マウスポインタ >ウィンドウにマウスが乗った瞬間 画面にマウスを押し当てるおばさんを思い出した
いままでC++でUnmanagedDirectXを使っていたんですが もしC#でDirectXを叩く場合必ずMDXかXNAを使うんですか?
必ずというわけじゃないが 直接叩くならC#を使う意味ってなんだろう?
いずれはVisual C#からXNA Framework使えるようになるのかな
なんか詳細がわかればわかるほど XNAって期待してたのとかけ離れたものだと分かって鬱になる おれだけなのか?
XPSP2専用って時点でやる気なさそう
XNAは当たり判定作るのが楽な以外は 今のとこあまりいいことなさげ。 初心者でもすぐにゲームが作れるってのが コンセプトらしいけど、3D関連が殆ど シェーダに丸投げされてるから 初心者はついていけないよ・・・。
つBasicEffect
>786 今更枯れたOSに対応しなくてもいいよ… 業務アプリとかじゃないんだし
>>787 初心者がついていけないというより、初心者のPCがついていけないw
初心者=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 できる人いませんか?
いま、マウスでもってワールド座標上の一点を指すということをやろうとしています どうやらIntersectという関数を使って、マウスの示すレイとメッシュの交点を求めれば よいということまではわかったのですが、 その結果を入れるIntersectInformationという構造体の、交差する三角形の重心座標を示すプロパティが UとVの2つしかありません。重心を特定するためには後一つプロパティが必要なのではないでしょうか? それとも、2つわかれば残りは自明なものなのでしょうか? 気になったのでお教えいただければ幸いです
>>796 ありがとうございます
そこも読んでみましたが、メッシュとレイが交差するかどうかを調べる方法は載っているのですが
メッシュの中のレイが交差した場所を知る方法がわかりませんでした
Mesh.Intersect関数の結果を受け取るIntersectInformation構造体には交差した三角形の重心座標が
格納されているのはずなのですが、その値がUとVの二次元なのでおかしいなと思っていたのです
ヘルプドキュメントに載ってなかったっけ 確かv0 + U * (v1 - v0) + V * (v2 - v0)とかなんとか
Texture.FromBitmap()で生成したものをSprite.Draw2D()で描画(回転とか拡大縮小は一切無し)すると ビットマップ画像がそっくりそのまま表示される環境と、アンチエイリアスっぽく滲んで表示される環境があるんだけど どの環境でもアンチエイリアス無しでそのまま表示されるようにするにはどうすれば良い?
801 :
デフォルトの名無しさん :2007/01/04(木) 14:04:19
STGを作るためにはどこのサイトや本を参考 にするのがおすすめですか?
>>800 スクリーンのサイズ、微妙に変化してたりしてない?
俺の環境だと、おそらく XP のテーマか何かの影響でウィンドウ表示のときにテクスチャが歪むことがあるんです orz
フルスクリーンでも滲んで表示されるのなら、たぶん違う原因だと思うが。
SharpDevelopを使って開発しているのですが、通常のウィンドウズアプリケーションだと 最初に生成されるコードでメッセージループの機能を提供するものとして System.Windows.Forms.Application.Runメソッドが使用されています。 一方でDirect3Dアプリケーションではそれが見られず、代わり(なのかな?)にSystem.Windows.Forms.DoEventsメソッドが 記述されています。 いろいろ調べてみたところ、ゲームなどはメッセージ以外の要件(時間など)で状態が変わるアプリケーションであるため Runを使わずに別のループを用意し、その中でDoEventsを呼んでメッセージを処理していると自分なりに解釈したのですが そういう理解でいいのでしょうか? よろしければお教えください。
GC周りの問題があって、DoEventsで処理することになったような。
>>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しているので使えるはず・・・と思ったのですが。 原因がわかる方がいたら教えて下さい。
>>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
よくわかんないけど、アセンブリ参照の番号ってバージョンと別物なん?
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
誰か、知ってる人が居ましたら、教えてくださいね。
>勿論、その機能を使ったほうが言い訳でして、 ここが本当にそう言えるのかもう一度考えてみた方がいいと思うけどなぁ。 MDXのアセンブリは更新されててもバージョンは上げていないとか 開発者が語ってたのをどこかで読んで気もするから、まぁそういうこともあるかもね。 どちらかといえばMDXのバージョンよりもドライバ疑った方が可能性高そうだけど。
817 :
デフォルトの名無しさん :2007/01/17(水) 20:16:15
ほうほう、そうなのですか。 ありがとうございました。 確かに、私のマシンはちょっと古めですし、クリッパーも、完全に機能しないのではなく、 微妙に機能し無いと言う、不自然な壊れ方なんですよね。 確かに、マイマシンのドライバーのせいなのかも知れません。 もし、MDXのダイレクトドローを使ってて、 俺は普通にセカンダリ以降のクリッパーもきちんと機能するよ、って言う 人が居ましたら、その旨教えてくださいませ。
>>814 もともとクリッパーってウィンドウモードのためのもので、
プライマリバッファ(つまりデスクトップ)上のクライアント領域が
他のウィンドウと重なってたりで複雑な形状をしていても、
GDIのようにBitBltをできるようにするためのものだと思ってたんだが。
そもそも「本来セカンダリサーフェイスにもクリッパーは使用できるはずだ」
というその前提は、今までネイティブのDirectDrawを使っていたときの経験なのか
それとも単に電波を受けてひらめいただけなのかどっち?
後者だとしたらそもそも思い違いという可能性を疑ったら?
819 :
デフォルトの名無しさん :2007/01/18(木) 23:32:27
ほおっ、なるほど。 やっぱり、そうなのですかね? 自分も、その説を想像してみたこともあるのですが、 クリッピング機能くらい、最新のdllにならあって当然じゃねえ? 見たいな感じで、直ぐに忘れ去ってしまってたんですよね。 でも、言われて見たら仰るとおり、そもそも、 出来て当たり前だと思っていた私の方がおかしかったのかも知れません。 実際、マイクロソフトのサンプルを見ても、セカンダリサーフェスへのクリッッパー 設定のコードは一切無いですしね。 自分が、あるはずだと思ったのは、ネイティブのダイレクトドローの説明をしている サイトに、単純にサーフェスにクリッパーを設定すれば、クリッピングが出来る、 と書いてあったので、全てのサーフェスに出来ると思い込んでしまったというのもあるのです。 が、確かに、厳密に言えば、全てのサーフェスに出来るとは書いてないですね。
820 :
デフォルトの名無しさん :2007/01/21(日) 05:22:07
基本的にマネージコードのプログラムって、 ハングアップするような事ってまず無いと思っていいですよね。 どんなに滅茶苦茶なコードを書いても、原理的にハングアップなんてしないはずですよね。 それどころか、ネイティブコードで書いたって、マシンをハングアップさせる様な コードって普通は中々書けないですよね。書こうと思っても。 CPU100パーセント使用率の無限ループとかじゃなくて、ハングアップです。 例外が発行されるのでも、勿論ありません。 マシンが止まってしまい、電源を落とすしか無い状態です。 皆さんの中で、自分の書いたコードのせいで、こんな状態に成ってしまった人って居ますか? 自分の場合、斜めの坂で、マイキャラが滑ったりするようなアクションゲームの コードを書いたら、非常に高い確率で、ハングアップするような事態になってしまいました。 原因は全く解りません。 ハングアップしてしまうので、デバッグも出来ない状態です。 しかも、全く同じコードなのに、絶対に毎回ハングアップするというわけでも無いと言う、 訳のわからない壊れ方なのです。 一体何なんでしょうか? 察しの付く方がいらしましたら、ご教授ください。
823 :
デフォルトの名無しさん :2007/01/21(日) 20:35:27
>>821 すいません。デッドロックって何ですか?
>>822 いえ、無限ループでは決してありません。
無限ループなら、タスクマネージャで、止められるでしょ。
デバッグも出来るし、ウインドウズ事態は止まらないですよね。
>>820 C#では無いが、C++のコードで似たような事があったな。
メモリの不正なアクセスしか考えられない。
デバックするか、作り直すしかないわけだが
わけのわからんエラーやハングアップはマザボやメモリやグラボといったハード障害の可能性もあるな。 他のPCでも起きるかどうか確かめよう。
メモリの不正アクセスの場合、他のハードだと再現しないぞ
828 :
デフォルトの名無しさん :2007/01/21(日) 22:33:47
皆さん、色々とありがとうございます。 自分の場合は、まだ、大量にインスタンスを作ったり削除したりと言う 段階には来てないので、 メモリの解放失敗とかそう言うのでは無いんじゃないかと、、、? 知り合いのパソコンで試しに色々と動かしてみましたが、 確かに、他人のパソコンで止まった事は無かったですね。 まあ、あまり、長時間動かした訳でもないので、完全なテストではないですが、、、。 と言うことで、826,827さん辺りの可能性が高いのかな? メモリの不正アクセスって、要するに、ハードの問題なのでしょうか? マネージコードだと、原理的にプログラマがメモリを管理する事は出来ませんものね。
たぶんお前のマザーのコンデンサが液漏れ
830 :
デフォルトの名無しさん :2007/01/23(火) 01:05:37
Microsoftのcoding4funのバックナンバーが少ないのは仕様ですか?
831 :
デフォルトの名無しさん :2007/01/23(火) 21:24:21
お前らはmsdnのサイトの掲示板とか利用してるのか?
Direct3D.SurfaceにDirect3D.Surfaceを貼り付けるにはどうすれば良いの? DirectDraw.Surface.DrawFastみたいな感じで。
833 :
デフォルトの名無しさん :2007/01/25(木) 00:50:12
c++にはある、timeBeginPeriod って言う関数は、c#には無いのか? c#では、タイマ精度は変えられないのか? 3dのmdxなら、内部で勝手に読み込んで勝手に使ってくれるらしいが、 2dのmdxで、同じ事はできないのか?
835 :
デフォルトの名無しさん :2007/01/25(木) 03:48:24
ほう、サンクスコン。
P/InvokeでtimeBeginPeriod、timeEndPeriod、timeGetTimeを定義するクラスを ライブラリに持っておくと便利だよ。
昔はその関数、DLLじゃないといけなかったりしたなー、16ビット時代だが。 時代は変わる
838 :
デフォルトの名無しさん :2007/01/26(金) 11:14:44
こう言うことって、c++で、コードを書かないと駄目なんですよね? 自分のマシン環境にはc#しか、インスコされてないので、まあ、諦めるしかないっすね。 どうも、済みませんでした。
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
842 :
デフォルトの名無しさん :2007/01/27(土) 13:47:47
その後、色々と調べたら、結構簡単に、プラットフォーム呼び出しが可能になりました。 ありがとうございました。
843 :
デフォルトの名無しさん :2007/01/27(土) 18:53:39
しかし、 timeBeginPeriod、timeEndPeriod、timeGetTime これらのメソッドは比較的簡単に出来たけど、 タイマ精度を調べるメソッドは非常に扱いが難しいですね。 構造体の参照を渡す様に組まなければいけないみたいで、、、。 色々やったけど、難しすぎるので諦めました。 本当なら、これを調べて、タイマ精度を元の値に戻すように組まないと いけないっぽいですね。
P/Invokeが面倒になってきたらC++/CLIへの切り替え時かもよ?
845 :
デフォルトの名無しさん :2007/01/29(月) 15:50:25
デバッグ開始 の場合正常に動作するのですが デバッグなしで開始 を選ぶとエラーメッセージとともに 終了してしまいます。 ビルドしてexeで起動してもエラーは出ませんでした。 このエラーは無視して大丈夫なのでしょうか
そのエラーメッセージはなんなんだ。 DLLが見つからんとかそういうのか?
847 :
デフォルトの名無しさん :2007/01/29(月) 17:18:11
問題が発生したため終了します と出るだけで具体的なエラーが検出されるわけではありません。 デバッグありの場合、エラーも警告もでませんでした。
F5だと動作して、Ctrl+F5だとだめで、EXEダブルクリックで動作、、か 環境っぽいけどReleaseバージョンでCtrl+F5だとどうよ
849 :
デフォルトの名無しさん :2007/01/29(月) 18:14:24
正常に動作しました。
プログラムのせいじゃなくて環境かもね。 まあそのまま様子見でよさそう。
そうしてみます。 いろいろとありがとうございました。
フルスクリーンのときにAlt+Tabを押しても不具合が起こらない最小限のサンプルってある?
不具合なんて存在しません
854 :
デフォルトの名無しさん :2007/02/06(火) 14:17:28
マイクロソフトのサイトに、フル画面時の、 デバイスの参照を失った時のリストアのサンプルはあったな。 最小とは言えないが、一応、リストアするためのコードはあったはず。
855 :
デフォルトの名無しさん :2007/02/07(水) 12:10:06
XPなんですがDirectXがインストールできません 最新バージョンを落としセットアップの画面で同意書にサインし ダウンロード&インストールまでするのですが適用するには再起動が 必要ですという画面になり、再起動してもインストールされていず またデスクトップに落としたセットアップファイルに戻ります 何度繰り返してもインストールしますか?と聞かれ、して再起動してるのに インストールされません。どうすればいいのか教えてください。
質問します マイクロソフトからDirectX9をダウンロードしても 再起動の表示が出ませんどうすればいいですか?
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サイトをご存知でしたら ご教授ください。
関数名は大体似てるから、あとはmsdnなりで
マルチ指摘厨ウザ
864 :
860 :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 |;;'';イ } {、 〉、 ∧テ{ ヽ _ _,,,,;;;;;:::-==ニ;;;_ ノ __,イ´ / \_ //レ!  ̄  ̄ { ̄ |
デブおた死者プチュは市ね
869 :
デフォルトの名無しさん :2007/02/24(土) 15:05:17
戻り値がVoidでも参照渡しで何か帰ってくるかもしれない
VOID とは宇宙空間にあるものです
872 :
デフォルトの名無しさん :2007/02/24(土) 21:50:33
>>870 とかみたいのが何をいいたいのかまじでわかんない
罵りなのかこういうのって?
>>870 みたいなレスってマジでいみふめいだわ。
レスをするときに途中で文書を書く前に
間違えて慌てて書込ボタンを押してしまった人のレスだと思うよ。
ときどき見るんだよね。ム板では。
unsafeを前提にしてるお前らもどうかと思うが
876 :
デフォルトの名無しさん :2007/02/28(水) 22:39:04
ライティングって、RenderStateのLightingをtrueにしてLights[0]を設定してUpdateして ポリゴンにマテリアル割り当てればいいんですよね? 何故かEmissive色のべた塗りになってしまうんですが、これってライトが効いてない証拠ですよね?
877 :
デフォルトの名無しさん :2007/03/05(月) 01:28:08
ぶっちゃけWINDOWSが正規品じゃないみたいなので、DirectXをダウンロード できません。何か方法はありますか?
>>877 論理的には、ファイルのコピーとレジストリやシステム構成ファイルを書き換えればできるだろうけど。
実際に設定するのは無理だと思う。
>877 Windows買えば?
880 :
デフォルトの名無しさん :2007/03/05(月) 02:37:52
ぶっちゃけすぎwwwwwwwwwwwwwwwwwwwwwwwwwwwww
正規品のWindowsで落としたものをインストールしる
これひどいw
883 :
デフォルトの名無しさん :2007/03/05(月) 13:37:57
x64でネイティブ動作する2chブラウザつくってください
>>877 仮想化ソフトをインストールしてWindows2000等でダウンロード
もしくはマン○喫茶
>>883 キミがいうネイティブってどういう状態を想定してるのかな、かな?
Wowじゃなくて.NETじゃなくてってことだろう C#じゃ無理ね
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が遅いという書き込みは前にもあったんですがこんなものなんでしょうか? 何かわかる方がいたらお願いします。
890 :
876 :2007/03/11(日) 13:42:24
>>890 ソースは何ら問題無し。
モデルに問題があるっぽいな。
SDK付属のViewerで見ても同じようになってた。
以前メタセコでX出力したら、こんな感じになってた気がする。
仕様なのか、俺が使えてないだけなのか知らんけど・・・。
ttp://gamdev.org/up/img/9108.zip 簡単なモデル上げといたから、こっちで試してみるといいよ。
ちゃんとギラギラ表示されるから安心しる。
あ、あと環境光が逆光気味になってて、黒く見えるから Z値に-1でも入れといた方がいいかも。
893 :
876 :2007/03/12(月) 17:33:03
>>891 ありがとうございます。確認しました。
モデル不良に関しては完全に想定外でした・・・
>以前メタセコでX出力したら、こんな感じになってた気がする。
まさにそれで作成したモデルでした。
894 :
876 :2007/03/12(月) 19:32:32
いじってみたのですが、メタセコの出力の時に 法線とUVマッピングを有効にする必要があるみたいですね。 一応参考までに。
>>894 このエラーは他の人もやりそうなエラーですな。
次回があるならテンプレでも作っとく?
プログラムの配布ってどうすればいいんだろ。 今の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は普通にコンパイルして、出力すれば、自動的に ランタイムがパッケージ化されるので、実際やってみれば、 あまりその辺は意識しないで済むよ。
一応 MDX の単体配布パッケージはあるんだけどな……
901 :
デフォルトの名無しさん :2007/03/15(木) 07:40:12
うそーん、どこに?
Webインストーラ使わせようぜ。開発者としてはURL載せとくだけだから楽だ。 ・・・とは必ずしもいかないんだよなぁ。ReadMe読まない人結構いるんだよな。
それはランチャー作って半強制的に読ませればOK! でもスタンドアロン機のために結局同封しなきゃいけない気がする 非ネット環境は切捨てなのかね
うーん、やっぱ同梱が一番だよなぁ……。 ファイルサイズが10MB超えちゃいそうだけど、 最近はユーザー側もそんなに気にならないかな?
なにを言ってるんだ ユーザが使いたいソフトならば入れるだろ
スタンドアロン機のため=オフライン配布=容量気にしない=同封OK
ゲームだといきなりまず「使いたい」とはなりにくいけどな。
やりたくもないゲームなんて入れるやついるのか? ライターくらいなもんじゃないかな
いやユーザーは簡単に諦めてしまうものなんだよ。面倒だからもういいやって。
なにを言ってるんだ 諦めるって事は使いたいほどのソフトじゃないって事だ
使ってみるまで本当に使いたい物だったのかわからんでしょう
使わなかった人にとってはどうでもいい事だ 似たようなソフトなんていくらでもあるだろ
センス無いねぇ
914 :
デフォルトの名無しさん :2007/03/22(木) 01:13:59
いろんな意見があるだろうが 動きませんでしたより動きましたという あたりまえの結果のほうがいいにきまってると思う フレムワクもMDXランタイムもインストーラに含められるならそのほうがいいと思うよ普通に
915 :
デフォルトの名無しさん :2007/03/22(木) 04:58:20
>>914 同意。
あと製品だと、インストーラーにランタイム全部入れてくれってときもあるのでな
製品のインストール完了状態で、動くとこまで持っていけないと困る。
まあ、場合によるが・・・
SetRenderTarget関数に関する質問なんですけど これの一つ目の引数、int型のrenderTargetIndexについてです。 これはrenderTargetIndexを増やしながら関数を複数回呼ぶことで 複数のレンダリングターゲットに同時に描画できる、ということなのでしょうか? つまり device.SetRenderTarget(0, surface0); device.SetRenderTarget(1, surface1); と呼ぶことで、surface0とsurface1に同時に描画できる、というものなのでしょうか? msdnにはこの引数について解説が載ってなかったもので、よろしければお教えください
いいえ
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#って中間言語だよね? ゲームが普通のスピードで動くの?
共通言語ランタイムは、パフォーマンスを向上させるようにデザインされています。 このランタイムには多くの標準ランタイム サービスが用意されていますが、 マネージ コードのインタープリタ処理が行われることはありません。 ジャスト イン タイム (JIT: Just-In-Time) コンパイルと呼ばれる機能により、 すべてのマネージ コードは、それが実行されるシステムのネイティブ機械語 で実行できます。また、メモリ マネージャは、メモリの断片化を防止し、 メモリ参照ができる限りローカルで行われるようにすることで、 パフォーマンスを向上させます。
924 :
デフォルトの名無しさん :2007/04/11(水) 16:52:21
日本語で説明してくれ
ファイル上では中間言語だけど、動くときは機械語で動く。
926 :
デフォルトの名無しさん :2007/04/12(木) 00:13:57
>>925 C++より遅いって言われるのはなんで?
>>926 どこで言われてるんだろ・・・。
どっかの検証サイトで大した差が出ないと言われてた気がする。
>>926 実質的には.NETフレームワークがネイティブより遅い言うことだろうけど、
ランタイムが自動的にメモリを大幅に確保する必要があるため、起動時までに時間がかかる。
ネイティブは必要なメモリを随時確保していくため早いと言われる。
また、.NETフレームワークでFormsが不要な描画処理を毎回行っているため
ネイティブのMFC/WTLに比べると遅いから。
>>924 ______ _ _| ̄|_ _ _
|____ | | | 口口 |_ _| \\ | | __ __ __
/ / | | | | _  ̄ ___ | | |__| _| |_| |_
/ / | | _ | | _| |_ |___| | | |_ _ _\
| | | \_/ / / / /。 _| | | ___ .| |.|__|/ /
\\ \ /  ̄ \/ | | |___| |__|  ̄
 ̄  ̄ ̄  ̄
P/Invoke 時のマーシャリングでも多少時間がかかりそうな気がする あと、GC 入るタイミングではレスポンスが悪化するとか
>928 おいおい、めちゃくちゃ差があるってば。
GCの計画的な押さえ込みと、値型のテンポラリコピーの極力排除を前提として ネイティブとの誤差が最大20%てなところかなぁ。まぁどーしたって遅くはなるよね。 でも一度.NETの開発環境に浸かっちまうと、もうWindows上での開発は ネイティブで書く気無くなるんだよなぁ。
MSは1割って言ってたな。
この手の議論っていたるところでしょっちゅう見かけるけど、 パフォーマンスがどれだけ落ちるかなんてアプリに依存しまくりでしょ 特にDirectX周りだと、パフォーマンスのボトルネックになってんのが CPUなのかどうかも環境や状況に影響を受けるし
DirectX使うゲームじゃCPU処理負荷なんて大した問題にならんよ。
>>938 まあ「○○言語は××言語より速い/遅い」といった議論は、
お互い承知の上でニヤニヤしながらやる雑談向けのネタであって、
そのまま鵜呑みにしたり誰かに吹き込んだりするものじゃないですな。
>>921 はとりあえずグダグダ言う前に手を動かすべき段階っぽく見えるけど。
雑談ついでだけど、異なる言語で同じ計算の速度を見るときの「同じ計算」って何よ? って問題も。
C#だとReflectionとか動的コンパイルとかが身近なので、
C++版とはまた違った最適化を行うのが普通な感じ。
例えばこういうのとか。
ttp://d.hatena.ne.jp/siokoshou/20070411#p1 言語が違えばアルゴリズムの段階で全然違うコードが吐き出されることも多々あるわけで
そういう場合はアルゴリズムの差で勝負が決まることもあると。
マリオカートで何に乗ろうが、 1位になるのも腕次第ってわけだ。
ゲームを作っているのですがループ中に明示的に非同期で処理させたい場合はどのようにすればいいのですか? ゲームでのローディング画面みたいなのが作りたいです
>942 マルチスレッド、 状態を保持したサブルーチン
944 :
デフォルトの名無しさん :2007/04/16(月) 06:27:21
サポートされていないDirectPlayでボイス通信を作ろうと思っております。 C++の本を読みながらC#に翻訳しなんとかしようと思っております。 まず、サーバを作らなくてはいけないのですが、初期化するとき Microsoft.DirectX.DirectPlay.Voice.Server mddvs = new Microsoft.DirectX.DirectPlay.Voice.Server() とこんな感じで初期化しようと思っているいるのですが、 右辺の()のところにobjectの引数を指定しなければいけないのですが ここには何の情報を入力したらいいのでしょうか?
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オブジェクトしか取得できず、つまずいてしまいました。 根本的にやり方が間違っているのでしょうか?
947 :
946 :2007/04/21(土) 13:44:55
自己解決しました。
Windows 2000, XPからはDirectInputによって複数のマウスから送られてくる
パラメータを別々に取得することができなくなったそうです。
その代わり、Windows XPではDirectInputではなく、Raw Input APIを使うことで、
複数のマウスの移動量を取得することができるようです。
ソース:
http://www.jstookey.com/arcade/rawmouse/
質問!! ところで、C/C++で何作ってるんですか??
子供。
じゃあコウノトリの子供は誰が運んでくるの?
郵便局への郵便は郵便屋が運んでくるべ
自分の作品はまるで自分の子供のようだという意味だ コウノトリとかバカじゃないの
>>953 その理屈はおかしい。
郵便にたとえるならコウノトリは郵便局員(配達屋)だ。
局員の子供を郵便局が運ぶのはおかしい。
郵便局員の自宅への郵便は郵便局員が運ぶ、か
つまり、コウノトリの子供は別のコウノトリが運んでくるわけか 人間に例えると社員割引があるからって自分が勤めている産婦人科で 出産したら同僚にまんこ見られて恥ずかしい思いをしたって感じかな?
なるほど、つまり、コウノトリはまんこだったんだね。
Microsoft.DirectX.Direct3DX.dll のバージョン 1.0.2911 が要求する d3dx??_??.dll のバージョンって幾つでしたっけ?
何がでしたっけ?だ ですか?だろ
まぁまぁ、そうカリカリせずに。さっさと答えろや。
何が答えろや。だ 答えてくださいだろ
ナンダヨ、でぃぺんだんしーうぉーかーで簡単に調べられるじゃんかヨッ ちったぁ自分の手ェ動かしてから質問しろヨッ
俺が居ない間に妙なことになりつつも DependencyWalker の存在あーだこーだ。 色々ありがとうございました。
d3dx9_30 でした。どうもすいません
d3dx10_68000.dllが出る頃に
>>961 ですか?だと偉そうじゃん
でしたっけっていうのは丁寧な言葉なんだぜ?
>>968 そうかな?
でしたっけ?だと、もともと知らないくせに
「僕は本当は知ってるんだけどど忘れしちゃったもんで」
的な意図に見えるから俺は使わないな
>>969 そう感じる奴もいるのか……
住んでる世界が違うと言葉の意味まで違うんだな
そりゃ戦争も無くならんわ
>>968 の方が少数だと思うが。
ていうか馴れ馴れしいんだヨ。俺はお前の友達じゃねぇンだ。
べ、べつにあんたなんか友達なんて思ってないんだからねっ(だってこぃ・・こいび・・・ぷしゅ〜)
975 :
960 :2007/05/24(木) 01:17:27
つーか普通に忘れたから聞いてるんでは? 丁寧かどうかは別の問題だろ
でしょうか? でいいでしょう。
〜でしたかご存知の方はおられないでしょうか?
980 :
デフォルトの名無しさん :2007/05/26(土) 04:40:12
981 :
デフォルトの名無しさん :2007/05/26(土) 05:00:16
と、思ってたら、単に俺の検索の仕方が悪かっただけで、 マネージドの講座は直ぐに見つかったよ。 スマソ。 でも、上記のアドレスがトップからたどり着けなかったのは本当だけど。 何でだろうね?
ヒント MDX→WPF MDX→XNA
5年後 WPF→WEG XNA→EXS
10年後 WEG→終了 EXS→終了
986 :
デフォルトの名無しさん :2007/05/26(土) 20:30:39
20年後 終了→DirectX Reloaded 終了→XNA Returns
MDX Strikes Back