DirectX C# vol.1

このエントリーをはてなブックマークに追加
1
DirectX9 SDK リリース!
C#での話題をどうぞ。
2デフォルトの名無しさん:02/12/21 11:00
>>1
なにするんじゃごるぁ
ほんとだ
#じゃなくて♯
まともなクラスライブらりんになったのか?
日本語ドキュメントもついている(・∀・)イイ!
http://www.microsoft.com/japan/msdn/directx/downloads.asp
日本語ドキュメントだけダウンロードしますた。
わたくしもダウンロードしましたの
>注意 : Visual Studio .NET がインストールされていないシステムでは、
>この DirectX 9.0 Jpn Doc をインストールしても、読むことはできません。
ひでえ。これだからMSは嫌いだ・・・。
ん?VC6はサポートなしか?
ダウンロードが急に遅くなった・・・
今試したけど普通にコンパイル/デバッグできたよ
拡張子.Hx*系のドキュメントビューワーみたいなソフトないのかな?

>>6
DirectX 9.0 SDKとDirectX 9.0 SDK for C#があるんだけど、どっちを落とせばいいの?
DirectX 9.0 SDKに全部入ってるんじゃないかな?
心配だったら、二つインストールしておけば大丈夫かと。
DirectX 9.0 SDKはC#,VB.NET,C++用のSDKやドキュメントまで全部入ってるんじゃない?
C#だけならDirectX 9.0 SDK for C#で良いかと。
C#のサンプルnew Vector3とかしまくりで結構ウザイね。
パフォーマンスも悪くなりそうだし。
ドキュメントビューワーなんとか見つけたぞ。
なんとか、MSの陰謀から逃れた(笑)
日本語ドキュメント内にdirectx9_c.chmが含まれている。
C++用ドキュメントのみだがこれでこと足りるね。

ところで今回からC++からC#に移行する予定のDirectX屋さんっているの?
ここにひとりいるですよ。
21デフォルトの名無しさん:02/12/22 00:35
俺はずっとC++のつもりですが、C#のサンプルの綺麗なコード見てると
なにか殺意が沸いてきますな。
移植の必要ありとかMS嫌いとか.Net様子見とかC++の神を目指すとか
特別な事情がない人は文句なしでC#に行けばよろしかろう。
>>17
new Vector3 程度でパフォーマンスが悪くなるようなプログラムってどんなよ。
ベクトル演算が束になってかかったってメッシュ1個の描画の前には誤差だぜよ。
ガベコレ気持ち悪そうだがその辺どうよ。
優秀なDirectXチームがついててJavaみたいなアホなこたあねえか。
普通にCとかで書いても、ある程度の規模になると
ガベコレみたいなことをやる羽目になると思うんだが
(テクスチャのキャッシュの解放とか)
それで失敗するよりはマシという感じかなあ
GCってサブスレッドで動かすようにはできないのかな。
そうすればHyperThreadingで効率よく動きそうだけど。

そういやC#なDirectX本って出るのかな?
VB.NETのはあったけど。
C# で DirectX って本気なん?
長年 DirectX で食ってきたけど 俺のまわりには一人もおらんけど
誰も居なくなったからでは?
>>26
Managed DirectXって、.NETでのメディア系のサポートが寒いのを
補完する意味合いが強いんじゃないかと個人的には思ってる。

vb.NETでやるDirectX
http://pc3.2ch.net/test/read.cgi/tech/1039357620/
ここ見た限りでは、それほどパフォーマンスに関してそれほど悪くは
なさそうだけど・・・
まぁ本気でパフォーマンスを気にするっていうのなら、自前でベンチ
取って比較検討ぐらいはしておくのが吉かと。
>> GC
VB IB Effect Surface とかのつまるところリソースってやつは
Managed で管理されてるわけじゃないんで
Managed クラスのデストラクタか Dispose で解放されるよ

C++ のデストラクタ代わりに Dispose を使うって感じで
あとは大差ないと思われ

ついでに
GC はデフォルトで別スレッドなり。
どっちみち GC中は他のスレッドをロックするかも知れんけど。
Microsoft.DirectX.Security
Microsoft.DirectX.Security.Permissions

インストール先の全てのマシンでグラフィックス描画やサウンド再生が
「権限として許可されるとは限らない」ことを意識しろってことか・・・
>>28
>Managed DirectXって、.NETでのメディア系のサポートが寒いのを
>補完する意味合いが強いんじゃないかと個人的には思ってる。
補完というよりDirectXだけでサポートするということなのかね。
>>31
DirectX.AudioVideoPlayback はかなりの上位レベルでマルチメディアをサポートしてくれるから( new Video( "hoge.avi",true ) だけで再生なんて・・) 大抵の場面ではこれだけでじゅうぶんと思って見たり。
>>29
> GC はデフォルトで別スレッドなり

スレッドで嫌な目にあったりあわされたりした身としては
これが大変キモいのであります

>>32
デモムービーを流すだけならそれでOKっすね。

ところでムービーをテクスチャーにするのって簡単にできそうですか?
C++のほうのサンプルではあったようですが・・・
3428:02/12/22 20:19
>>31
> 補完というよりDirectXだけでサポートするということなのかね。
うーん、その辺のAPI拡充戦略をMSがどう描いてるのかがよく分からないんだけど、
「メディア系APIはMDXのみ」っていうのは、確かにチョイスとしては悪くないと思う。
「MDXの範疇を超えるものはP/Invokeで」っていう逃げ道も一応あるし。
DirectX 9 入れたら DirectX 8 動かなくなった。
激しく鬱だ・・・。
Win2k SP3, MDAC2.7, .NET Framework SDK1.0 + SP2, DirectX9 SDK for C#
の環境で sample のいづれかを実行すると以下の様に "シンボルねーぞ!" と
言われるんですが対処法はありますか。.NET SDK を再インストールしました
が同様の警告が出ます。

Microsoft (R) Common Language Runtime Test Debugger Shell Version 1.0.3705.0
Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.

(cordbg) a 0x2d8
Process 728/0x2d8 created.
Warning: couldn't load symbols for c:\winnt\microsoft.net\framework\v1.0.3705\ms
corlib.dll
Warning: couldn't load symbols for C:\DXSDK\SAMPLES\C#\DIRECT3D\BIN\CSBUMPUNDERW
ATER.EXE
Warning: couldn't load symbols for c:\winnt\assembly\gac\system.windows.forms\1.
0.3300.0__b77a5c561934e089\system.windows.forms.dll
Warning: couldn't load symbols for c:\winnt\assembly\gac\mscorlib.resources\1.0.
3300.0_ja_b77a5c561934e089\mscorlib.resources.dll
Warning: couldn't load symbols for c:\winnt\assembly\gac\system\1.0.3300.0__b77a
5c561934e089\system.dll
ぬああ
サンプルいっぱい。
Far
Fur の事か?
とりあえず誰かフサギコをレンダリングしる。
ぬあああああ
Furだった。
GetDC
制限がなければもっと良いんだけどね〜
あるだけマシか
どんな制限?
ReleaseDC
じゃなくて。
7→8 みたいに変化が無いので、
話題少ない
sage
そうでもないと思うがなぁ
Managed DirectX は悩むところなんて何もないし、新機能の
大半は対応GPUが必須。でも、5万もするビデオカードなんて
ホイホイ買えるもんじゃなし。

ってことで、話題になりにくいと思われ。
でもさ
質問ご法度のスキンメッシュ周りがちょっと良くなってない?
あれ 話題にならんかな
質問ご法度でござる のまっきっ
>>49
今他に話題なさそうだから解説せよ
SkinInformation クラスにウェイト情報やオペレーションが
集約されてて扱いやすいとか?
Mesh.LoadHierarchy が便利そうだとか?
53デフォルトの名無しさん:03/01/06 21:19
初めてDirectXを触ってみたんですが、
チュートリアル1:デバイスの作成で
実行させるとなぜか
device = new Device(0, DeviceType.Hardware,
          this, CreateFlags.SoftwareVertexProcessing,
           presentParams);
で落ちてしまいます。
Direct3D9: (ERROR) :HAL Disabled: Device doesn't support texturing
Direct3D9: (ERROR) :HAL Disabled: Device doesn't support texturing
Direct3D9: (ERROR) :HAL Disabled: Device doesn't support texturing
Direct3D9: (ERROR) :Invalid value for BackBufferFormat. ValidatePresentParameters fails.
DeviceTutorial.exe の 0x77fa018c でハンドルされていない例外が発生しました : ユーザー設定のブレークポイント。
こんなエラーがでてるんですが、どういうことなんでしょうか?
ぬに。ついに出たのか。
よしさっそくダウンロードじゃ
>>53
アナタの環境がショボいとみた
>>53
PCのビデオカードは?
57デフォルトの名無しさん:03/01/06 23:40
>>53
うちの環境でもそうなります

マシンはPC-9821Nr15
OSはWindows2000
メモリ128MB
グラフィックスチップはCyber9385です。
> Cyber9385

それ3D動くんか?
>>57
ttp://www.pc-9800.net/db1/data/pc-9821nr15.htm
7年前のマシンに無理させんな。
VRAM 2Mかぁ
>>57
3Dアクセラレーションの無いビデオカードでHALが動くと思った理由は?
脳みそが溶けている、知的障害がある、先天性馬鹿などが推測されますがどれですか?
>>61
そう言うなって。

DirectGraphics(DirectX8以降)は3Dアクセラレーションが
ほぼ必須になったことを知らないひとはまだまだ居ると思う

昔のハードでやるならDirectDraw(DirectX7以前)を使うしかない。
98にはDirectX8以降は入らないはずだが。
DX9も入るだろ
今に始まったことじゃないが、ドキュメント激しく使いにくいな。
リンククリックするとイチイチ言語選択のメニューがポップアップするし。
バックで戻ってみると、メンバテーブルの状態が保存されてないし。
普通のHTMLでいいのに。余計なことしやがる糞MS。
6653:03/01/07 08:51
OSはWindows2000
メモリ256MB
ビデオカードは
AccelGraphics Permiedia 2V AGP 8MB SGRAM
という奴みたいです

Permiedia 2V かよヽ(`Д´)ノ
てかDirectX9やるなら、ちゃんとしたビデオカード買えよ!!
お前らは、メーカー製PCに3Dゲームインストールして泣いてる初心者ですか?
6853:03/01/07 09:18
>>67
まったくそのとおりです..
69デフォルトの名無しさん:03/01/07 10:42
Permiedia…まだ生きていたのか…
> てかDirectX9やるなら、ちゃんとしたビデオカード買えよ!!
MSやビデオカードベンダーが、↑このことをちゃんと伝えてないのが
そもそもの混乱の原因では?

#まぁでもこのスレにくる奴は他板のDXスレぐらい読んでおいて欲しいけどな。
Permedia2も一応普通に3Dアクセラレーションできたと思うが...
そんなにショボかったっけ
72IP記録実験:03/01/08 21:38
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
>>638さん
しんちゃんというのはくれよんしんちゃんからもじった物なんですか?
気になってよるもねむれません教えてくださいm(_ _)m
>>291
確かに串使う意味がなさそうだな。
>>300
ありそうな話だ(^^;
ニュー速のリンク貼ったやつ、なかなかやるな。
しかしニュー速荒らして意味があると思ってる人がまだいるのか。
77デフォルトの名無しさん:03/01/09 14:53
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。          
勢いで上告なんかしても一発で上告却下(門前払い)だよ。
   
二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm
  
ようするに上告しても今の制度では100%無駄。 これで完全終了ってことか。
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
>>65
ヘルプのフィルタ編集すら出来ない馬鹿はあなたですか?
>713 ほう・・・
>>540
鑑定スレでお願いしようとして誤爆し・ま・す・た・!   
短い時間で味のある文章書くなぁ、、
>>143
どこの板が取っているの?
>>492
ブッチギリで実況板逝ってるよ
>>490
今バナー踏んだだけでペイバックされる広告システムは殆ど無いものと思われ・・。

もうさ、P2P掲示板しかないよ。
今のままの2ちゃんを望むのなら。

47氏にお出まし願おう。
>でも板人口がROM込みで数十人の所の罵言書き込みでも
>万単位に見られたと喚くのがアンチさんなわけで。。。

バカなんだね。数の問題じゃないよ。
qb鯖ってどの板だろう?
とか考えていたらこの板でしたね。
という事は取られるのか俺のIP。。。
誰にも取られた事ないのに。。


・・痛くしないでね
IPまるだしでもマンコとかき続けることに変わりはない!!

そのために今朝方
☆ 連絡&雑談 3 ☆
http://qb.2ch.net/test/read.cgi/saku/1037135732/
が埋め立てられて終了してしまったわけでございますが・・・
次スレはいかが致しますか?
連絡と雑談を分離するかどうかの話がまだ決まっておりませんでしたが。

●決定は次スレに持ち越しで同内容で次スレを立てる
●雑談はこのスレなどに移動し、
 「☆ 連絡専用スレッド1 ☆」もしくは「削除人連絡相談室」などの連絡専用スレッドとして新規に起こす
●他のスレッドに完全吸収

とりあえずこの三つの選択肢のうちからの選択ということになるかと思われますが。
一番エクスペンシブな板ってどこよ。
IP祭りの会場はここですか?
プロ棋士使ってないのに
エラーが出たぞ
IPとかリモホじゃ個人特定できないって言うけどさぁ
ISPの勤務の奴は簡単に調べられるしな。
知り合いにISPの奴いっぱいいるけど皆2ちゃんねらーなんだよな。
http://headlines.yahoo.co.jp/hl?a=20030109-00000021-zdn-sci

一応ニュースになるんだね。
2chがインディーズって事。


「表社会」



クリーン完璧以外無い。
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
インデペンデンス・デイ!
健介氏を招き、来て下さるのを待ちます

危機的にキてますので。【本来は私は2CH人員で無いのに書き込んでるのが自分自身不自然で、辛い所 素で。)

15分後程度に又。
さすがマルチあなどれん。
早く閉鎖してください。
お願いします。
国内サッカー板 また落ちてます?
おまえら、IP記録がそんなにこわいのか。
あーっはっは!
久しぶりに笑ったよ!
っていうか同じ人でわ?
確か福光署がネット犯罪に強かったな。
単に2ch型のP2P掲示板ではなくて、
winnyとか、ファイル交換ソフトの中に内臓されている掲示板が
もっと使いやすくなればいいかなぁ、と。
PCに詳しくなくてもWINMXがただで音楽が手に入る!
と思っちゃった初心者の人が始めたりするくらいだから、
(現在の使用者は90万人くらい)
完全に匿名の形式ができればおもしろそう。。

でも、やばい情報を誰も削除できないという罠が、
DDTアドレスは、何日保存されるんだろか。
プ(^_^;)誰が無責任でいいなんて書いたのかな
ちゃんと削除依頼のルールを守って待てばいいだけの事じゃん
強要するのはボランティアに物を頼む態度じゃないんだって最低限の礼儀ぐらいは弁えろよクソガキ君(^_^;)
あはっ

たとえば、1スレをIEとかのブラウザで表示するのに
何秒かかりますかー(スレの大きさによるけど)
それの 10,000倍くらいかかるかと。

あと倉庫の一覧表とかも全部書き換えるし
html化と同時に datのzip化 および出来た htmlの
zip化も同時に行われますー

さてさて どれくらいかかるのやら。。。
110デフォルトの名無しさん:03/01/13 03:20
Microsoft.DirectX.*.dllはどこにもない状態でしたが、
アセンブリには入っているのでこれからコピーできるのですね。
というわけでメモ

コマンドプロンプトでこんな感じに。
copy "c:\windows\assembly\gac\Microsoft.DirectX.AudioVideoPlayback\
xxx(数字)xxx\Microsoft.DirectX.AudioVideoPlayback.dll" d:\
>>110
\WINDOWS\Microsoft.NET フォルダになかった?
>>112
はい、なかったです。
ちゃんとインストールできてないってことかな?
Microsoft.DirectX.*.dll、9個(だけで大丈夫?)を
そのフォルダ以下に置きましたが……、ちと不安に。
>>112
>>111 さんへでした。すみません。
114山崎渉:03/01/13 18:24
(^^)
GACに入っていれば、それはインストールに成功しているってこと。
コンパイルする時もローカルにコピーする必要なんてないはずだが?
C#SDKいれてサンプルをコンパイルしようとしたが、Microsoft.DirectXやらの参照先がないみたいでできんぞー。
で、110さんみたいにdllこぴってこないといけないのれすかね…。
うー。
>>116
もしかして、DX9SDK→.NET Frameworkの順にインストールしたとか?
>>116
110です。
自分だけじゃなかったようでよかった。

>>117
私の場合は.NET Framework(VS.NET)→DX9SDKでした。
>>118
> 私の場合は.NET Framework(VS.NET)→DX9SDKでした。

変だのー。DX9SDKのインストール時にManagedDXを選ばなかったとか・・・
勝手に入ったような気もするけど
あ、DX9SDKじゃなくてDX9 Runtimeかな?
そうですね。
現行犯の場合は訴えられなくても捕まりますね。
>>119-120
DX9SDK for C#です。
これだからいけないのかな?
>>116 さんもそうみたいだし。
DX9 Runtimeをインストールするときに、すでに.NET Framework
が入ってないとManagedDXがインストールされない気がする。

どうなんだろ。このへん混乱しそうやね。
124116:03/01/13 22:47
>>118
>NET Framework(VS.NET)→DX9SDK
まったく一緒ですわ…。

\WINDOWS\Microsoft.NET\Managed DirectX\内には
Microsoft.DirectX.xmlやらのxmlファイルのみがありまする。
>>122
漏れも for C# だとドキュメントとかしか入らなかった。
結局、DX9SDK for C# はアンインストールして DS9SDK フル版入れなおしたよ。
漏れもfor C#だけ入て、参照先が見つからないってので
ブチ切れた人間ですが。
DirectX 8.1 SDKに戻しました。
しばらくこっちで頑張るから、人柱の皆さん頑張ってね。
どうやら、for C#がいけないみたいですねー。
C# Direct本が出たら、入ろうかと思っておるんだが
まだ出んのか?
黙ってFULL版入れとけってことか。
意味ねー
131山崎渉:03/01/15 17:51
(^^)
132デフォルトの名無しさん:03/01/18 00:27
ちょっと質問させてください。
C#のチュートリアル2のソースの初期化部分で、

device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
device.DeviceCreated += new System.EventHandler(this.OnCreateDevice);
this.OnCreateDevice(device, null);

としているところがあります。
ここでDeviceCreatedイベントにイベントの登録をしていますが、
その直後にイベントで登録したメソッド自体を手動で呼んでいます。
というか、そもそもDeviceクラスのインスタンスを生成した時点でDeviceは生成
されてるような気がするのですが、するとDeviceCreatedイベントってどのタイミング
で呼ばれるのかが疑問なのです。

この辺りの挙動をご存知な方がいらっしゃいましたら教えてください。
Deviceというクラスのインスタンス自体は有効でも実体としてのDirect3Dデバイス
は無効になっていて、このデバイスが再生成される際に呼ばれるとか....?
日本語ドキュメントがDLできねぇぞ、ゴルァ
日本語ヘルプはバグだらけで今必死に直しているところだ
>>129
工学社から
DirectX9.0 3Dアクションゲーム・プログラミング
がでるらしいが、C++っぽい予感も。
ヤギさんだったりして…
ヘルプの焼き直し本ではないことを祈る
138129:03/01/20 17:43
>>135
情報アリガd

C#であることを祈る…。
>>132
見れば見るほどDeviceCreatedは呼ばれないような気がする…
Reset時にも呼ばれるとか? まさかね
140デフォルトの名無しさん:03/01/20 21:52
C#でDirectShowを使ったサンプルどっかにないですか?
>>140
嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲嬲
>>140
Direct Show は C# では対応してなかったと思われ。
Direct Show 自体の仕様がもうちょい落ち着くまで待機状態なんかなぁ。
143140:03/01/20 22:43
>142
C#ではDirectXを使ってビデオカメラからキャプチャすることはできない
ということですか?
144デフォルトの名無しさん:03/01/21 09:56
>132
ドキュメントにDeviceコンストラクタの挙動が記載されていないので推測です。
Device生成時に、Deviceコンストラクタでは、デフォルトのOnCreateDeviceを呼び出しているのではないでしょうか?
その後で、Vertex定義のためにOnCreateDeviceのイベントハンドラを再設定しているので、OnCreateDeviceを明示的に
呼び出すようなコードになっている気がします。

Deviceを継承したクラスMyDeviceを宣言して、OnCreateDeviceをオーバライドすれば、例のような明示的呼び出しは
いらない気がします。でも、試してないので間違ってるかもしれません。
145132:03/01/21 22:24
>>144
DeviceにOnCreateDeviceなんてメソッドはないんでオーバーライドもなにもないです。

うーん、なんかDirectX AppWizardで作ってくれる雛型ソースではDeviceCreatedイベント
への登録ってしてないっぽいですね。他のイベントは登録してるのに。
ますます意味が....
ドキュメントが不十分なのも困りますね。日本語が不十分なのはまだわかるんですが、
英語の方ですらろくに書いてないですし。
managed DirectX のドキュメントはあってもなくても同じ程度に何も書いてないからな
147山崎渉:03/01/23 20:06
(^^)
ドキュメントに何かフィルタかけるとDirectXの項目が消えてしまう。
フィルタあんまし役に立たんわよねー。
きちんとしたテキストが無ければ動けない、頭の固い漏れにとって
C#X9はまだやるべきことじゃなかったようだ。

っつーか、日本語ドキュメントいつまで待たせんねん。
>>150 英語嫁
みんな英語極めようぜ。
ウェブの情報量が10倍になるし、コードもコメントも英語デフォにすれば
このアプリ日本語対応してねームキーとかぶち切れることもない。

その代わり、アメリカ人は最初からこの環境だったのかと思うと
そこはかとなく腹が立ってくるが。
日本語ドキュメントはもう出てるが、英語だとそれよりくわしい?
>>153
同程度しか書いて無い罠
同じ機能がC++にもあるものはC++の方で補完できるが・・・
C++のヘルプは恐ろしく詳しいからな
>>153
英語版を日本語訳しただけだと思われ……
ビル・ゲイツが日本人だったら良かった。




最近、素朴かつ真面目に思うこと。
>ビル・ゲイツが日本人だったら良かった。
たとえ同じようにOSの開発が進んだとしても
アメリカの圧力で輸出を封じられるだけだと思うが
いったい何を期待しているんだ?
抽象的な夢だと思われ。
バブルで失敗して倒産してたのかな
「報告」
俺は、DirectXは仕事でつかわんので、
書籍等が充実したら開発に励み、書き込みを行う。
>>18
どこで見つけたか教えてもらえませぬか?
>>161
>>18じゃないけど

dexplore.exe /helpcol ms-help://MS.VSCC/MS.DirectX9_JPN.1041/DirectX9_c_JPN/directx/intro/dx9intro.htm

って#Dに登録してる。
なるほど。dexplore.exeをしらべてみます。
こんなんみーっけ

[Related Communities for DirectX]
http://msdn.microsoft.com/community/directx.asp

こことかイイと思う。
http://www.c-sharpcorner.com/directx.asp
165初期不良:03/02/09 14:07
.Net Framework SDK 日本語版+DirectX9 で C# やってます。
なんかできた実行ファイルがネットワークドライブ上にあると
エラー起こして終了してしまうんですけどなんでだろ?
DirectX を使わないものだったら大丈夫なのに。
パーミッションの問題かな?samba2.0.10-ja-12 の共有なんで
NTFS のパーミッションが設定できない...
OS は Win2k Pro で、ローカルディスクは NTFS です。
(*´д`*)アハァ…
パーミションというよりはポリシーでは?
これですべて解決だ。

caspol -s off
>>168
ブラクラ
>>165
NTFSパーミッションじゃないぞ。↓ここにずばり書いてある。
http://www.atmarkit.co.jp/fdotnet/technology/framework09/framework09_01.html
だから、CASなんてめんどくせー代物は>>168で即解決だって。
>>171 1人で逝ってくれ。
173初期不良:03/02/10 01:00
Java と同じように実行時の権限を意識しないといけなくなったのね。
漏れどっちかというとセキュリティ屋サンなのできちんと覚えようかな。
174初期不良:03/02/10 05:00
ドキュメントビューワとか苦労していたみたいですけど
漏れはこっち見てやってまつ
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_m/directx/ref_entry.asp
リンク無いので念のため...
英語を理解できない漏れのようなへたれに生きる道は無しでつか
176初期不良:03/02/11 20:12
125 行でシークバー付きムービープレイヤーできますた
ウマー
>>176
音付き?
178初期不良:03/02/11 20:58
>>177
もちろん
7行で。
180HMD:03/02/13 11:18
う〜、適当なスレが分からないけれど、
3D表示にロマンを感じる人なら、誰でも
http://www.jp.playstation.com/product/95/000000006147095.html
見たいなHMDが面白そうだと思ったりしませんか?

これって、USB接続なのかな?解析した人いる?
WMP使うと貼り付けるだけで何行だろ。
DirectX 9.0 書籍キタ−−−!!
http://www.kohgakusha.co.jp/books/detail/4-87593-416-5

が、C++っぽい。
&前作の表紙が変わっただけでは・・・。
あの、実はDirectXの仕組み全く知らないんですが
OwnerDrawなControlの描画にも使えたりするですか?
>>182
C++かYO
185135:03/02/15 04:32
>>182
ヤギさん キタ-----!!
>>183
もち。
End of World のサイトってどこ行った?
188デフォルトの名無しさん:03/02/16 16:36
agege
>>187
The Worldに取り込まれました。
191初期不良:03/02/16 19:06
>>181
Microsoft.DirectX.AudioVideoPlayback.dll って
もしかして WMP のコンポーネント呼び出してるわけ?
>>191
Microsoft.DirectX.AudioVideoPlayback.dllのDirectShowと
WMPの2通りがあってこれらは別だよ。
WMPの内部はよくわからないが。
山羊さんのDirectX 9.0の書籍買ったけど、
ほとんど表紙が変わっただけに等しい汗

あと1,2年すれば、c#でDirectXの書籍もでるかな。
DirectXのドキュメントマニュアル読んだほうが早いんだけど。
人柱お疲れ。
C++で出されてもなぁ。
意味がない、とは言わんけど、どうせならC#でほしかったよね。
言語以前の基本的なノウハウは意味があるね。

このスレのシンミリとした感じもそうだけど、まだ時期的に早いのかな。
C/C++ほどネットに資料がごろごろ転がってないから。
198初期不良:03/02/19 04:35
>>174
のドキュメントでも
This is preliminary documentation and is subject to change.
こんなのだらけだし早いんだろうね
199DirectX指南:03/02/27 21:01
チュートリアルText3Dのサンプルで、ビルドは成功するのですが、実行すると、
device.TextureState[0].ColorArgument2 = TextureArgument.Diffuse;
の行で
”アプリケーションでエラーが発生しました。”
というエラーがでます。
Direct 3Dアクセラレータが使用可能になってるにもかかわらず、このようなエラーが出るときはどうすればよいのですか?
ちなみに
DirectXのバージョン:9.0
ビデオカード:Matrox Millenium G400 64MB
OS:Windows2000
です。
とりあえず最初にでたC#本を買おうと思う。
書店にDirectX8版とDirectX9版の山羊さんの本が並んで置いてあったぞ(w
自分のWebページでBack Orifficeの利用を推奨するような奴だから、こういう
セコイ本の出し方をしてもよく似合うな。
DirectX9関連書籍 近刊情報
(発売予定日不明)

出版社:工学社
DirectX9実践プログラミング
DirectX9 3Dゲームプログラミング Vol.1

C++ 、または焼き直しの可能性(大)

オブジェクト指向なプログラマには、
ゲームプログラムのコーディングは
とてつもなくむごく思えるのであります。
ゲームプログラムもオブジェクト指向で書いてるが……
認識古いんじゃないか?
C#のスレでこんなカキコをするあなたの言いたいことがわからない
206デフォルトの名無しさん:03/03/01 21:22
bccでDirectX9は使えるのですか?
207デフォルトの名無しさん:03/03/01 21:38
DirectX9をダウンロードしようと思い
dxwebsetup.exeこんなファイル名のをダウンロードしたのですが
これがDirectX9なのでしょうか?
>>207
名前見る限り、インストーラじゃねえの?
DirectXランタイム自身は数十MBくらいあるはずだぞ。
209207:03/03/01 21:55
dxwebsetup.exeを開いたらまたなんかダウンロードしました
そのまたダウンロードしたのがDirectX9ですか?
>>207
微妙にスレ違いの予感・・・
dxwebsetup→DirectX Web SetUp
OK?
Permiediaを馬鹿にするなよ
OpenGLならGeForceFXなんて目じゃないぜ!





wildcat3はな...
213207:03/03/02 15:18
DirectX Web SetUp
これはDirectX9ではないのですか?
ネタ?
DirectX Web SetUp
→DirectXをWeb経由でセットアップします。
→DirectXの構成ファイルをMSサイトからダウンロードして
 あなたのマシンにインスコする為のプログラム


MS以外でもこういう方式のSetUPファイルは見かけるのだが。。

それ以前にDirectXをセットアップしますってダイアログがでるんじゃないの?
>>212
50万超えるOpenGL専用ボードと比べられましても
比較については専用隔離スレが用意されてるぞ!
http://pc2.2ch.net/test/read.cgi/tech/1044308707/l50
217デフォルトの名無しさん:03/03/02 20:48
>>214
マジレすです
それで
dxwebsetup.exeこれは
DirectX9をダウンロードするためのものですか?
>>217はネタなので以後放置で。
一日経って何もやってないわけないだろう
219217:03/03/02 21:54
dxwebsetup.exeこれは
DirectX9をダウンロードするためのものですか?
マジレすです
>>218そんなこと書くのだったら
はいかいいえぐらい言ってくださいよ
>>217
いいえ
>>217
はい
>>219
自分で何もできないのか?
いつまでもママに服着せてもらってちゃダメだよ。
マジレスです。
放置汁!
>>219
ハイ?
>>217
そんなことより、学校の勉強はしなくてもいいのかい?
226217:03/03/04 15:42
>>217
何言ってんの・・・
227217:03/03/04 17:22
>>225
ネタ?
訂正
>>217
http://etc.2ch.net/denpa/
こちらへどうぞ。
資料少ないから、一つのことやるのに
やたら時間かかるなぁ。しんど・・・(>_<)
231デフォルトの名無しさん:03/03/11 00:51
agegegege
ageども レス無く沈む 虚しさや
Managed DirectX の説明書の不甲斐なさのせいで
なかなかスレを読みにこれんのじゃ。
そんなに説明が必要なんかな?

ひょっとすると、MFCみたいに、Direct3Dエキスパートであることを
前提にしてるのかもしれんね・・・
プロパティの説明とか真っ白ジャン(泣
だから .chmファイルも同時に開くというなんとも効率の悪い事をしなくちゃいけないし
プロパティとかメソッドとかならば、インテリセンスで一応の説明が
出るけれど、列挙型のメンバに関しては説明が出ない。
DirectPlay.SendFlags.* のそれぞれの効果を教えてほしいぜよ。
スレが凍てついているので、
しばらく教えて厨OKの方向で。
情報サイトきぼんぬ。
MSDN Library の方が役に立ったがいちおう載せておこう。
ttp://www.c-sharpcorner.com/Directx.asp
.NET Framework クラスライブラリリファレンス(全25巻)
定価が15万円だけど、買う奴いる?
さっき郵便で届いたダイレクトメールだと9万8千円で買えるっぽい。
今お申し込みをなさいますと、なんともう1セット付いてきます。
DirectX C#書籍ついにキターーーーーーー!!

DirectX9 3Dゲームプログラミング Vol.1
C#によるアルゴリズムの基礎
- 2003年 3月24日発売 

ttp://www.kohgakusha.co.jp/books/detail/4-87593-419-X
名著
「 DirectXによるゲームプログラミング 」の筆者だから、
内容が理解しやすそうだ。

すでに、検索サイトなどからガンガン調べてコーディングしている人には、
内容が物足りなさそうだけど、
趣味でちょろっとDirectXに挑戦しようかな っていう人には非常に貴重。(私含む)
Vol. 1 ってことは続編もでるのか。
基礎編ってことで、Vol.1なんじゃないかな。
次は、もっと深い内容ってことかな。

バイブル的な存在になってほしい。というか、
そういう内容を希望。

目次を見た感じ、オブジェクト指向っぽいつくりかたで
内容が進んでるようなので、少し安心。
MS DirectX9_JPN.1401 クライアント/サーバートポロジより
>大量のデータを使うマルチプレーヤ ゲームの場合、
>ほとんど、またはまったく休みなくサーバーを運用する必要があり、
>ユーザーのゲーム プレイを中断するとユーザーを怒らせるというリスクもある。
笑った。
248JGreener:03/03/17 01:00
C#+DirectXな解説サイトは日本語でないですか?
自分で見つけたのは、http://dxsimulation.tripod.co.jp/ ここぐらいしか(汗

>>247
笑った。
↑ついさっきみつけて、参考にしてた。

日本語の、しっかりとしたリファレンスがあればいいんだけど、
SDKのリファレンスは、ちと説明が無さ過ぎ。

1,2年もすれば、情報や書籍、ユーザーも増えるんだろうけど、
そんな待ってられないしなぁ。英語(の情報)に挑戦するかな。
>>249
>1,2年もすれば、情報や書籍、ユーザーも増えるんだろうけど、
DirectXの新版も出る罠
ってことは、Ver 9.0 は情報不足で未開拓で終わるということかな・・・。
>>249
素直に英語のリファレンスを読むのが良ろし。
SDKの英語のドキュメントも、MSDNのリファレンスも、
日本語版と同じ内容にみえるが・・・。
英語でもいいから、濃い内容のリファレンスないんかな。
C#のほうは命名規則もシンプルだし、何も困ることないじゃん。
たとえリファレンスついててもC++よりよっぽど楽だと思うけどな。
>>253
>>254の言うように、C#はかなりシンプルだから
リファレンスを見なくてもオブジェクトブラウザさえあれば
問題ないと思う。
C#のマニュアルではなくて、
DirectX(Managed) APIのマニュアル・リファレンスが欲しい。
SDKに付属のリファレンス読んでみたが、
DirectXでの開発が初めての人には辛い。
まあ、「必要最低限の資料があるんだから気合で頑張れよ!」
というところだろうが・・・。
まぁ結局は C++ DirectX のヘルプ見ればよいわけで。
っていうかそれを前提としているかのようなリファレンスだよな
C++のリファレンス→C# に脳内変換しながらプログラム組んでると
「果たしてC#で組む必要があるのか?」という悪魔のささやきが聞こえてくる罠
お手軽がウリなのに脳内変換プロセスのおかげでぜんぜんお手軽じゃなくなるし
マトモに使おうと思うと、
なんらかのフレームワークを作ることになるっしょ。
それがC# onlyでやれるというのはありがたい。
C# だとクラス化されててインテリセンス使えるのがありがたい
自分がC#を使う理由は>>256-260の言っていることと
GCのせいかな。
262261:03/03/18 04:01
>>256-260

>>259-260
に訂正
DirectDrawはDirect3Dに取り込まれたみたいなんだけど
実際にどうすればDirectDrawと同等の処理が出来るの?
インテリセンス自体はC++でやっても使えるよん。
プロジェクト作ってそこにDirectXのヘッダを全部追加すればいい。

C#のほうがコンテキストが明確だから、より精度が高いんだろうけど..

>>263
ゲーム製作板のほうで同様の質問があったから見てちょ
266デフォルトの名無しさん:03/03/19 12:20
C#とDirectX9とXMLでゲームつくろうとしてます。
ポリゴンの辺だけ描画するのってどうすればいいのかな。

ワイアフレームだと
┌─┐        ┌─┐
│  │ ┌──┐→│┌┼─┐
└―┘ │   │  └┼┘  │
      └──┘   └──┘
こう重なるけど、
┌─┐        ┌─┐
│  │ ┌──┐→│┌┴─┐
└―┘ │   │  └┤   │
      └──┘   └──┘
こういう風に描画したい。
何かいい方法ないかな?
ピクセルシェーダー
>>266
DX8のハナシだけど、
ttp://t-tail-web.hp.infoseek.co.jp/program/vsdx8/
ここのステルスとか高額明細が参考になるかもしれん
おっと光学迷彩だ
決算期だね〜。・゚・(ノД`)・゚・。
270266:03/03/19 12:26
Zソートしてから背景色で塗りつぶしたポリゴンを描画して、
その後そのポリゴンの辺を描画、で奥のポリゴンから書いていけばいいのかな?
お、なんかよさそう。3日くらい悩んでたのに書き込んだ途端閃いたー。
271266:03/03/19 12:27
>>268
はやっ!
ありがとうございます早速みてみますっ
>>267
ピクセルシェーダーは対応してるビデオボードがまだ少ないから今使うのはまだ難しいね。
>>245
Vol2はVB.NETでのManagedDirectX(基礎編)です。ご期待ください!
>>263
マネージドならDirectDrawも残されているよ
D3DでDD的操作する方法は知らん
>>263
DirectDraw を使うよりも Direct3D の方がたいていは速く処理できる。
3D機能を使わないとしても、 Direct3D を利用したほうが得策。

カメラの座標とかは別として、VertexBuffer の Z座標を
全部 0 にすれば一応は2次元にはなる。
>>275
さらに、Z値を少しずつずらせばレイヤーの出来上がり。
ポリゴンの回転やα値の利用ができるのもナイス。
初のC# DirectX書籍
DirectX 3Dゲームプログラミング vol.1を買った。
深い情報は載っていないが、DirectX・3Dゲーム開発入門者・には、
非常にわかりやすくてGOOD!
スレに入門者のカキコが増えそうな予感。
もうちょっと、先まで書いて欲しかったな・・・。
ちなみに、入門者以外には、あまり目ぼしい情報はないっす。
SDK付属のAPIリファレンスが、
もっと、しっかりしてればなぁ・・・。
コンストラクタの説明がないから、何を指定できるのかわからん。
いままでDX経験済なら、大体想像はつくのだろうが。
280デフォルトの名無しさん:03/03/21 06:56
ウィンドウモードでのマルチビューの方法が知りたいです。
IDirect3DDevice9::CreateAdditionalSwapChainメソッドらしきものが見当たりません(´・ω・`)
281280:03/03/21 08:27
Microsoft.DirectX.Direct3D.SwapChain クラスを発見しますた。
このクラスを使えばよいみたいなんだけど,よくわからない・・・
Z座標固定って
ちゃんとDD取り込まれてねーのかよ
要は切り捨てかね
DDなんて過去の遺物
>>277
あれ、もう買えたの?
工学社に注文したら、24日発売だからもうちょっとでお届けできますってメールが今日来たんだけど。
>>285
えーっ。
でもメールには確かに……しかも24日に発送するって
書いてあるってことは今からそのサイトで注文
した方が早いってことか……。もちろんしないけど、泣ける。
ま、数日の違いだからその間エロ画像でも探してマターリ待つよろし
288デフォルトの名無しさん:03/03/22 19:55
DirectDrawじゃ無いと二次元で軽いゲームが作れないでしょ
>>288
DirectX8での変更点を調べることをお勧めする。
290デフォルトの名無しさん:03/03/22 22:03
DirectXの変更点といっても
Z座標固定が画期的な解決策だとはとても考えられない
それにもかかわらずいきなりDDraw捨てちゃうのはどうかと
切り捨てるならそれなりにDDraw的なコードをD3Dに取り込んで
いただくのが参議院議員の責務的な勤めだと思います
>>288
いつの時代の話だ(´Д`;
もう最低限の3Dアクセラレーションすらできないビデオカードなんざ放置プレイしろ。
うーむむ。
Managed APIは、まだまだオブジェクト指向の規則に
則ったつくりになってないね。クラス構成がよろしくない。
構造体は、C++までで卒業にしてもらいたいなぁ。
APIにのっかってると、被せてやるクラスつくらないかんし。
Direct3D
Windowモードで実行して、
Windowをマウスで最小にすると、エラーがでる。
サンプルブラウザの実行ファイルでは、最小にリサイズできないようになってる。
最小にリサイズするとエラーがでるのってバグ?

296デフォルトの名無しさん:03/03/23 18:14
結局どのクラス/関数使えばドローと同じ
感じで二次元の描画できるのよ?
奥行き固定するなんてのは置いといて
頭の切り替えが遅いやつがいますね
>>295
最小化時の回避方法がちゃんとサンプルにある。
ちゃんと全部のサンプルに目を通したのか?
>>298
レス、サンクス。
みてみるっす。
>>298
チュートリアルのプログラムもウィンドウを最小にするとエラーがでるみたい。
最小化じゃなくて、サイズ変更でクライアント領域がなくなるまで最小にする。
スプライトオヤジはともかくDirectDrawオヤジなんてのもいたとは。
2Dの描画しか行わなくても、Direct3Dを使ったほうが
3次元で考えられるから楽なのにね。
Direct3Dで2Dゲーつくるときって、座標変換せずにそのまま描画するだけでいいのかな?
何かDirectDrawと比べて気をつけることってあるっけ。
>>303
トランスフォーム済み + テクスチャの頂点でよいんじゃない。
305デフォルトの名無しさん:03/03/24 08:03
DDと同じコードをそっくりそのままD3Dで書く方法を聞いている
取り込まれた先のクラス/関数を答えれ
306デフォルトの名無しさん:03/03/24 08:04
Z座標の固定なんてふざけたのは置いといてな
>>305-306
変換するソフトを自分で作れ。
>>305
そんなもんない

アフォですか?
>>305
たとえ DDraw のコードをそのまま再利用できるとしても
テストやデバッグの手間が膨大になるだろうから
一から組んだほうがいい。
>>305は組めません
>>305は寿命に達したプログラマか偽プログラマ。
寿命だろ
いまさらDDrawなんて騒いでるヤツはハッキリ言って使えん
>>305
頭悪そうだな
>>305
高校程度の線型変換はできるようにしといてね
狭量な人たちだなあ。
ここはC#のManagedDirectXのスレなんだし、別にカッティングエッジ(ってほど大層なもんでもないけど)を気取ることもないじゃん。
人も少ないんだからマターリ行こうよ。
316デフォルトの名無しさん:03/03/24 15:23
ここは三次元で奥行きを固定したものが
二次元と思っているアフォしか居ないのか
三次元は三次元だろベクトル的に別物
俺が聞いているのは二次元の描写方法

はやくDDがD3Dに取り込まれたクラス教えれ
>>316
ネタで言ってるとしか思えん
MSDN見ろよ
>>316
何をしたいのかを具体的に述べてくれ
>>316
無益で身勝手な発言は要らん。
自分専用のスレ立ててくれ。
>>319
無益で身勝手なスレのほうがもっといらないと思う
コード置換するだけで動くようにしたいんでねーの?
コード置換で動くようにしたいってことは、C#でDirectX7以前のDirectDrawを使ってたのか?
それだったらそのままやればいい。
そうでないならスレ違い。
C#でマネージドなDirectDrawを使いたいんなら、
Microsoft.DirectX.DirectDrawのネームスペースにあるクラス群を。
サンプルは上の方のレスにもあるけど
http://www.microsoft.com/japan/msdn/directx/japan/dx9/mxd1.asp
でファイナルアンサー。
>>315
じゃあお前が相手してやれよ。
マターリマターリと。
325315=322:03/03/25 06:01
>>323
相手してみた。
文系なんちゃってPGな自分には、3Dはだめぽ。
>>316
漏れはDirect Drawとまったく同じ命令でDirect 3Dを使えるcomオブジェクトを作ったが?
ほしいか?まあ、ほしいといってもやらんがな。無いなら作れ。
>>277
この本、3Dの入門用には凄くいいと思うけど、惜しい事に
一番肝心な、P112,113の図3.3、3.4が間違っているように
見えるのは漏れだけ?
げ、その本を参考にして勉強してるけど、
間違ったこと覚えたくないなぁ。
図がおかしいといっても、本文をちゃんと理解して、サンプルコードを実際に
動かしてみれば気づくと思うので、間違って覚える事は無いと思う。
331デフォルトの名無しさん:03/03/25 22:52
>>328
著者か出版社にメールしてあげてればよいかと。
正誤表くらい挟むようになるかも知れんし。
>>332
うい。出版社にメールした。

この本、柔らかいけど甘えを許さない文体が良いね(w
9.0a入れるとデバッグ用DLLが無くなるので注意な(;´Д`)
みつけた、DX9 C#情報サイト(個人)
http://fe0r.tripod.co.jp/
>>335
その作者には悪いんだけど、今のところあんまり役に立ちそうにない。
今後の更新に期待。
質問です。
DirectDrawで、
DrawDevice.SetDisplayMode(ScreenWidth, ScreenHeight, 8, 0, false);
とディスプレイモードをセットし、
BackImage.bmpという640*480 256色の画像を
BackImageSurface にロードし、
BackSurface.DrawFast(0, 0, BackImageSurface, new Rectangle(0, 0, 640, 480) ,
                DrawFastFlags.Wait | DrawFastFlags.SourceColorKey);
FrontSurface.Flip(BackSurface, FlipFlags.DoNotWait);
と、やるとBackImage.bmpの左上一部(320*240くらい)だけが拡大されて
表示されるのですが、どんな原因が考えられますか?
書き忘れましたが、BackImage.bmpのロードは
BackImageSurface = new Surface(BackImageFileName, Description, DrawDevice);
[Descriptionは空]
でやっています。
>>338
ScreenWidth, ScreenHeightが320,240になってるってオチはないよね。
わからないです。

んで質問。
FPSが動的に変わるようなゲーム(1フレームの移動量を前フレームからの経過時間を使って計算するような)って、
リプレイを保存しようと思うと、フレームごとにそのときの時間も保存して、それをもとにリプレイ再生しないといけないよね。
でも再生するときにFPSをぴったり同じにしないと滑らかに再生できないと思うんだけど、
何か方法あるのかな。
リプレイ作るようなゲームは固定FPSにするのが一番なのかな、やっぱり。
内部処理は50fpsとか100fpsとかで固定、
描画は垂直同期に合わせて補間が流行らしい。
>>340
処理と描画でスレッドをわけるってこと?
なるほど。てことはスレッド処理の勉強もしないといけないのか。
マルチスレッディングはデバッグ大変そうで避けてたんだけど……。
とりあえず設計考えてみるか。
ときに、固定FPSにするのって、途中でsleep入れて時間調整するの?
sleepって精度悪そうなイメージがあるんだけど。
それともループでtimeGettimeかなんかでやるのかな。
CPU仕様率が常に100%になるのってなんとなく気持ち悪いんだけど、仕方ないかな?
>>341 もしスレッドの勉強をしたいなら
Javaの本で申し訳ないんだけど、
結城のデザパタ本(マルチスレッド編)を読んでみては?
とりあえず、「取っ掛かりの一冊」という点ではお勧め。
AmazonでJava・結城・デザインパターンとかで検索かければ出てくると思う。
344342:03/03/27 18:05
ttp://t-tail-web.hp.infoseek.co.jp/program/el/index.htm
ここのelFPSのソースみたらなんとかわかったような感じ
345341:03/03/27 18:06
>>343
マルチスレッド編じゃない方を探してたときに見かけました。
まだ売ってるかな?
買ってきます、ありがとう!
>328
DirectX9 3Dゲームプログラミング vol.1
訂正出ました。
ttp://www.kohgakusha.co.jp/support/c_sharp/index.html
347338:03/03/27 19:47
>>339
それはないですね...
もう原因不明なんでしょうか...
>>342
なんのためにマルチメディアタイマがあるとお思いか。
349340:03/03/27 20:47
>>341
スレッド使わなくてもできるにょ。操作性は若干落ちると思うけど。
擬似コード↓

double gameTime = 0.0;
double renderingTime = gameTime;

double gameStepTime = 1.0 / internalFrameRate;
double renderingStepTime = 1.0 / refreshRate;

while (true) {
  renderingTime += renderingStepTime;
  
  while (gameTime < renderingTime) {
    gameTime += gameStepTime;
    Step();
  }
  Render(renderingTime);
  PresentWithVsync();
}
>>348
重い描画処理の同期にマルチメディアタイマーは危険すぎる
351340:03/03/28 11:46
>>350
なんで?
>>351
描画が追いつかなかったら困るじゃん
>>351
マルチメディアタイマーの優先順位が高いので、
システムが必要とする処理が延滞し不安定になる
コールバック中に呼び出していいAPIは基本的に以下のものだけ
PostMessage, timeGetSystemTime, timeGetTime, timeSetEvent, timeKillEvent,
midiOutShortMsg, midiOutLongMsg, and OutputDebugString.
割り込み処理内に重い処理を全部詰め込む必要なんかないじゃん。
だからコールバック中に使っていいAPIに
DirectX関連は含まれていないのだが・・・
ヘルプには目を通してくれ

シングルスレッドのランタイムライブラリをマルチスレッドで呼ぶのに似た危険が伴う
運が良ければ動くというだけ
コールバック関数はメッセージ投げるだけにすりゃええんちゃうか?
やったことないから知らんけど。
メッセージを投げても実際に処理されるタイミングは
いつになるか分からないのでコールバックの意味がない
いつ処理されるかを保証するなんてリアルタイムOSでない限り無意味
へりくつは、くだらないからやめようよ。
アイドル状態になればすぐメッセージが来ると思うぞ。
少なくともWM_TIMERやSleepで同期取るよりマシではないのか?
わざわざWM_TIMERがバッファ中に一つしか存在しないように設計されている理由を考えないんだろうな
メッセージバッファがパンクする危険を冒してまでやりたければそうすればいい
うーん、C#的にスマートな解決方法を提示したほうがいいのでは。
>>361
同期取るのだけが目的だから、メッセージ処理自体も一瞬で済ませればいいだろ。
>>363
それでは結局どこで描画するの?

それからマルチメディアタイマーから送ったメッセージが
メッセージループのスレッドにスイッチする前に2つバッファに貯まったとすると
次にそのメッセージが処理されるのは短い間隔で2つ一気に処理されることになる
マルチメディアタイマーでタイミングをとる意味がないと思うのだが?
それだと単なるタイマーの横流しじゃん
>それでは結局どこで描画するの?

せやから別スレッドとちゃうんか。

>メッセージループのスレッドにスイッチする前に2つバッファに貯まったとすると

だから溜まらないようにするんだろ。
>せやから別スレッドとちゃうんか。
描画をスレッドでやるということは、
わざわざマルチメディアタイマーからメッセージを投げて結局何をしてるの?
それから別スレッドの描画部分が待ちを行う部分の処理はどうやってやるの?
そこが重い処理をすると当然メッセージループにスイッチするタイミングが遅れるんだけど

>だから溜まらないようにするんだろ。
OSのスケジュールによって制御される限りプログラム的な努力では
改善出来ない部分だけどどうやって貯まらないようにするの?
また、スレッドのスイッチに依存するとなると、
精度はSleepと変わりないんだけどマルチメディアタイマーを使う意味は?
げ、DirectX9.0aいれたら、
VisualStudio .NETでビルドできなくなってしまった・・・。
参照を再追加しようとしましたが、
なくなってしまって登録できません。
これは、どうやって対応すればよろしいのでしょう?
>>368
確かDirect9aにはデバッグビルドが含まれてないから、そのあたりがからんでいるのか……?
違うかなあ。
誰かヘルププリーズ。
ManagedDirectXのリファレンスがあまりにもクソなので、
やればやるほどC++版への理解が深まっていく罠。
わかってしまえばManagedは楽で楽でたまらんのだけど……。

ピクセルシェーダは誰か神がサンプル出してくれるまでやめとくか。
371JGreener:03/03/30 05:12
DirectX9 3Dゲームプログラミング vol.1買ってみました。
買って気が付いたんですが、これVisual C#じゃないとかなり厳しいですね。
SharpDevelop+SDKでがんばろうとしたんですが、VC#が自動生成するコードがないと無理っぽいです。
ネットで探すしかないかなぁ。
本買う前に気づけよと、自分に言いたい(汗
>>371
そんなに高くないんだしVC#.net買っちゃったほうが幸せになれるような。
でもDirectXSDKについてるサンプル(チュートリアル2とか)とこの本見比べればだいたいわかると思うよ。
むしろVC#のウィザードで生成されるコードより量が少ない分見やすくていい。
373368:03/03/30 19:41
だめだ。
SDKの再インストールしてもだめだし、
OSを再インストールするしかないのでしょうか汗

>>373
まさかとは思うがマネージライブラリをDLL指定ではなく
最初に表示される一覧から探そうとしてないよな?
375368:03/03/30 20:53
DirectXに関連があると思われる、DLLを探してみたのですが
(C:\winnt,C:\DXSDK等)見つからなくて。
なんというDLLファイルを参照して追加してあげればいいのでしょうか?
実行と、開発に必要なライブラリが共通な.NETの特徴を考えれば
どこにあるかはすぐに分かると思うのだが
見つけられないのなら探す気がないとしか思えない
377368:03/03/31 00:49
>>376
探してみつけました。9.0sdkの中から。
明らかに、MSのミスです。

>>376
GAC?
>>377
ランタイムを更新したのであればSDKの方は使うべきではない
OSの入っているフォルダ側のDLLを使うべし
380デフォルトの名無しさん:03/04/02 18:55
安芸
DirectDraw.Surface.Lockから返ってくるByte配列がSurfaceのサイズなんですが、8BPP以外の場合、
どうやっていじるんでしょ?
それとも何か勘違いしているのでしょうか?
382 ◆7.nxhCwAiQ :03/04/04 20:32
工学社から出版されている
「Directx9実践プログラミング」
ってゆう本もってる方いないでしょうか?
工学社?
>>381
フォーマット一つ一つにあわせてルーチンを書くだけ
385 ◆7.nxhCwAiQ :03/04/04 21:42
持ってるひとがいましたら
2章の4の「画面モードを切り替えるプログラム」
のところのデバイスの作成で、
g_D3DPPFull.Flags= D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
を付け加えたいのですが、これを加えると、
ウィンドウをフルスクリーンにするときにウィンドウが消えてしまいます。
どうしたらよいでしょうか?
DirectX8以降はクリッパーがないからその方法では
標準コントロールは表示できない
387 ◆7.nxhCwAiQ :03/04/04 22:19
ではどのようにすればよいのでしょうか?
標準コントロールの代わりを自分で描く
もしくはフルスクリーンにした後ウインドウスタイルをフレーム有りに戻し
標準コントロールがある位置を計算に入れそこには描画しない
389 ◆7.nxhCwAiQ :03/04/04 22:34
ではIDirect3DDevice9::SetDialogMode
はせっかくあるのに使えないのですか?
使えないって、
正常に動作するものを自分の都合で使えないと言うのか?
自己中だな
391 ◆7.nxhCwAiQ :03/04/04 22:49
>>386
で表示できないといわれたので、、
ちがうのですか?
指定した通りフルスクリーンにはなる
あとは自分の望むように描画するだけ
393 ◆7.nxhCwAiQ :03/04/04 23:11
IDirect3DDevice9::SetDialogMode
を使いたかったので本を参考にして
デバイスを作成し、
2章の4と2章の2(基本的なウィンドウプログラム)それぞれやってみると
2章の2では正常にダイアログボックスが表示され
2章の4では切り替え時にウィンドウがクローズしてしまうのです。

それで調べてみると
g_D3DPPFull.Flags= D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
がうまくいってないようなのです。

2章の2ではうまくいくのに
2章の4ではうまくいかないのはなぜでしょうか。
394 ◆7.nxhCwAiQ :03/04/04 23:25
うまく表現できないのですが、
フルスクリーンのときのデバイスをこのようにして
ZeroMemory(&g_D3DPPFull, sizeof(g_D3DPPFull));
g_D3DPPFull.BackBufferWidth= g_sizeFullMode.cx;
g_D3DPPFull.BackBufferHeight= g_sizeFullMode.cy;
g_D3DPPFull.BackBufferFormat= D3DFMT_X8R8G8B8;//D3DFMT_UNKNOWN;
g_D3DPPFull.BackBufferCount= 1;
g_D3DPPFull.MultiSampleType= D3DMULTISAMPLE_NONE;
g_D3DPPFull.MultiSampleQuality= 0;
g_D3DPPFull.SwapEffect= D3DSWAPEFFECT_DISCARD;
g_D3DPPFull.hDeviceWindow= hwndApp;
g_D3DPPFull.Windowed= FALSE;
g_D3DPPFull.EnableAutoDepthStencil= FALSE;
g_D3DPPFull.AutoDepthStencilFormat= D3DFMT_UNKNOWN;
g_D3DPPFull.Flags= D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
g_D3DPPFull.FullScreen_RefreshRateInHz= 0;
g_D3DPPFull.PresentationInterval= D3DPRESENT_INTERVAL_IMMEDIATE;
として
395 ◆7.nxhCwAiQ :03/04/04 23:26
// 初期化で初めてD3DDeviceオブジェクトを作成するときに
if (g_bWindow)
g_D3DPP = g_D3DPPWindow;
else
g_D3DPP = g_D3DPPFull;
hr = g_pD3D->CreateDevice(Adapter, Device, g_hWindow,
D3DCREATE_HARDWARE_VERTEXPROCESSING, &g_D3DPP, &g_pD3DDevice);
if (FAILED(hr))
{
hr = g_pD3D->CreateDevice(Adapter, Device, g_hWindow,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &g_D3DPP, &g_pD3DDevice);
if (FAILED(hr))
return DXTRACE_ERR("InitDXGraphics CreateDevice", hr);
}
g_pD3DDevice->SetDialogBoxMode(true);//ここでダイアログボックスモードをせっていしました。


するとデバイス作成に失敗してウィンドウが
DestroyWindow(hwndApp);
によってクローズされてしまうのです。

どうすればなおるでしょうか?
396 ◆7.nxhCwAiQ :03/04/04 23:39
一方
2章の2の初期化のとき同様に
ZeroMemory(&g_D3DPP, sizeof(g_D3DPP));
g_D3DPP.BackBufferWidth = g_sizeFullMode.cx;
g_D3DPP.BackBufferHeight = g_sizeFullMode.cy;
g_D3DPP.BackBufferFormat = g_formatFull;//D3DFMT_UNKNOWN;
g_D3DPP.BackBufferCount = 1;
g_D3DPP.MultiSampleType = D3DMULTISAMPLE_NONE;
g_D3DPP.MultiSampleQuality= 0;
g_D3DPP.SwapEffect = D3DSWAPEFFECT_DISCARD;
g_D3DPP.hDeviceWindow = g_hWindow;
g_D3DPP.Windowed = FALSE;
g_D3DPP.EnableAutoDepthStencil = FALSE;
g_D3DPP.AutoDepthStencilFormat = D3DFMT_UNKNOWN;
g_D3DPP.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
g_D3DPP.FullScreen_RefreshRateInHz = 0;
g_D3DPP.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

HRESULT hr = g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWindow,D3DCREATE_HARDWARE_VERTEXPROCESSING, &g_D3DPP, &g_pD3DDevice);
if (FAILED(hr))
{
hr = g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, g_hWindow,D3DCREATE_SOFTWARE_VERTEXPROCESSING, &g_D3DPP, &g_pD3DDevice);
if (FAILED(hr)){return DXTRACE_ERR("InitDXGraphics CreateDevice", hr);}
}
g_pD3DDevice->SetDialogBoxMode(true);

としてやるとちゃんと表示されるのです。
C++のスレに・・・。
398 ◆7.nxhCwAiQ :03/04/05 01:06
ヘルプを探したところ
デバイスの一部として作成されたバック バッファは、プレゼンテーション パラメータで D3DPRESENTFLAG_LOCKABLE_BACKBUFFER が指定されている場合にのみロック可能である。マルチサンプル バック バッファおよび深度サーフェイスはロックできない。
と書いてありました。
そこで

// 深度/ステンシル・バッファのフォーマットを調べる
の所の
// フルスクリーン・モード
を全て除外した所正常に動作しました。
2章の2では
深度サーフェイスについてまだ触れてなかったから
できただけのようでした。
みなさんありがとうございました。


>>397
スレ違いになってしまってもうしわけありません。
(directx9でC++についてのスレがなく
立てるにも及ばないだろう思い
ここにて質問させていただきました。)



399デフォルトの名無しさん:03/04/05 01:46
ちょっとスレ違いのような気もするのですが質問させてください

DirectSoundを使用して、DirectSound未使用のアプリを
DirectSoundで音を鳴らすように横取りのようなことはできますか?
>>399
やり方はわからんが、いったい何の利点があるの?
2ちゃんねるの音楽を
5.1チャンネルにできたりするんじゃない?

俺にはわからんが…
>>400
DirectSoundを使用してないソフトは音量を変更=PCの音量変更
あと、複数同時に再生できない。
そういうタチの悪いソフトを変えたいんじゃないかなぁ。リアルプレーヤーとか。

キーボードフックみたいな感じなんだろうけど
俺にはわからんな・・・
403デフォルトの名無しさん:03/04/05 12:51
ageとくか
>>401
DirectSoundで5.1ch?
ほう、いつからそんな機能が追加されたんですか?
>>404
WAVEFORMATEXTENSIBLE
406デフォルトの名無しさん:03/04/05 20:10
DirectSound3D
407デフォルトの名無しさん:03/04/07 07:42
Zバッファだけ書き込んでピクセルは書かないのってどうすればいいのかな。
Device.RenderStateのプロパティのどれかでいけそうな気がするんだけど。
Device.RenderState.ZBufferFunction=Compare.Neverと設定して
描画するとZバッファにも書き込んでくれないみたいだし。
C++ではD3DRS_COLORWRITEENABLEが相当するっぽいよ。
C++だからこそ美しくやることはできるナリよ、C#はちょっと中途半端でねー
410407:03/04/07 09:05
>>408
なるほど!
ManagedDirectXだとDevice.RenderState.ColorWriteEnableのようです。
早速試してみたところ、ばっちり出来ました。ありがとうございます!
ところで、レンダーステートの変更に伴うペナルティってどれくらいあるんでしょうね。
レンダーステート変更(Zバッファのみ)→全オブジェクト描画→レンダーステート変更(色情報+Zバッファ)→全オブジェクト描画
と、
レンダーステート変更(Zバッファのみ)→オブジェクト描画→レンダーステート変更(色情報+Zバッファ)→オブジェクト描画を全オブ稀有とに対して行う
のってどれくらい速度に変化あるのかなあ。
>>410
こんなところに書き込んでいる暇があれば
プログラムを作って試した方が速いと思うが
>>409
でもC#+ManagedDirectXは確実にC+++DirectXのときより楽ですよ。
C++で美しいコード書けるスキルがないからかも知れませんが……。
413407:03/04/07 10:07
>>411
ええ、そのとおりですね。
そこで試してみました。
結果、408の前者の方が後者より1.5倍ほど処理時間がかかっていました。
こんなに変わるものなんでしょうか……ちょっと驚きです。
414407:03/04/07 10:11
ちなみに、用いたデータがこのようなもので
vertexBuffer =new VertexBuffer[50000];
Random rand=new Random();
CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[5];
GraphicsStream stm=null;
for (int i=0;i<50000;i++)
{
    vertexBuffer[i]=new VertexBuffer(typeof(CustomVertex.TransformedColored), 5, device, 0, CustomVertex.TransformedColored.Format, Pool.Default);
    stm = vertexBuffer[i].Lock(0, 0, 0);
    verts[0].X=rand.Next(200);verts[0].Y=rand.Next(200);verts[0].Z=(float)rand.NextDouble(); verts[0].Rhw=1; verts[0].Color = System.Drawing.Color.Red.ToArgb();
    verts[1].X=rand.Next(200);verts[0].Y=rand.Next(200);verts[0].Z=(float)rand.NextDouble(); verts[0].Rhw=1; verts[0].Color = System.Drawing.Color.Red.ToArgb();
    verts[2].X=rand.Next(200);verts[0].Y=rand.Next(200);verts[0].Z=(float)rand.NextDouble(); verts[0].Rhw=1; verts[0].Color = System.Drawing.Color.Red.ToArgb();
    verts[3].X=rand.Next(200);verts[0].Y=rand.Next(200);verts[0].Z=(float)rand.NextDouble(); verts[0].Rhw=1; verts[0].Color = System.Drawing.Color.Red.ToArgb();
    verts[4]=verts[0];
    stm.Write(verts);
    vertexBuffer[i].Unlock();
}
stm.Close();
415407:03/04/07 10:14
レンダリングメソッドはこのようなものです。
[レンダーステート変更節約バージョン]
protected override void Render()
{
  long time=DateTime.Now.Ticks;
  device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.White, 1.0f, 0);
  device.BeginScene();
  device.VertexFormat = CustomVertex.TransformedColored.Format;
  device.RenderState.CullMode=Cull.None;

  device.RenderState.ShadeMode=ShadeMode.Flat;
  device.RenderState.ColorWriteEnable=0;
  for(int i=0;i<50000;i++)
  {
    device.SetStreamSource( 0, vertexBuffer[i], 0);
    device.DrawPrimitives(PrimitiveType.TriangleFan, 0, 2);
  }

  device.RenderState.ShadeMode=ShadeMode.Gouraud;
  device.RenderState.ColorWriteEnable=ColorWriteEnable.RedGreenBlueAlpha;
  for(int i=0;i<50000;i++)
  {
    device.SetStreamSource( 0, vertexBuffer[i], 0);
    device.DrawPrimitives(PrimitiveType.LineStrip, 0, 4);
  }
  device.EndScene();
  time=DateTime.Now.Ticks-time;
  Console.WriteLine("{0}",time);
}
[レンダーステート変更ふんだん使用バージョン]
protected override void Render()
{
  long time=DateTime.Now.Ticks;
  device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.White, 1.0f, 0);
  device.BeginScene();
  device.VertexFormat = CustomVertex.TransformedColored.Format;
  device.RenderState.CullMode=Cull.None;

  for(int i=0;i<50000;i++)
  {
    device.RenderState.ShadeMode=ShadeMode.Flat;
    device.RenderState.ColorWriteEnable=0;
    device.SetStreamSource( 0, vertexBuffer[i], 0);
    device.DrawPrimitives(PrimitiveType.TriangleFan, 0, 2);
    device.RenderState.ShadeMode=ShadeMode.Gouraud;
    device.RenderState.ColorWriteEnable=ColorWriteEnable.RedGreenBlueAlpha;
    device.DrawPrimitives(PrimitiveType.LineStrip, 0, 4);
  }

  device.EndScene();
  time=DateTime.Now.Ticks-time;
  Console.WriteLine("{0}",time);
}
417407:03/04/07 10:23
すみませんちょっと長すぎました。
AthlonXP1700+
1024MB_DDR333
Radeon9000
の環境で、>>415が1フレーム1200msec程度、>>416が1700msec程度でした。

検証というには中途半端なので報告しようかどうしようか迷ったのですが、一応書いてみました。
DirectX未経験の人には、
C++のから学んで、C#のを学んだほうが早いです?
C#のものは、まだ資料が少ないらしいですが、
C++は資料が充実しているので。
>>418
難しいな。
VC++でelとかのライブラリ使えばDirectXの面倒な部分は覚えなくていいからそれが一番楽かもしれない。
C++やったことあるならC++用のソース読みながらそれっぽい関数をManagedDirectXで探して試して覚えれば、
DirectXの泥臭い部分に悩まされにくいからC++で一から覚えるより楽かもしれない。
C#自体は簡単だし、ManagedDirectXは新しくつくっただけあってすっきりしてるし、.netフレームワークの恩恵も受けやすいし。
C++でDirectXも直接触るなら、資料が豊富なのはナイス。MFCとかわかってて、DirectX使わないアプリならVC++で書けるってんなら、
覚えるのがDirectXだけですむ分楽、かなあ。

どこまでやるかとか、時間の多寡とかによるんじゃないかな。
ManagedDirectXのヘルプがもっとしっかりしてたら迷わず推せるんだけど。
420418:03/04/08 12:32
レスどうも。
なるほど。しばらくたてばC#のものの資料も充実してくるでしょうし、
がんばってC#のものを学習しようと思います。

421デフォルトの名無しさん:03/04/08 18:42
Alpha-21264C 125GHz
4GB VC-SDRAM
wildcat3-6210 416MB
の環境で、>>415が1フレーム500msec程度、>>416が700msec程度でした。

検証というには中途半端なので報告しようかどうしようか迷ったのですが、
一応書いてみました。
422デフォルトの名無しさん:03/04/08 18:43
1.25GHzでした
423デフォルトの名無しさん:03/04/09 02:49
directx8.0aかな?SDK消してからSDK9.0インストールしようとしたら
C\DXSDKは8.0がインストールされてるからディレクトリ変えろと表示されるのですが
C\DXSDKにインストールするにはレジストリエディタ使うしか方法はないでしょうか?
>>423
C:\DXSDK\ でなく C:\DXSDK9\ とかにインストすればいいじゃん。
425初心者:03/04/11 01:12
 ロボットの手足を動かすプログラムを作りたくて、「3Dゲームプログラミング
Vol.1」 を買ってきたのですが、Xファイルを読み込んで処理を行うサンプルが
ありませんでした。
 5章の関節を動かすサンプルを改造して、手足のパーツをDoGAで作成した
Xファイルのデータに、置き換えようと試みたのですが、どーやっていいのか、
さっぱりわかりません。
 同じようなことをやったて成功した方いらっしゃいますか?
 どこかにサンプル or 解説がありましたら、教えていただけると助かります。

>>425
本の方では頂点バッファで描画しているところを、XファイルのMeshを描画する
ように変更すれば、出来そうな気がする。
DX9 SDKのTutorial 6を解析すれば、どうすれば良いか判ると思われ。
すみません。
VC++のDirectx9のスプライトについて質問なのですが
DX9・VC++スレがないので
ここで質問させていただきます。

D3DXCreateTextureFromFileEx関数で
画像からテクスチャを作成するとき
高さと幅を指定できるのですが
250を超えると
高さと幅が一気に大きくなってしまい
うまく指定できません。

どうすれば250以上の大きさにできるでしょうか。
スレ違いのところ大変もうしわけないのですが
ご教授ください。
428デフォルトの名無しさん:03/04/11 20:53
あげ忘れました
フィルタのフラグ見れ。死ぬほど話題になったことだから。
430デフォルトの名無しさん:03/04/11 21:17
D3DX_DEFAULT
じゃまずいのですか、、
色々試してみますね。

駄目だったらまたきます。
431デフォルトの名無しさん:03/04/12 00:19
できました。
ありがとうございました。
432デフォルトの名無しさん:03/04/13 02:18
"(,,゚Д゚)∩先生質問です"

Xファイル以外から生成したMeshにTextureを貼る方法が分かりません。
具体的には Mesh.Cylinder()で作った円柱の側面にTextureを貼りたいのですが・・・
頂点のuv座標をセットしてからSetTextureを呼び出しなさい。
434デフォルトの名無しさん:03/04/13 22:49
( ´_ゝ`)フーン よくわかんないな
ヌヒらよ、C#でDirectXなんて使えないと知れ。

ププププププ。
たまに、オブジェクト指向プログラミングに
手を出せないスパゲティープログラマが
ちょっかいだしにくるんだね。
いくらなんでもdirectXわかんないスパゲティプログラマなんているのか〜?プ
時代についていけず、泣きわめいている荒らしは放置。
ほっといて、先に行こう。
439初心者:03/04/14 14:48
>>426

 DX9 SDKのTutorial 6 って読み込んだメッシュのデータが動いてるんじゃなくて、
視点が動いてるように見えるけど、それでいいのかな?
 この虎?の方を動かしたいんだけど、どーやったらいいのかな?
>>439
worldを弄くればいいんでない。
まずヘルプを読む。
>>439
気持ちはわかるけど、あれでいいのだ。
device.Transform.WorldはWorld座標系への変換マトリックスなのだ。
一つオブジェクトをレンダリングするたびにセットして使うものなのだ。

オブジェクトの位置は変えずに一つずつ視点を変えて描画してると考えてもいいのかもしれない。

と、思うのだ。間違ってたらゴメンソ。
443初心者:03/04/16 10:21
>>442

> オブジェクトの位置は変えずに一つずつ視点を変えて描画してると考えてもいいのかもしれない。  

 そうすると、やっぱりカメラが動いてるというイメージになってしまう。
 基本的なとこで勘違いしてるのかな、もう一度、ソースをながめてみるっす。
トラにはボーンもなにも含まれてない。スキンメッシュじゃない。動かしようがない。
DOGAってやつはボーン入りXファイル生成できるの?
できないなら自分でボーン設定すること。動かすのはそれから。
断言しないけど多分初心者にはいきなりは無理。嫌味じゃなくて。
445初心者:03/04/16 11:25
>>442

 DX9 SDKのTutorial 6 の中にある meshes.cs の SetupMatrices メソッドで
カメラの位置を変えているように見えます。
 カメラの視点を変えずに、オブジェクトを動かすには、読み込んだXファイルの
頂点の座標の情報に、何らかの変換を加えないといけないように思うのですが、
なんか根本的に勘違いしているでしょうか?

 3Dってちゃんと勉強しないと、適当にはできないんですねぇ (^^;
446初心者:03/04/16 11:35
>>444

 やっぱ、初心者にいきなりは無理でしたか。

 単純に回転させるのも、ボーン設定しないとだめなんですか?
単純な回転ならできる。
448初心者:03/04/16 12:27
>>447

 オブジェクトの形が変形しないことを前提に、そのオブジェクトの原点を元に、
XYZの各軸で回転させることができる、と考えていいのでしょうか。
 
yes
>>448
チュートリアル6よりも前に
worldを扱うチュートリアルなかったっけ?
451初心者:03/04/16 12:46
>>442

 少しわかりました。
 device.Transform.World に、各オブジェクトの変換マトリックス(?)を渡して
レンダリングすればいいってことですね。
eメールにsageと書き込んで投稿して。
スレッドを闇雲に上げないように。
453初心者:03/04/16 15:02
>>452

 あっしのことですか?
 すいません、マナーを知りませんでした。
454デフォルトの名無しさん:03/04/16 17:37
ん?
455デフォルトの名無しさん:03/04/16 19:09
プログラムの話とか難しくて分からないからどうでもいい
もっと将来性とかの話について議論しれ
>>455
ここを何の板だと思ってますか、キミは。
>>455は寿命に達したプログラマか偽プログラマ。
>>451
そうそう。
そういうこと。
459山崎渉:03/04/17 15:17
(^^)
460デフォルトの名無しさん:03/04/18 21:59
age
DirectX SDKをインストール。
Visual C#起動。
「新しいプロジェクト」からDirectX9 Visual C# Wizardを使ってのコード生成。
とりあえず、初期設定のまま。
そしたら…

.NETアセンブリ'Microsoft.DirectX.dll'が見つかりませんでした。

という警告文が。

再インストールしても直りませんでした。
どうしてでしょうか?
>>462
このスレ読み返してみて。
>>462
ManagedDirectXのインストールに失敗してるか、参照設定できてないか。
C:\Windows\Microsoft.NET\Managed DirectX\ってフォルダができてるかどうか確かめて見れ。
できてたら手動でこのフォルダ内のDLLファイルを参照追加してやればいいはず。
うちはノートにインストしたときどうしてもうまくいかなかったんで、他からコピーした。
465462:03/04/19 23:32
C:\Windows\Microsoft.NET\Managed DirectX\ フォルダ内にはxmlファイルしかありませんでした。

自分、過去にはDirectX9SDK使ったことがあった(その後、理由があってアンインストールしました)んですが
そのときのが残っていたのか、
C:\Windows\LastGood\Microsoft.NET\Managed DirectX\ フォルダから各種dllが見つかったんで
とりあえずはそれらを引っ張り出して使おうかと思います。


レスありがとうございました。
466山崎渉:03/04/20 03:04
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
467山崎渉:03/04/20 03:42
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
468デフォルトの名無しさん:03/04/23 20:00
ここでいいのかな?
教えてください。まったくの素人です。

ジョイスティック(フォースフィードバック有)(Microsoft(R) SideWinder(R) Force Feedback 2)を使っての質問です。
スティックを軽く握った状態(ジョイスティックはON状態)で、PC側からスティック側に位置情報の命令を出し、
スティックを動かすことは可能なのでしょうか?(VC++とDirectXで)

簡単に書くと、PCからジョイスティックを制御できるかどうか?なんです。

よろしくお願いします。

469デフォルトの名無しさん:03/04/23 20:26
SetDialogBoxMode(true);
でダイアログを表示しようと思ったのですが
スタイルにチャイルドを指定すると表示しなくなるのです。

どうすればチャイルドでも表示させれるでしょうか。


470bloom:03/04/23 20:26
>>468
ジョイスティックを動かす????
フォースフィードバックで振動させることくらいならできるけれども…
そもそもジョイスティックを動かしてどうするのだね?

# コンピュータの世界では「初心者」「素人」などの言葉は禁句です。
高額ジョイスティックは動いたり重たくなったりするのは常識ですよ
それよりC#スレでVC++の質問してるところにツッコミいれるべきかと
473デフォルトの名無しさん:03/04/23 20:39
ここでいいのかな?
教えてください。まったくの素人です。

キーボード(Microsoft Natural Keyboard)を使っての質問です。
ホームポジションに手を置いた状態で、
PC側からキーのオンオフの情報の命令を出し、
キーを上下させることは可能なのでしょうか?(VC++とDirectXで)

簡単に書くと、PCからキーボードを制御できるかどうか?なんです。

よろしくお願いします。
474デフォルトの名無しさん:03/04/23 20:41
>>468
そのサイドワインダーてのは、自動でステックが動かす機能がついてるのか?
まあ、ついてる意味が無いから無理だな
475デフォルトの名無しさん:03/04/23 20:42
c# managedで使い物になるんか?
c++の方がいいだろ
遅そう
476デフォルトの名無しさん:03/04/23 20:44
>>473
そのMicrosoft Natural Keyboardてのは、自動でキーを動かす機能がついてるのか?
まあ、ついてる意味が無いから無理だな
477デフォルトの名無しさん:03/04/23 20:55
>>472
重くなるのはモーターを回して負荷を与えてるだけ
サイドワインダーのステック自体は動かない
どの機種について言ってるんだ?
478468:03/04/23 21:05
>>471-473
ありがとうございます。
無理みたいですね。質問自体変なのかもしれません。
スティックを例えば右に倒したとします。
そこで力を抜いてもPC側でその位置を保持するという命令を出したら保持したり、
そこからPC側で左に傾けるという命令を出したらスティックが左に傾いたりしないのかなと・・・。
479デフォルトの名無しさん:03/04/23 21:08
MSの2じゃないほうだがしっかりと勝手に棒が動くわけだが他の機種は違うのか?
そもそもモーター2個はいってて制御してるんだから後はDirectInputが対応してるかどうかの問題では?
とりあえず直立させることはヘルプ見たらできるって書いてあるぞ
480デフォルトの名無しさん:03/04/23 21:08
>>478
だから元からその機能があって命令が分かればたぶんできるよ
元から無い機能は制御できない
http://www.zdnet.co.jp/magazine/cshop/9801/98game/joy1.html
> この動きは家庭用ゲーム機のコントローラーのように単に
> 振動するといったものではなく、ゲームを開発する側が
> 自由に動きをプログラミングできる。


数名ほど、頭が固い人間がいるようだな。
482デフォルトの名無しさん:03/04/23 21:16
>>481
今のは、勝手に動くようになってるのか
思考停止してたわ。すまんね
勝手に動かさずにどうやってフィードバックを発生させるのだ?とか思ってたのだが
そうとも限らないのか?
484468:03/04/23 21:24
>>474
スティックを握ったら自動で中心の位置に来ると言っていたから、スティックを動かせるのでは
ないかと思ったまでです。

>>479 DirectInputが対応してるかどうかの問題
ということは、ハード的には動作可能ってことですね。

>>480
たしかに元から無い機能は制御できないですね。

>>481
貴重な情報ありがとうございます。希望が見えてきました。
もうそろそろ、フィードバッグバイブやオナホールは出ないのか?
キャラごとに固定的な動きをくねくねと。
486デフォルトの名無しさん:03/04/23 21:34
>>483
例えばパワーステア
この場合はアシストだけれども
487デフォルトの名無しさん:03/04/23 21:51
>>484
DirectXSDKにFFConstサンプルがあるけどこれはどういうもの?
それっぽいと思うんだけど……

コンスタントフォース(constant force)など調べてみたけどあんまり資料ないものなんだね
>>485じゃないけど一発ネタで使うぶんにはおもしろそうなのに
488468:03/04/23 22:14
>>487
DirectXに関してはこれから勉強するという段階なので、???な状態です。すみません。
FFConstサンプル参考にしてみます。ありがとうございます。
489469:03/04/23 22:23
あの、、もしかして既出でしたか?
490動画直リン:03/04/23 22:26
ちょっと、何度もスレッド上げすぎ。
E-MAILにsageと入力して書き込んで。
何仕切ってんねん。第一本来ageるのがデフォルトなんだし。
ageまくるとどういうことになるか、わからないんだろ。
2ch初心者め。
494デフォルトの名無しさん:03/04/24 14:18
>>491>>493がなんかむかつくのでage
>>481
頭が固いのではない、説明が悪すぎ

>>494
こら! 違うだろ
通ならこう汁!
ところでフォースフィードバックエミュレータとかないの?
このスレのせいで興味でたんだけど滅茶苦茶高いじゃん、買えないよ
497初心者:03/04/25 17:04
>>458

 どうもありがとうございました。
 とりあえず、DoGAで作成したロボットを取り込んで、くるくる回してます。
498デフォルトの名無しさん:03/04/25 21:10
すみません。自分OSがXPhomeで
Directx9のプログラムを組んだのですが
友達のパソコンでまったく起動しないのです。
なぜでしょうか?

初期化は本のそのままなので違ってるのは思えないし、
ランタイムは入れてもらったし。。
まったく思いつきません。
他に原因とかあるでしょうか?
>>498
動かないという友達の環境について、ほとんど説明が無いではないか。
まずは、友達の環境について細かく書くことだろうな。
500sage:03/04/25 21:24
友達もXPhomeらしいです。
とりあえずデバイスマネージャでグラフィックカード
を見てもらったのですが
「S3 Graphics ProSavage + utilities」
といってます。

今度は父と母のパソコンで試したのですが
父のパソコンでできましたのですが
母のパソコンではできませんでした。
それで今度はじかにデバッグしてみたのですが
どうやらデバイスの設定を失敗してるようです。
言語はC#それともC++なの?
それと、「動かない」って言っているけど
エラーメッセージとかはなんも出ないのかい?
502sage:03/04/25 22:08
すみません、C++なんです。
原因は下のところだというのまでわかりましたが
hrの判定で失敗ならメッセージボックスを出してみたのですが
ことごとく失敗しているようです。
なぜでしょうか、、
UINT &Adapter;
D3DDEVTYPE &Device;
// アダプタの選択
Adapter = D3DADAPTER_DEFAULT;// プライマリ・ディスプレイ・アダプタ
// デバイス能力の取得
D3DCAPS9 Caps; // 能力を受け取るD3DCAPS9構造体
HRESULT hr;
Device = D3DDEVTYPE_HAL;// HALデバイスをチェック
hr = g_pD3D->GetDeviceCaps(Adapter, Device, &Caps);
DXTRACE_ERR_MSGBOX(NULL,hr);
if (FAILED(hr)){
MessageBox(hwndApp, (LPSTR)"221", "情報設定", MB_OK | MB_ICONWARNING);
}
if (FAILED(CheckDeviceCaps(&Caps)))
{
DXTRACE_ERR("SelectD3DDevice CheckDeviceCaps HAL", E_FAIL);
MessageBox(hwndApp, (LPSTR)"2211", "情報設定", MB_OK | MB_ICONWARNING);
Device = D3DDEVTYPE_REF;// REFデバイスをチェック
hr = g_pD3D->GetDeviceCaps(Adapter, Device, &Caps);
if (FAILED(hr) || FAILED(CheckDeviceCaps(&Caps))){
MessageBox(hwndApp, (LPSTR)"2212", "情報設定", MB_OK | MB_ICONWARNING);
return DXTRACE_ERR("SelectD3DDevice CheckDeviceCaps REF", E_FAIL);
}
}
1.DirectX9のランタイムをインストールしていない
2.グラフィックボードがもともと対応していない
3.何か他にDirectXを使用するソフトが動いている
504sage:03/04/25 22:25
1&2は無いと思います。
2なのでしょうか、でしたらもう駄目ってことですよね、、
505動画直リン:03/04/25 22:26
D3DERR_NOTAVAILABLE
このデバイスは、照会されたテクニックをサポートしていない。

というエラーでした。
解決はしてませんが
ありがとうございました。
結局グラフィックボードでサポートされてない機能を使おうとしただけかよ
GetDeviceCaps
で返ってくる値は

D3DERR_INVALIDCALL メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。
D3DERR_INVALIDDEVICE 要求されたデバイスの種類が無効である。
D3DERR_OUTOFVIDEOMEMORY Direct3D が処理を行うのに十分なディスプレイ メモリがない。

の3つとHELPには記述されているのですが
このような値が返ってくるのです。
このスレ、上がりまくりで
変な奴が沢山粘着しそうだなぁ。
話題も少ないのに、
ひたすら上がってるスレうざいよ。
>>509-510
もうキミの敗北は決定したからあきらめろ。
512デフォルトの名無しさん:03/04/27 12:24
DirectX上げたら参照が無くなった
糞かこれは
514デフォルトの名無しさん:03/04/27 21:21
フォントオブジェクト使って背景白のWINDOWに黒文字表示させるだけの
プログラム作って動かしたら背景が緑とピンクの高速フラッシュで目が
やられそうになるんだけどこれは誰の仕業ですか?
通称『ピカチュー現象』と呼ばれる
純粋なテレビっ子を恐怖のどん底に落としめした
あの現象のことですか?
516514:03/04/27 22:28
解決しますた
>>514
描画前にバックバッファをクリアしないと、そうなるよ。
>>514
うちの環境では緑と赤だったなぁ。
519デフォルトの名無しさん:03/04/28 00:23
c#上で動く、スキンメッシュモーションのサンプルコードを探しています。

スレ上のほうで紹介されてた
> DirectX9 3Dゲームプログラミング Vol.1

は、第5章に人体モーションポイ事がかかれていますが、

>5章 キャrタクタの動作の生成
>5- 1 関節のテスト・プログラム
>5- 2 キャラクタの上下動

この5章のキャrタクタは、スキンメッシュモーションによる紹介でしょうか?
通販で買おうか悩んでます。

もし他にも、c#スキンメッシュモーションのよきサンプルがあったら教えてください。

すまんアゲてしまった
>>519
その本で扱っているのは、剛体 + 関節モデルっす。

C#でスキンメッシュのサンプルは俺も探したけど、見つからなかった。
仕方ないので、自力で移植中。
>>521

ずいぶん マニアックな内容ですな。
サンクス、漏れも自力でやるかなー。

>>522
いや、単に直方体を繋げてるだけで。
別に物理演算したりIKしてるわけではない。
ageにより、
このスレッドを発見して粘着したage厨必死だな。
なにやらsage厨に憑かれてしまったようだな、このスレ。鬱陶しい。
そんなに言いたいことがあるなら批判要望板のスレで主張してきなさいよ。
>>519 でも >>521 でもないですが、同じようなコトやってます。
今、テンプレートの登録と、取得したオブジェクトのGUIDの判定で
困ってるんですが、読み込んだXFileDataのGUIDが、
XFileGuidの全てのフィールドと一致しないんです。
tiny.xを読み込んでるんですが、最初にフレーム(Scene_Root)を
取得するんですが、GUIDを調べるとフレームのGUIDでは無いんです。
ちなみに XFileGuid.Frame と DX9C++リファレンスに載ってるGUIDは
一致してます。
おそらく RegisterDefaultTemplates ではダメで、1つ1つちゃんと
登録しないとイケナイと思って、DX9C++のリファレンスの通りに入れてみたのですが、
次の行で例外が発生してしまいます。
テンプレートの登録はどんなかんじでやるんでしょう?
527526:03/04/28 20:46
<rmxfguid.h>のテンプレートをC#用に加工して読み込んでも同じ結果だったので、
テンプレートの読み込みは問題無いかと思われます。
で問題は、取得した全てのXFileDataのGUIDが全て
4f6be5ff-4e94-328b-b96d-707850b34557
という、どのテンプレートにも当てはまらないGUIDである事です。
529526:03/04/29 18:16
すみません、DX8のtinyサンプルは調べた事あったけど、9は見たことなくて、
さっき見たら、Xファイルの階層とアニメーションを読み込む関数と
インターフェイスがあって、C#はそれっぽいものどころか、リファレンスを見た限り、
D3DXにメソッドがほとんど用意されてないような風味が。
おとなしくC++に帰るか、C#のtinyサンプルリリースを待つか、
または公式の関数、インターフェイス無しでC#でやるか。
んー、これからはC#オンリーで逝きたかったけどなー。どうしよう。

>>528
それ何のサンプル?少なくとも"tiny.x"を再生出来るものでは無いと思うがどうか。
C++で作ってC#に持って行けば?
531526:03/04/29 20:54
スミマセンウソ書いてました。
C#にもアニメーションとメッシュ階層を扱うものと思われるクラスが
ありました。使い方のサンプルは無いわけですが・・・
C++のサンプル解析しながらC#のリファレンスと格闘すれば出来るかもしれません。
だから、>528 がtiny.xを再生するサンプルだってば。
中身見た?
>>532
実行したら何も無い窓が表示されただけなんですが・・・
そちらは再生された?
534532:03/04/30 00:40
うちでは、アーカイブに入っているexeでも、再ビルドしたものでも tinyが再生された。

何も表示されないのは、exeと同じディレクトリに tiny.x と tiny_skin.bmp を置いていない
為ではないかと。
535533:03/04/30 01:33
>>534
うちでは両者でダメですた。作業フォルダを変えたりいろんなトコにファイルを置いたり
してもダメでした。

でもC#でもtiny再生出来るっぽいことがわかってカンゲキです!
新しいメッシュ関連クラスの使い方が参考になります。
今解析中です・・・
536デフォルトの名無しさん:03/04/30 22:24
D3DMATERIAL8のポインタ型名は何ですか?
537動画直リン:03/04/30 22:26
538536:03/04/30 22:43
ムハハハハハhhhhhhhhh!
>>535
うちでも表示された。ので532がネタでないのは確か(532ゴメン)。
なんでそっちで表示されないんだろな。ビデオボードに依存するほど高度なもんではないと思うし。
でも環境依存性があるとしたら知っておきたいので解決したら書き込んでください。
IndexBufferのコンストラクタの第一引数typeIndexTypeって何指定すればいいか知りませんか?
UnManagedだとD3DFMT_INDEX16かD3DFMT_INDEX32みたいなんですが……。
もうちょっと詳しいヘルプが欲しい……。
541540:03/05/01 03:05
もしかしてtypeof(System.Int16)でしょうか。
>>541
typeof(short) です。って、同じか。

ManagedDirectXって、判ってしまえば簡単だけど
そこにたどり着くまでが辛い。
543デフォルトの名無しさん:03/05/02 04:03
今読んでる本のサンプルでXファイルから読み込んだメッシュのワールド座標系へ配置に
もう一つワールドマトリクス作って配置してるんですが
ここら辺解説した参考書はないでしょうか?
DirectX9 + C++ でやってるんですけど、.Xファイルじゃなくて
プログラムからメッシュ作る方法がわかんないのよ。

まずID3DXMesh::LockVertexBuffer メソッドと ID3DXMesh::LockIndexBuffer で頂点情報をセットしました。
その先どうやんの?
Managed DireceX で Wav ファイルのストリーム再生を行いたいのですが
うまくいかないので助けてください。
(なお DirectX 自体使ってみるのは初めてです。)

FileStream fileStream = new FileStream(fileName, ..);
BufferDescription desc = new BufferDescription();
desc.BufferBytes = BYTES_PER_SEC;

SecondaryBuffer ApplicationBuffer = new SecondaryBuffer(fileStream, desc, ApplicationDevice);

上のような感じで
SecondaryBuffer に直接 FileStream を渡したら
BufferDescription で指定した BufferBytes が
ファイルのサイズで置き換わってしまい、
結局ファイル全部を読み込むまで
SecondaryBuffer の生成が終わりません。

C++ 版は StreamData と言うサンプルがあったのですが
C# 版では該当するサンプルが無いので困り果ててます。
ファイル先頭のヘッダ部の切捨て等を自分で行う必要があるのでしょうか?
546デフォルトの名無しさん:03/05/03 14:35
D3DXMATRIX
マトリクス マトリックス どう読んでる?
547デフォルトの名無しさん:03/05/03 22:00
>>736
言葉足らずですいません。

WndProcがクラスのメゾットにできれば、Windowを定義 クリエイト メッセージループ管理 破棄をクラスにまとめ
プログラムの中で動的にメモリに展開して動作させることができます。<これが目的


int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
Main2.wndClassName="WN655";
Main2.Run();
return 0;
}//main2はオリジナルのクラス
このようにできるはず。
wndprocを除いてはクラスの中に押し込んだのですが、wndprocだけが静的に宣言されている状態です。

wndprocはWINDOWSシステムへ登録するコールバック関数なので、問題は簡単ではないようです。

CreateWindow時にアドレスを渡す必要があり、クラスの中で宣言した(普通の)メソッド関数ではうまくいくはずありません。
なにか良い解決方法がないものですかね。

ぐぐるで調べると幾つか候補があるのですが....
548デフォルトの名無しさん:03/05/03 22:00
誤爆ですすいません
>>546
自分はマトリクス
550デフォルトの名無しさん:03/05/04 16:17
質問です。
DX9.0aを導入済の環境(XPPro)に、VS.NET 2003 beta、DX9SDKの順で導入したら、
既存レスでもあるようにMicrosoft.DirectXとかの参照ができませんでした。
うまい対応策はありますか?
自分もVS.NET2002使ってて、DX9.0a入れたら参照無くなった。
MS責任者でてこい!
GACの中のやつをファイルとして参照追加させてくんないから
\MICROSOFT.NET\Managed DirectX\の中にコピーさせて参照させた
とりあえず動くようになったけど、絶対良くないよなぁ…
やっぱMS責任者でてこい!
553VS.NET2003:03/05/05 00:49
vs.net2003でDX9は使えます?

私の場合はうまくいきません。
554_:03/05/05 00:50
>>553
Wizardはマニュアルでインストールする必要があるけど、それ以外は
問題なく使えてます。
556VS.NET2003:03/05/05 05:45
> Wizardはマニュアルでインストールする必要

具体的にどういうふうにやるの?

そもそも、何がどう上手く行かないの?
558VS.NET2003:03/05/05 07:37
>557

VS.NET2003からDX9WIZARDが表示されない
DX9でゲームを作ってるのですが
実際DX9の動く環境ってどのくらい普及してるんでしょうか。
自分の友達の2/3は動かなくてかなり凹んでます。
動くというのはどこまでのレベルかによる
その前提の定義をすっ飛ばして質問するのは、
愚の骨頂としか言いようがない
初期化すらできないものです
.net framework がインストールされていなかったとかいう
くだらないオチは無いんだよね?
DX9 runtimeがインストールされていないというオチだったりして。

DX9でも、旧バージョン相当の機能しか使っていなければ
古いビデオカードでも動く。
実際うちではGeforce2MX200でも動いている。
C#のスレで聞いていると言うことは
DirectX9のマネージライブラリがインストールされていないという落ちでは?
ランタイムは入れました。
C++です。
スレ違いというオチか。
C#のスレでC++の質問をするぐらいだから
自分のミスに気がつかないタイプなんだろう
昔はあったDirectXの総合的な
スレが落ちてなくなってしまったみたいで、
DirectX関連は、ここで聞くような状態になってるのかな。
DirectX総合スレ復活してもよさそうだけど。

まあ、C++とC#での話題が混在すると紛らわしいから、
ここはここで、あったほうがいいと思うけれども。

前あったDirectX総合スレは、
ちとタイトル悪かったね・・・。
DirectX 1
DirectX 2
みたいな感じで、

DirectX2の話題ではないのですが、
聞いてもいいですか?

みたいなこと書かれてたので、
古いversionのDirectXの
話題のスレだと思われてたっぽい・・・。

書き込みがもっとあって9までいっていれば何の問題もなかったと
統合立てるんじゃなくて
DX9C++スレを立てればいいんじゃない?
質問の前に[C++]とか[C#]とか書くってのはどうかなあ。言語非依存の質問もあるだろうし、スレ分散させるほど書き込み量あるわけでなし。
573初心者:03/05/07 22:22
 DirectVoice を使用して、音声チャットを作ろうとしてるのですが、
DirectX 9 SDKのサンプルがどうもうまく動きません。

\DXSDK\Samples\C#\DirectPlay\Tutorials\Tut08_Voice

 なんですが
public VoiceApp() の中で、

if (m_LobbyHandle != 0)
LobbyLaunch();

 というところがあるのですが、m_LobbyHandle が 0になり、
LobbyLaunch() を呼び出してくれません。
 LobbyLaunch()を呼ばないと、Voiceが使えないように見受
けられるのですが、どんなもんでしょう。
 ちなみに、m_LobbyHandle は、InitDirectPlayLobby()の

m_LobbyApp = new Lobby.Application(out m_LobbyHandle);

 で取得しているようなんですが、これってなんなんでしょう?
常に0なんですけど..。
>>573
うちでもLobbyHandleは0だね。
でも、ロビーに接続しなくてもボイスチャットはできそうな気がするけど……うちはマイクないので試せなかったけど。
ms-help://MS.VSCC/MS.DirectX9_JPN.1041/DirectX9_c_JPN/directx/play/understand/lobbies/dplobby.htm
これ見る限りではロビー対応アプリはレジストリに登録されてないといけないみたいだし、登録されてない場合は0が返るのかな。
Tutorial7あたりでそれが解説されてるかも。
575初心者:03/05/08 01:57
>>574

 マイクとスピーカのアイコンが、白黒のままでカラーにならないんですよねぇ。

>Tutorial7あたりでそれが解説されてるかも。

 早速見て見てみます。
576初心者:03/05/08 17:26
>>574

 とりあえず、チュートリアル7を見てみました、 まだ理解できていません。

 チュートリアル8のサンプルは、ロビーを前提にボイスを使用するようになっているけど、
本来はクライアント/サーバーやピアツーピア セッションでも、ボイスチャットできるってこ
とですね。
>>576
チュートリアル8を見てると、あのボイスのアイコンは誰かが喋ってるときだけ色がつくようだよ。
VoiceApp.PlayerStartedHandlerでShowさせてる。
だから色がついてないからボイスチャットが使えないってのは違うと思う。
実際に二台で接続してマイク使って試してみた?
578初心者:03/05/08 19:13
>>577

 VoiceApp.PlayerStartedHandler で Show させてたんですか、どこでShow
してるかわからなかった。

 ただ、実際に2台をつないでやったのですが、アイコンに反応がなかったんです。
 マイクは声の録音とかやってるので、不具合はないと思うのですが。
579初心者:03/05/08 20:55
>>578

 とりあえず、下記のサンプルでやったらできました。

\DXSDK\Samples\C#\DirectPlay\VoiceConnect
580デフォルトの名無しさん:03/05/12 22:08
DirectX9.0のランタイムにはManaged DirectXを走らせるためのものが
一緒に入ってないようなんですが、だとしたら
アプリごとにそのクラスライブラリを配布という形になると思うんですが
これで間違ってないでしょうか?
>>580
.NET Framework をインストールしてから
DirectX 9 をインストールすればよし。
>>580
同じく、気になってた。

>>581
すでにDirectX9インストールしてるユーザに「.Net Framework入れてからDirectX9再インストールしてください」って言うの?
>>582
> 「.Net Framework入れてからDirectX9再インストールしてください」って言うの?

俺はそう言った。
>>582
使ってもらう立場からしてみれば、そんなこと言えないよなぁ。
.Net Framework入れてからDirectX9を再インストールすると、Managedライブラリ
だけがインストールされるのでは?

試してないけど。
MSが ちゃんとしたドキュメント出してくれないと、
参考本も情報も、なかなかでてこないよね。
頼むよMS...
587デフォルトの名無しさん:03/05/13 14:37
>>581
.Net framework入れてからDirectX9のランタイム
入れてるんですが、それでも実行時に見つからないと怒られたので
インストーラにライブラリセットにしました
MSが情報ちゃんと出さないのは困りますね
9.0a入れたら参照なくなるのも痛いですし。。。
588 ◆kbky6C6xjY :03/05/13 21:03
>>550-552
>>587
わかった。
1. dx90a_sdk_devruntime.exeを実行

dx9sdk.exe解凍先(C:\Documents and Settings\user\Local Settings\Temp)の
2. Microsoft DirectX 9.0 SDK.msiを実行

「システム情報」→「ツール」→「DirectX診断ツール」で確認。
DirectX バージョン: DirectX 9.0a (4.09.0000.0901)↓

おまけ
dx90_sdkextras_jpndocs.exe解凍先の
3. DirectX9JpnDoc.msiを実行
Microsoft Deveropment Environment(VS.NET)起動
→目次→DirectX 9.0 (日本語)を確認。
以上。

このことから、dx90a_sdk_devruntime.exeはdx9sdk.exeの解凍したもののうち
ランタイムのみを書き換えたものと思われる。役に立てればうれしい。
589 ◆kbky6C6xjY :03/05/13 21:18
ごめん。やっぱだめかも。
.NETアセンブリMicrosoft.DirectX.dllが見つかりません…
>>587
多分それが今のところ一番確実だと思うけど、問題は
1:マネージドランタイムのみの配布は許諾されてるのか
2:DirectX10がインストールされてるPCでそのインストーラを実行すると上書きしちゃうんじゃないか
3:開発PCとユーザのPCでシステムディレクトリの場所や構成が違ってた場合どうなるのか
ってあたりがどうなんだろうね。
591587:03/05/14 09:15
確かに配布はいいのかどうか悩みますね
とりあえずアプリがあるディレクトリに必要なマネージドDirectX.dllを
一緒に入れるだけなので、10がきても大丈夫だとは思うんですがね
592デフォルトの名無しさん:03/05/15 00:05
BBXにも似たような質問があるみたいだけど
>>591
あーそういう風にしてるのね。
DLLは全部で3MBか。
小さくはないけど十分配布できる大きさだなあ。
んで結論はDXSDK\Redist\mdxredist.exeを配布すればいい、と。
ちがった。
DXSDK\Redist\DirectX9\mdxredist.msiとManagedDX.cabかな
596デフォルトの名無しさん:03/05/18 21:48
MSXMLのリファレンス開くとDX9SDKのインストール始まるのなんでだろ〜♪
>>596
ヘルプ開くとOfficeのインストール始まる、よく知られた問題と同じでないかと。
598デフォルトの名無しさん:03/05/18 22:44
DirectX8.0 アクションゲームプログラミング 登大遊
4章4説のサンプルなんですが、サンプル見ながら同じように
ソース書いたんですが、ビルドして動かすとポリゴンにテクスチャが張られない、
ポリゴンの表示色が暗い赤となりサンプルと違いがでる。
テクスチャ読み込みに成功してるようなのですが、実際に反映されません。
ソースは何度も見比べましたが、全く同じに見えます。
プロジェクトの設定は同じでサンプルのCPPの内容をコピーするとしっかり表示されます。
何か分かる方いましたら。
diffとれ
600デフォルトの名無しさん:03/05/19 13:44
dx90a_sdk_devruntime.exe 解凍してから
dxdevrtm.exe /installmanageddx でもダメ?
601598:03/05/19 23:16
>>599
diffとはなんてしょうか?
検索してみましたが、よく分かりませんでした・・・
windiff で検索
603598:03/05/20 02:02
>>602
有難うございました。
604デフォルトの名無しさん:03/05/21 01:26
C言語とDirectxを用いて簡単なプログラムを作りたいのですが、
完全無料で、ということは可能なのでしょうか?
Cのコンパイラって無料だよね。
勘違いだったらごめん。
>>604
Windows を買わなきゃならないくらいじゃないかな。
>>604
電気代がかかるから他人の家に侵入するでもしないと無理
食費、光熱費、交際費等の生活費を除けば、可能。
609デフォルトの名無しさん:03/05/21 21:12
パワースマッシュやろうとしたらDirectXグラフィックのインストールに
失敗しましたって出たんですがどうすればいいでしょうか?
いたが ちがいます。
すれもちがいます
画面をズームイン/アウトしたときにメッセージウィンドウも一緒にズームイン/アウトしたいんだけど
テクスチャに描画してビルボード表示ってことになるんでしょうか。
テクスチャへの描画ってどうやれば……?
613612:03/05/22 06:31
Text3Dというサンプルがぴったりの内容でした。
MSマンセー
C#に対応したDirectXの解説本(洋書)
ないのかな?
DirectX10まで待ったほうがいいような気がしないでもない
>>615
そうやって墓に入るまで延々と待っていればいい
「DirectX 9.0 - Managed DirectX 用推奨修正プログラム」
WindowsUpdateにうれしいものが…
これで9.0a環境でもC#できるようになりました。
619デフォルトの名無しさん:03/05/25 18:07
仮に何かの物理シミュを作ったとして,動画フレームの一つ一つを
何らかの画像フォーマットでディスクに保存することは可能ですか?
要するに,ダブルバッファしてるんなら,そのバッファをファイルに描き出したいと.

これができるんなら,今使ってるOpenGLから乗り換えることも考えているのですが.
画像保存の時は,速度は気にしてません.
取ったデータはそのまま使うなり,後で連結して動画にするなりしてます.
余裕
>>619
楽勝。w
SaveSurfaceToFileみたいのを使うんですか?
どこかに,記述かサンプルあります?
画像じゃなくて、その元になるデータを保存したほうがいいんじゃなかろうか・・・
>>623
それは一理あるんですが,実行ファイルとデータを配布したり投稿したりするよりは,
画像や動画を用意した方が良い事も多いんです・・・
625デフォルトの名無しさん:03/05/26 05:52
Xファイル作成できるフリーツールでいいのある?
626_:03/05/26 06:21
>>625
メタセコイアのLE版
628デフォルトの名無しさん:03/05/27 14:22
>>627
有難う。参考になったよ
>>620>>621
有難う。あんまり参考にならなかったよ
630t-akiyama:03/05/27 23:26
携帯ゲーム機"プレイステーションポータブル(PSP)

 このPSPは、新規格UMD(ユニバーサルメディアディスク)というディスクを利用しており、そのサイズは直径6cmととても小さい(CDの半分程度)。 容量は1.8GBとなっている。
画面は4.5インチのTFT液晶で、480px x 272px(16:9)。MPEG4の再生やポリゴンも表示可能。外部端子として、USB2.0とメモリースティックコネクタが用意されているという。

この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。
誤爆?(でもどこへ?)
プログラマ板でも見たぞ。なんか手段を選ばずに自己主張したいんじゃないかね。
633山崎渉:03/05/28 12:39
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
634デフォルトの名無しさん:03/05/28 13:34
沈みすぎage
DX9SDK入れた。
噂通りVS.NET2003にウィザード出ない。
VS6にはウィザード表示されてるのになあ…。
今更VC++に戻れねえよウワーン
>>635
人から聞いた方法。うちではこれで上手くいきました。

DX9のCDから Bin\DXUtils\Visual Studio 7.0 Wizards  の中身を
対応する場所へコピー

VB .NET\VBProjects\Mdx9AppWizard.vsz
C++\VCProjects\Dx9AppWizard.vsz
C#\CSharpProjects\Mdx9AppWizard.vsz

上の各ファイル内の Wizard=VsWizard.VsWizardEngine という記述を
Wizard=VsWizard.VsWizardEngine.7.1
に変更
637635:03/05/29 16:19
>>636
できた。ありがとうー。
これでC#続けられる。

サンプル急須、フルスクリーンにしても重いね。
VC++6で実行した急須はもっと速かったのに。
急須のデザインも違ってるし速度出ない構造なのかもしれないけど。
638デフォルトの名無しさん:03/06/01 18:12
結局、>>619はどうやったらできるんでしょうか?
>>620>>621は説明してくれないのでしょうか?
>>638
イメージをロックするなりDIBに転送するなりしてビクセルデータを抽出し、
それを好きなフォーマットでファイルに書き出す
説明するまでもないと思うのだが?
無駄に荒れてるけど学生って今長期休みだっけか?
専門学校のドキュソなら、一年中休みと同じと思われ。
どうせ、授業中に遊ぶか寝るかしてるだけだから。
>>641
それは差別だわ
偏見と差別の意味くらい把握しよう
楽勝とか言うほど簡単か?
少なくとも,C#で関数一個とか,2〜3行って訳にはいかないだろ。
はいはい、これでも読めば。
http://www.mvps.org/directx/articles/screengrab.htm
>>645
D3DXってC#.NETから召還できるの?
知らん。でも使わんでも似たようなもんでしょ。
似てないからこそ、D3DXでわざわざ、D3DXSaveSurfaceToFile()
が作られたわけで・・・
それで、C#ではD3DXのようなラッパが無いから・・・
ラッパが無いって、じゃManagedDirectXってナニ?

ManagedDirectXには、一見D3DXが無いように見えるけど、実際には
各オブジェクトに分散されて実装されている。
>>644
自分でファイルに書き出せばいいだけの話
特殊なフォー^マットならともかくbmp辺りなら簡単に出来るだろう
>少なくとも,C#で関数一個とか,2〜3行って訳にはいかないだろ。
手法は難解でも何でもない
2〜3行を超えたら簡単でないというのなら、
コンソールアプリで一行文字列表示するのも簡単でないことになる
変則的な書き方をしなければ、あれだけでも3行は超える

一つ一つの手続きを順番に書いていくだけの作業を、
やりもしないうちから簡単ではないといって避けるのであれば、
そもそもプログラムという作業そのものが成り立たない
決まりきった
> 一つ一つの手続きを順番に書いていくだけの作業を、
当たり前のように自前で実装させるのが、クダランことだとは思わないですか?
ここは、C#スレですよ?
この程度のことなど自分で解法見つけろってこったな。
その辺の甘えが見えるから、誰も直接答えようとしない。
とにかく、自分の望む回答が帰ってこないからって暴れるのはやめてくれ。ほんとに。
>>651
C#だろうがなんだろうが、必要なら作ればいいだけなんだが
何でも用意されていないと気が済まないのなら
3Dソフトのスクリプトでも使えばいい

掲示板で「クダラン」ことを書いている半日の間に、
まじめにコーディングしていればすでに目的は達成されていたはず
しかしなんだな、荒れた原因は、余裕とか楽勝って書くからだろ。
半日、まじめにコーディングするのが余裕とは言えないだろ。
すくなくとも、「出来るけれども、面倒。」とか書いとけば良かったんじゃないか?
>>650にとっては、すべてのコーディングは楽勝なんだよ。エリートなんだよ。
>>655
半日というのは遅くてということなんだけど
本当にそのくらいかかってしまうのなら、
日頃コーディングを回避しているせいで
必要なときに素早く適応できないということになる
とてもじゃないが、簡単なコーディングとは思えない。
Web上で、具体的なコーディングを発見したことないし。
>>645レベルじゃC#じゃムリ。
とりあえず作り始めてみて、分からなくなったら質問しにくればいい
無理と思って諦めたら、本当に無理になるよ
660デフォルトの名無しさん:03/06/03 02:00
Surface.Lock()してBitmapに転送してSaveしてやれば終わりのような。
661デフォルトの名無しさん:03/06/03 02:14
・_・y━””ここで一服
http://homepage3.nifty.com/coco-nut/
そしてあぷろだはここ
http://www.k-514.com/imgbbs1/imgboard.cgi
662VS.NET2003:03/06/03 02:59
> 636

> DX9のCDから Bin\DXUtils\Visual Studio 7.0 Wizards  の中身を
対応する場所へコピー

対応する場所って具体的に何を指すの?
663直リン:03/06/03 03:13
DirextX9のウィザードでDirect3Dだけ指定のブランクを作成しました。
Render内でframeStatsだけ表示させてみたのですが
ウィンドウモードだとフレームレートが30fps弱しか出ません。
これは、C# + Managedの限界なんでしょうか?
他のDirectXを使用したゲームだとウィンドウモードでも60fps出ます。
RADEON9500なのでスペックは足りてると思うのですが…。
>>664
んなことない。640x480x32bit のウィンドウモードで
ぷよぷよみたいなパズルゲームを作ったが
余裕で200fps以上出る。(GeForce2 GTS 64MB)

どこか設定がおかしいんじゃないかと思われ。
オラも、さくっとゲームつくれるようになりたいなぁ。
667664:03/06/03 17:43
>>665
RADEONのドライバを最新版にしたらframeStats表示で1600弱出るようになりました。
DX9に完全対応していないバージョン入れてたのかもしれません。
DirectX診断ツールで「いくつかのファイルがデバッグ版」と表示されてたのが
原因かと思ったのですが、これはあんまり関係ないのかな。
>>667
DirectXで開発を行うにはリテール版ではなくデバッグ版のdllを使います。
669667:03/06/03 18:45
>>668
じゃあこのままでいいんですね。
安心しました。
670デフォルトの名無しさん:03/06/03 23:27
マウスを動かした方向に注視点を移動
矢印キー押した方向に視点と注視点を移動
を再現しようと思って視点と注視点を指すx軸とy軸の変数に
ボタンが押されたタイミングで足したり引いたりしても描いた通りには動かない。
なんでよ?
>>670
思い通りに行かないコードをどこかにうpしろ
視点の向きも考えずにそのままワールド座標で足してるんだろ。
スキンメッシュ難しいな。
>>528のサンプルソースだとtiny.xは大丈夫だけど、表示できないxファイルがあって困った。
なにが原因なのかさっぱりわからない・・。
Xファイルにはデータ構造の互換性しかないので、データ内容自体はまちまち
つまり出力ソフトごとに内容を解析して表示するしかない
座標系やサイズにも規定が無く、方向の扱いもバラバラ
>>674
TIFFとかRIFFみたいなもんか。
676670:03/06/04 22:10
うpしたよ。
糞なソースですが我慢してください
http://cgi.members.interq.or.jp/hokkaido/asato/upload/jam3ddr/OB000700.zip
677デフォルトの名無しさん:03/06/04 22:22
糞なソースと言う人は心の中ではうまく書けたと思っている
随分と長いWinMainだこと・・・
C#スレぢゃないのか
>>676
ソース長すぎ。
不具合が再現できる程度でなるべく短くすべき。
681670:03/06/05 01:46
C+分かるのおらんのか
頼むよ誰か
404だたよ
C++は別スレ立ってる
684673:03/06/05 08:17
>>674
そうなのか。
Xファイルの構造から勉強しないとだめそうだな。
LightWaveなら割とメジャーだし大丈夫かと思ってたんだが。
MSは早くC#のSkinnedMeshサンプルを用意してホスィ・・
C#の話題だけにならんのかなぁ。
スレが見づらくてかなわん。
>>685
確かに、C#で出来ませんですかって質問しても、
C#で用意されていないと満足できない香具師は逝ってよしって
怒られるもんなぁ。
>>686
C#で用意されているものを組み合わせて作ればいいだけなのに、
関数一発であらゆる機能が使えないと満足できない奴は逝って良しだろう
ちょっと前にそういう馬鹿が暴れていたが
沈没消滅しちゃったDirectX総合スレ、
だれか復活してくれないかな。
カキコが少なくとも、
ここはC#の話題で統一したいな。
>>688
関数一つであらゆる機能が使えるってのはどの処理系について言ってるの
>>689
>>689
どう考えても、釣りして楽しんでるよな。
誰かの反論を受けると、自分で考えろとか、自分で出来ない香具師は駄目だとか。
普段、専門学校で先生に言われてるんだろうか・・・
>>689=691
自分で出来ないのが駄目なのではなく、やろうとしないのが駄目
実際にやってみてその過程の質問ならまともに返事が返ってくるはず
>>688

立ってるよ。ム板に帰ってきた鬱だ氏のう DirectX

DirectX一般についてはこちらへ
http://pc2.2ch.net/test/read.cgi/tech/1054553472
あと、ゲーム製作技術板の避難板がそこそこ盛り上がってきているので
ゲーム製作に直接関連する事は、そっちへ行くと言うのも。

http://bbs.gamdev.org/gamedev/
んじゃ、ここは『C#によるDirectX』専用スレということで、以後よろしく!!
696689:03/06/05 18:14
>>692
俺と691は別人だから
よく分からんが=で結ばないようにw
>>695
以後よろしく というよりか、もともと
DirectX C# vol.1
というタイトルなんだが・・・。
>>697
気づかない奴も居るがな
結局>>619はどうなったんかいな?
1週間以上経つしヒントも散々出たし、もう自力で解決してるか。
質問を出して回答をもらったなら結果報告を行う。
ネットニューズとかフォーラムでの基礎ですな。
結果報告といっても「できました、ありがとう」とかじゃ意味ないよ。
結果報告をまとめられるような人物なら、そもそもそんな質問の仕方はしないし、
他人に一方的に情報の提供を求めても、自分からは一切の情報を出さない
質問の段階ですらその内容に関する情報が不足しているんだから
702619:03/06/06 12:03
なんだか,すごい事になってますな.
結果から言えば,何もやってません.申し訳ありません.

時間がかかりそうだったので,OpenGLのままやってます.
表示はメタボールなんですが,背後の物理計算のアルゴリズムの方が重いので,
多分,DirectXに乗り換えても劇的に変わる事は無いと思います.
ぶっちゃけ,DirectXに乗り換えたからといって論文が書けるわけではないし..

OpenGLでは画面枠と同じサイズのバッファを用意して,
それにコピーして,ヘッダをつけて,Bitmapでセーブしてるんですが,
C#のDirectXのどっかの大学の先生が書いた本を見たら簡単そうだったので,
聞いてみたのですが,そうでもなかったようですね.

気長に情報収集してみます.
どう読んだら簡単そうじゃないように見えたのか……。
>>703
遠近感なしの透視図法って、どうやってレンダリングすればいいんでしょう?
カメラのマトリックスの代わりに自分でマトリックス用意する?
射影変換のところを勉強してくれ
射影子の行列をかけるだけ。
表示されてるメッシュをクリックしたら、
そのメッシュを選択して、表示してる色を
変えるようなセレクト機能をつくりたいのですが
どこかにサンプルとかないでしょうか?
C++のサンプルには近いものがあったのですが、さっぱり
わからなくて、C#のサンプルには何故かありませんでした。
>>708
変換後のポリゴン面と、ビューの奥行きから割り出した直線との交点を求める
一つ一つだと時間がかかるので、メッシュごとに最大範囲を求めて
調べるポリゴンを限定できるようにしておくと良い
DirectX9 3Dゲームプログラミング vol.1

これ以外にC#による解説書って発売されてます?
711デフォルトの名無しさん:03/06/15 23:34
Win2000 SP3、パッチ全部最新で、
DirectX9SDK入れたら、
MPEG2のファイルをMediaPlayer9で再生した時に、前後で
KillTimer(hwnd,0xFFFFFFF)
At line 1380 of d:\builds\nt32_chk\multimedia\dshow\filters\image\video\direct.cpp
Continue?(Cancel to debug)
ってゆうエラーが出るんですが、同じ現象誰か体験してませんでしょうか?
現在.NET開発環境は入れてませんが、入れたあとに、これを入れて出たので、
OSから順番に入れ直し、パッチ全当てした後、このSDKを入れたら、めでたく出ました。


>>711
目的語の省略が多すぎて読解が不可能。
パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新
パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新
パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新パッチ全部最新
どんな質問が来ても、ウザイ奴が無意味な回答を2回づつするな。
同一人物だな。粘着質な奴に常駐されてるようだ。

>>712>>713
>>706>>707
>>699>>700
>>620>>621
○○というソフトで××というバグがでました。バージョンは最新版です。
717708:03/06/16 10:12
>>709
一応C++のサンプルを見ながら次のようにしてみました
Vector3 vPickRayDir;
Vector3 vPickRayOrig;
Matrix matProj;
Surface surface = this.D3DParam.device.GetBackBuffer( 0,0,BackBufferType.Mono );
SurfaceDescription m_d3sdBackBuffer = surface.Description;
matProj = this.D3DParam.device.GetTransform(TransformType.Projection);
Point pt = new Point(e.X,e.Y);

// Compute the vector of the pick ray in screen space
Vector3 v;
v.X = ( ( ( 2.0f * e.X ) / m_d3sdBackBuffer.Width ) - 1 ) / matProj.M11;
v.Y = ( ( ( 2.0f * e.Y ) / m_d3sdBackBuffer.Height ) - 1 ) / matProj.M22;
v.Z = 1.0f;
Matrix m/*matView*/;
m = this.D3DParam.device.GetTransform(TransformType.View);
m.Invert();

// Transform the screen space pick ray into 3D space
vPickRayDir.X = v.X*m.M11 + v.Y*m.M21 + v.Z*m.M31;
vPickRayDir.Y = v.X*m.M12 + v.Y*m.M22 + v.Z*m.M32;
vPickRayDir.Z = v.X*m.M13 + v.Y*m.M23 + v.Z*m.M33;
vPickRayOrig.X = m.M41;
vPickRayOrig.Y = m.M42;
vPickRayOrig.Z = m.M43;

これでクリックしたときのRayが取得できたとは思うのですが、
どうやって交点を求めたらよいのでしょうか?
教えてクンですいません。
自分でも頑張って考えていくつもりではあるのですが..
>>715
だったらキミが率先して答えなさいよ。できるもんならな。
>>717
それC++版のサンプルをそのままコンバートしただけじゃん。
中身についてはちゃんと理解できてるのかい?

#ていうか、その後でD3DX使ってるからコンバートし切れなかったんだろう。
#コメントが英語だから容赦なく英語のページ紹介しそうになったぞ。

まあ、なんだ、あとはレイとポリゴンの交点の有無を求めるだけじゃろ。
ポリゴンと重なる平面との交点を求めて投影して内積で内外判定をすればいい。
詳しくは検索かけりゃすぐ出てくるだろうけど、吾輩がエスパーするに
キミはおそらく幾何学の基礎から学んだほうがよいのではないかな。

ゲームプログラミングのための3Dグラフィックス数学
http://www.amazon.co.jp/exec/obidos/ASIN/4939007375/

この本あたり、包括的で3D初学者向けだから1冊買っときなさい。
値段ぶんの値打ちはあるから。問題の件は5.2.1に載っている。
720708:03/06/16 16:43
>>719
100%理解してるかといわれると、自信ないですが
クリックした座標を変換して、その座標からまっすぐ
伸びるrayと交差する面をとってくればよいという
大まかな流れだけはなんとか。

一応この後MeshクラスのIntersectあたりを使って
できないかどうかやってます。

>幾何学の基礎から学んだほうがよいのではないかな

全くそのとおりですね。
紹介していただいた本と共に色々自分でも調べてみます。

ありがとうございました。
どんな質問が来ても、ウザイ奴が無意味な回答を2回づつするな。
同一人物だな。粘着質な奴に常駐されてるようだ。

>>712>>713
>>706>>707
>>699>>700
>>620>>621
free(721);
C#すれなんで
721.Dispose();
どんな質問が来ても、ウザイ奴が無意味な回答を2回づつするな。
同一人物だな。粘着質な奴に常駐されてるようだ。

>>712>>713
>>706>>707
>>699>>700
>>620>>621
delete 724;
>>724
まだいたのかキミ。
どんな質問が来ても、ウザイ奴が無意味な回答を2回づつするな。
同一人物だな。粘着質な奴に常駐されてるようだ。

>>721,>>724
VS.NET2003にヘルプが統合できん
2002は出来たのに

手動でやるしかないのか...
>>728
2003用のセットアップがExtrasにあるよ
730デフォルトの名無しさん:03/06/27 22:01
「ずつ。」だと思われ。

日本語も満足に書けない癖にプログラミングなんぞ出来るんかいな?
旧仮名遣いでは「づつ」です。
俺は頭痛
頭痛が痛い。
知人にC++&DirectX始めるよりC#&ManagedDirectXのが
わかりやすいと言われ、勉強してみようと思うんだけど
実際のところ、C++今から覚えるのよりいいのでしょうか?

あと、どんなことから始めたらいいかとか
アドバイスあったら聞きたいです。
>>734
わざわざ茨の道を進めんでも。
>>734
「僕には解りません」と友達に言うのが正解だと思うが。
そこまでしてパソコン博士の称号を死守したいのか?
737734:03/06/29 22:31
>>735
そうなんですか…。

>>736
それだと進歩無いから自分でも作ってみようかと。

それにしても、即レス返ってきて驚き。
C++に慣れてるか、C#に慣れてるかの違いしかないなあ。
どっちにしろDirect3D自体のことは学習しないといけないわけだし。
>734
俺も、同じこと書こうと悩んでた。
C++だと資料とか情報が充実しているんだけど、
C#だと資料や情報がまだあまりないし。
かといって、C#での開発を諦めて
C++でやるものなんだかなあと・・・。
SDKのサンプルを実行すると、C++とC#で二倍近いFPSの差が出るよ
速度は気にしないというなら関係ないけど
>740
俺は同じくらいだけど?

C++と比べて、約90%のパフォーマンスという話は聞いてるけど。

両方(C++,C#)で開発できるのが、一番いいんだけど(汗)
バリバリの3Dゲームを作りたいから、
やっぱC++でやったほうがいいのかな・・・。
スマートにコーディングしたいけど。

連続カキコスマソ
BillBorad
C# 260-300
C++ 550-600
Lighting
C# 720
C++ 1026
VertexBlend
C# 875
C++ 905

サンプルによって幅は違うけど、圧倒的な差になっているものもある
差が出ないのはHAL側の処理に比重がいっているもの
描画がボトルネックになっていれば何やろうが大差ないはずだから、
CPU負荷がかかったときどうなるか知れたもんじゃねえ。

とC++使いの偏見。
今後のDirectXのバージョンで、
最適化されて、C#でのパフォーマンスが上がりました。
(C++で実行したパフォーマンスに近づく)

みたいな話は当然ないよね・・・。

>>746
Longhornでそうなるのではないかと。
>>747
関係ないかと。
BumpLensやったらC#がC++の2倍近いあたいを出した。
BillboardでC#のほうはウインドウをバックグラウンドにすると異様に重くなる。(300fps->9fps)
C++では変わらない。

C#のほうのつくりがかなりいけてないんでは…。
>BumpLensやったらC#がC++の2倍近いあたいを出した。
逆でしょ
>>749
> BillboardでC#のほうはウインドウをバックグラウンドにすると
> 異様に重くなる。(300fps->9fps)

マジレスするとだな、バックグラウンドにすると
1フレームごとに100msのスリープを取っているからなのさ。
DirectX9 3Dゲームプログラミング Vol.2 (C#)
近日発売予定らしい。(初心者向け)
>>750
いまやったら両方とも2500fpsだなあ。
あんときは確かにC++が1000fpsだったんだが。

>>751
なんでそんなことしてるんやろ。謎。
ALT + RETURN でフルスクリーンにすると
FPS同じだった。
それはリフレッシュレートで制限がかかってるんじゃないかね。
リフレッシュレート1000Hzを出せるビデオカードにはお目にかかったことはないが
757280 ◆5Gfkx6laRc :03/07/03 18:02
>>588
同意

ところで話は変わるけど、携帯ゲーム機"プレイステーションポータブル(PSP)

 このPSPは、新規格UMD(ユニバーサルメディアディスク)というディスクを利用しており、そのサイズは直径6cmととても小さい(CDの半分程度)。 容量は1.8GBとなっている。
画面は4.5インチのTFT液晶で、480px x 272px(16:9)。MPEG4の再生やポリゴンも表示可能。外部端子として、USB2.0とメモリースティックコネクタが用意されているという。

この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。

いきなりへんな事言い出してすまそ‥
GBAと比べてみてどうなんでしょうか?(シェアの事は抜きで)
スレ違いですが、一応意見。

PSPって、機能は豊富だけど値段が高そう。
いっそのこと、ゲームにも使える安価なPDAみたいにしたほうが
いいんではないかと。
759デフォルトの名無しさん:03/07/07 01:40
DirectXをC++とC#で扱うとしたら、どちらの方が処理スピードが速いですか?
>>759
数レス前も読めないのかお前は。
DirectX9 C#の書籍(洋書)
Introduction to 3d Game Engine Design Using Directx 9 and C#
MSのCutting Edge DX9 今回はManaged DirectXでの
Xファイルアニメーションで、次回はスキンメッシュアニメだそうだ。

http://www.microsoft.com/japan/msdn/directx/default.asp
763山崎 渉:03/07/15 10:06

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
764デフォルトの名無しさん:03/07/21 02:54
沈み杉あげ
どうやったらDirectXが使えるようになるの?
>>765
DirectX9 をインストールする
SDKって9.0aをDLした方がいいのでしょうか?
9.0にはfor C#というのがあるので、これをDLしようと思ってます。
うちの回線極細だし・・・。
768デフォルトの名無しさん:03/07/21 22:42
インストールしたのに使えませんでした
安心してください、馬鹿には使えないだけです
770デフォルトの名無しさん:03/07/21 22:58
[参照先 エラー] アセンブリ参照検索パスまたはグローバルアセンブリキャッシュに,アセンブリ "Microsoft.DirectX" が見つかりません。
771デフォルトの名無しさん:03/07/21 22:58
残念ながら馬鹿じゃないから安心できません
>>770
さんざん既出
諦めてください、厨房には使えないだけです
774デフォルトの名無しさん:03/07/21 23:16
C#の限界が垣間見えました。
C#って限界ばかり。ほんっと使えない!
776デフォルトの名無しさん:03/07/21 23:49
PC内検索してもMicrosoft.DirectX.dll出てこないじゃん。阿保か。
DirectX 9.0 SDK for C#は厨房並み。つーか、マイクロ馬鹿ソフト社の提供だから仕方ないか。
>>776
>>110 あたりから読み直せばよろし。
asemblyフォルダ内は普通にコピペできなくてメンドイので、FULLをダウンすることにした
>>774
>>775
自分自身の限界では?
C#のせいにしてはいかんよ。
BC#でもDirectX使えるよ
↑でも、日本語のヘルプはVS.NETじゃないと見れないらしいよ
インターネットに繋がっていれば問題なく見られるが?
日本語ヘルプ入れて、ブラウザに
ms-help://MS.DirectX9_JPN.1041/DirectX9_m_JPN/directx/ref/ns/Microsoft.DirectX.Direct3D.htm
って入れてみ? 漏れの環境ではこれで見れる。
C:\Program Files\Common Files\Microsoft Shared\Help\dexplore.exe
いや、もうさっきVS買っちまったし・・・オイ!
786デフォルトの名無しさん:03/07/22 21:15
>>783
BCSの後にDirectXインスコし直した?
>>783
ありがとー
それで出来たよ。
788783:03/07/23 20:04
>>786
.NET SDK 入れて、DirectX9 入れて、SharpDevelop 入れて、
おととい BCS 入れた。
>>788
サンクス
うまくいかないから真似してみる
790783:03/07/24 10:38
ちなみに DirectX9a ではなく DirectX9 なんで、もしかしたらその違いがある鴨。
791デフォルトの名無しさん:03/07/24 12:21
↑誰か確認よろ
DirectX 9.0bのスレ作って
あら、いつの間に 9.0b が...
SDKより新しいランタイムをいれるのはマズイって誰かDirectXスレのほうで言ってなかったっけ?
DirectX 9.0 Software Development Kit (SDK) with DirectX 9.0b Runtime
http://www.microsoft.com/downloads/details.aspx?FamilyID=1d97f320-9dfd-4e7a-b947-3a037ccf84af&DisplayLang=en
単なるマイナーチェンジでSDKは変更無しのモヨウ
わざわざGACからDLLをコピーしなきゃならないってどういうこっちゃ!
.NETなのに・・・。
DirectX 3Dゲームプログラミング vol.2出てるね。
662さんと同じ質問をしたいです。
>> DX9のCDから Bin\DXUtils\Visual Studio 7.0 Wizards  の中身を
>>対応する場所へコピー
>対応する場所って具体的に何を指すの?

私もこの「場所」がわからなくって・・・

800ろうひ男爵:03/07/29 11:13
>>799
q:\DirectX9\Bin\DXUtils\Visual Studio 7.0 Wizards\C#\VC#Wizards
内の物を
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards



q:\DirectX9\Bin\DXUtils\Visual Studio 7.0 Wizards\C#\CSharpProjects
内の物を
C:\Program Files\Microsoft Visual Studio .NET 2003\C#\CSharpProjects


ディレクトリー構造をそっくりコピーして下さい。


以下のディレクトリと
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\Mdx9AppWizard\1033
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\Mdx9AppWizard\HTML
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\Mdx9AppWizard\Images
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\Mdx9AppWizard\Scripts
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\Mdx9AppWizard\Templates

以下のファイルが出来ます。
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\CSharpProjects\Mdx9AppWizard.vsdir
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\CSharpProjects\Mdx9AppWizard.ico
C:\Program Files\Microsoft Visual Studio .NET 2003\VC#\CSharpProjects\Mdx9AppWizard.vsz


同様にVBとC++の分もcopyして下さい。
\    |:::::::::::,ー――――一'´    ヽ:::::::::|     /  / ̄ ̄ ̄\
  .\:::::::::/━━━      ━━━  |:::::::::|    /  ( ((((((^^))))
    \/ ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ.|:::::::::|   /     |ミ/  \  /|
     .\ -=・=-  |  |  -=・=-  ロ=:::::::|  /    (6 ー[¬]-[¬]
       \     /  ヽ      /ヽ::::::::| /.      | <     」  >
    ブヒヒヒ  \´/    `ー―一´  ヽ::::|./   __| ||||  (ー) |
  ._/)_/)_.\●_●)        |:::/   (__/\___/
 (∴)◎∀◎(∴) .\|     ∧∧∧∧∧   / (__))     ))
⊂) ̄ ヲタラー ̄(つ  .\--.<     ヲ  >[]____| | ラブヒナ命| |
 (~ ̄ ̄ ̄) ̄ ̄~)     \<     タ  >|]   | |_________| |
 (____)___)      <  予  ス .> \_.(__)三三三[]__)
――――――――――――<     レ >――――――――――――
彡川川川三三三ミ〜〜〜〜 <  感  の >============/ ̄ ̄ ̄ ̄\
川|川 \  /|〜〜〜〜<.  !!       >==========.(  人____)
‖|‖ ◎---◎|〜〜〜〜 /∨∨∨∨∨\===========|ミ/  ー◎-◎-)
川川‖    3  ヽ〜〜〜 ./::::/ ,,;;;;;;;;;;;;;;,   \========(6     (_ _) )
川川   ∴)〆(∴)〜〜 /:::┏━━━━┓  ┏\=======|  ∴ ノ  3 ノ
川川     〜  /〜〜 /|::=ロ   -=・=- ┣━┫ -=\=====ゝ       ノ
川川‖      /リ〜〜 //|:::/ヽ      /ノ  ヽ    \=/        \_
川川川川   (⌒)ビシッ./ | |/  ` ̄ ̄ ̄´/    ` ̄ ̄ ̄\=ヽ     ノ\_)
:::::::::|-、 ,-/:::::/ ~レ-r、/  `|         (. o⌒o .)       \(  ⌒ヽ´
:::::::::|  /:::::/__ | .|./    \       :::::::::::::U::::::::::::::     /.\ ヘ  )
:::::::::| /〈 ̄   `-,/      .|\   ::::--┬┬┬--::::   ./|    \`J
802799:03/07/31 14:37
>>800 さんへ
ありがとうございます。
同名のフォルダがあるので、そこへコピーすればよかったのですね。
工学社の「DirectX9 3DゲームプログラミングVol1」のとおりにフレームだけの
サンプルをコンパイルしようとしたのですが、出来ませんでした。エラーで出たURL
で1041というフォルダの中を参照しており、1033フォルダの中に同名のファイルが
あったのでフォルダ命を1033から1041に変えて(強引に)コンパイルしようとしました。
ソリューションエクスプローラのウィンドウからD3DBlank.csのファイルを開こうとすると、
以下のようなエラーが出てしまいます。

ドキュメントを読み込み中にエラーが発生しました。このエラーを修正してから再度ドキュメントを読み込んでください。エラーメッセージは以下の通りです。
ファイル内にデザインできるクラスがないため、このファイルのデザイナを表示できませんでした。ファイルの以下のクラスがデザイナで見つかりました。
GraphicsClass−−基本クラス’GraphicsSample’を読み込めませんでした。アセンブリが参照されているかまたはプロジェクトの一部であるばあいはビルドされていることを確認してください。

残念ながら、私に出来るのはここまででした。9.0から9.0aに変えても同じ結果でした。
9.0bならどうなのか、まだ試してはいませんが、普通にインストーラでスンナリ入って
くれるバージョンをまつしかないようです。まだ素人にDirectXの敷居は高いということでしょうか・・・

800さん。ご丁寧にありがとうございました。
C#専用のじゃなくて完全版をインストールしたらいいよ
804800:03/07/31 20:01
自分は XPpro + 2003のC# + DirectX9 3DゲームプログラミングVol1
でしたが、手で入力した限りだと、エラーは出ませんでした。
どういった手順でプロジェクトを作りました?
805799:03/08/01 14:20
私はXpHome + 2003のC# + DirectX9a です。
インストールしたのもこの順でした。
ただコンパイルだけは出来るようなので.CSファイルを普通のエディタで開いて
上書き保存してからコンパイルするようにしました。
当面、これでいこうとおもっています。
>>805
もしかすると、サンプルをコピーするときに、
リードオンリーのままでないですか?

自分もテキストの修正は別ツールをつかったり、
ちょっとだけならIDEつかったりしています。
807山崎 渉:03/08/02 02:09
(^^)
DirectX(C#)の洋書を頼みたいんですが、
納期が早いところないんですかね。
約1月はながい(汗)
Wi○MXなら即日ですよ。
eBook DirectX C#
そっち方面か(苦笑)
C#のペイントイベントの中でDirectXの描画を呼び出すと、
一瞬だけ映像が見えてすぐに基本色で上書きされて
しまうのですが、何か良い方法はありませんか?

C++では、WM_PAINT呼ばれた時に、
Present→ValidateRect(hWnd,NULL);
で、再描画を解除できたのですが。

仕方ないので、今はタイマーイベントで描画してますが、
無駄な処理が多くなってしまうので・・・。
誰もいないの?
お前だけだよ
814デフォルトの名無しさん:03/08/08 06:12
サンプルをフルスクリーンで実行するには
どのようにしたらよいでげしょ
windowed = false
だけだと例外吐くので
いったいどういうことなのかと・・。
815デフォルトの名無しさん:03/08/08 11:58
質問です。
C#を実行しているときにWindowの一部はDirectXで、
その他の画面はWindowsFormで作成することはで
きるのでしょうか?
yoyuu
>>815
別々のFormなのか、1つのFormなのか質問の意味がわからんが
どちらでもできる。
DirectXしてる人のC#とC++の割合ってどれ暗いんだろ?
俺は 3:7ぐらいだと思う

819デフォルトの名無しさん:03/08/08 14:58
私もそう思う。C#とC++の書籍数から見ても断然C++のほうが多いし・・・。
漏れがいく本屋でC++のほうが書籍が多いところなんてないぞ
書籍は最近半々くらいだな。
C#、基本的に遅いからゲーム制作者で使ってる人少ないのでは・・・。
VBから流れてきた人は多そうだが。
1:9くらいじゃない?
C# はUIの作成が楽だからツール作るのに向いてるね。
それ以外は C# 使うメリットなさげだと思う。
.NETに対応してくれただけでもありがたいよ。
Delphiから移行する価値はないってことか
無い。
DirectXの便利なライブラリって大抵C++用ばかり。
仕方ないのでDLL化して使おうと思うけど。
>>822
俺はC++の難解さに嫌気がさしているので遅くても組み易さを優先する
これから最適化されていって、パフォーマンスあがるんじゃないの?
MS曰く、現時点でC++の90%のパフォーマンスらしいし。
C#やJavaに慣れると、
C++のコーディングが汚く感じて仕方ない。
俺にとっては、
現時点で10%のパフォーマンスの差よりも、
スマートに美しく書けるC#のほうが断然いい。

C#でインラインアセンブラみたいなの書けないんですか?
832829:03/08/09 16:16
>>830
君とはウマが合いそうだな
現状では軽さもスマートさも兼ね備えたDelphi最強伝説
>>830
>MS曰く、現時点でC++の90%のパフォーマンスらしいし。
こんなことを鵜呑みにする前に、サンプルを実行して比較してください
大嘘だということが分かります
http://pc2.2ch.net/test/read.cgi/tech/1059028988/41

こんな結果も出てるんだけど、どうなんだろうね?
実際のところ。
教えてエロイ人。(´・ω・`)/
単純なループ演算よりも、DirectXSDKのサンプルのFPSを比較してください
モノによって差がありますが、C++のサンプルの50〜80%程度しか出ません
少なくとも90%は大嘘です
90%は目標の目安だったような。

>>835 スレ違い。煽りスレでどうぞ。
838835:03/08/09 18:41
気分を害したならスマン。
現状C#がどんなもんなんか
単純に実際のところを
(アンチ、信者とかナシに)
知りたかっただけなんよ。
倍速いPCを買えとギリギリ強弁できる程度の差で良かったよ_| ̄|○
C++の半分ぐらいの速度しか出ない事もあるけど、GPU依存度の高い
ソフトだと、殆ど変わらない。
DX10か11辺りで、メッシュの生成もGPUで行える様になるという話なので
(シャドウボリュームをGPU上で生成するとか)2,3年先には、C#とC++の
速度差なんて、今で言うとアセンブラとC++の速度差みたいな感じに
なっているかも。
>>838
スマソ
阿泉鰤
うん。現状ではCPUでの演算部分が多いと
ネイティブのほうが圧倒的に速い。
これからはGPUに流し込むのが主流になってくので
そうなってくると余り速度に違いはなくなる。
これからと言っても、それらが当たり前に使えるようになるのが何年先か
DirectX9が出ている今でさえ、DirectX8の機能がフルに使えるビデオカードが
それほど普及していない状態だし
その為のLonghornです。
OSだけどDX9対応GPU必須(w
実際C♯使うと、C++になんて戻れないよ。
速度が遅から使えないなんていっているやつは、、趣味でプログラムやっているか勘違い野郎だろ。
わかっているやつなら、トレードオフだってことは十分心得てる。
Javaもいい言語だけど、Windowsには.NETの方が気持ちいい。
でもVB6のときみたいなコーディング&RUNなデバッグは魅力だけどね。
C++にDirectXと二重の壁があったオレのような厨に
C#はDirectXの壁を低くしてくれますた。
>>846
速度重視のゲーム作ってる会社でもC#使ってるの?
(そもそもVC使ってないかもしれないが)

うちの場合、ツール作成では使ってるけど。
遅いのが気になるならC++つかえってこった
俺の環境ではC++もC#もそれほどかわらん。

セレロン900、G550、PC133-512MB Win2000SP4
>>846
商用ソフトでC#からDirectXを利用しているものをまだ見たことがないのですが、
書き込み内容から察するに、相当詳しいとお見受けしますので、
是非実際のどのようなソフトがあるのかご教授ください
ツールを作るのには便利そうやね
ゲーム本編はC++、開発ツールはC#で使い分けてます。
#単なるテキスト処理ならPerlだけど。

速度差よりもC#の場合.NET Frameworkインストールしてもらわんと
いけないのが大きい。
DirectXはともかく、Frameworkインストールしてくれって言うと
不安定になりそうでやだって意見は結構聞くよ。
>>852
> DirectXはともかく、Frameworkインストールしてくれって言うと
> 不安定になりそうでやだって意見は結構聞くよ。
Framework入れただけでシステムが不安定にはなかなかなりようもないような……。
そういうこと言う人はJavaVMもVBランタイムも嫌がるんだろうか……?
>DirectXはともかく、Frameworkインストールしてくれって言うと
>不安定になりそうでやだって意見は結構聞くよ。

なにが不安定になるの?おまえ何も知らないだろ?
ネットで得た知識を鵜呑みにしすぎww
自分で検証しろ、馬鹿www
>>844
俺のビデオカードなんてDirectX6世代のもんだぜ?
>>854
ゲームを買う人がみんな.NETは最高だ、早速インストールしたい!
と思っていると考えてる?
.NETとDirectX9は人によっちゃなかなか入れてくれない_| ̄|○
不安定にならない、ということを納得してもらうのは難しいだろうナア
859846:03/08/10 19:57
>>850
なんで商用ソフトなの?
パンピーの糞フトなんてどうでもいいから
パワーユーザーが使うことが多いオンラインソフトより、
一般ソフトで数多く使われてた方が、
開発する側としては安心出来るでしょう。

しかし、C#は普及するのかな。
自分的には組みやすい言語だと思うけど、
VBみたいにDLLだけじゃないから、VB(notNET)->C#も簡単に移行しないしねぇ。
JAVAの代わりに普及させたいみたいだけど。
VBと違ってWindowsUpdateで済むから楽観視してるけど普通は逆なのかな?
セットアップでランタイムをインストールさせるようなことができないのは不安だけど
いや、自分の会社はエロゲーと教育用ソフトと在庫管理ソフトを作っているが、
どの分野も追加の何かを極端に嫌がるよ。
VBのランタイムやMFCのランタイムは
インストーラをランタイムを使わずにくんで(C+APIで作る)、
ばれずにインストール出来るけどね。
あとはDLLのインストール位置で問題も出にくいしね。
Javaアプリを動かす為には追加の何か(JRE)を入れないと動かないわけだし。
そういう意味ではC#のFrameworkも同じでは?システムに深くテコ入れするシロモノでもないし。
正直、DirectX9入れるほうが不安だとおもうwwwwwww
>>864
いや、DX9もいやがられるよ。
でも、ユーザーに明確にゲームをしたいという考えがあって、
他社のもDX9必須になれば入れてくれる。

しかし、現状はそこまでいってないわけで。

過渡期の技術だからしょうがないといってしまえばそれまでだけど、
以前のDXのバージョンアップで
不具合が出た事が多かったおかげでみんな嫌がってるよ。
エロゲーユーザーだと、なんで紙芝居にDXを使うのかと文句いうし、
教育用のソフトだと、そもそも環境を変えさせて動かなくする訳もいかない。
在庫管理ソフトなんて、もし、
何らかのランタイムを入れて少しでも他のソフトが動かなくなったら
1日あたりいくらの金額で賠償もんだしねぇ。
まあ、ユーザーのところにすぐにいけるから、
問題がありそうな懸案は自分でインストールしてくるけどね。

OSの進化についてきていないユーザーが多いのは、
(98seのユーザーが相当多い)
やはり、動くモノには少しも手を加えたくないし、
必要がないって考えてるからだと思うね。

そうはいっても、進化は進むし、
.new frameworkがosに入ってからが本当のスタートだとは思うよ。
しかし、xpに.new frameworkが標準で入っていないのは痛い。
win server 2003 にも .new framework は入ってないよ
>>867
まあ、標準にはいるまで、俺らは先行しておこうね。
>>867
冗談みたいな話だなw
結論 SUNが悪い

それはともかく、「ゲームにはDOSで充分、Windowsなんて不要」と言われていた
時代もあったし、一大エロゲ帝国を築いていたPC-98も、ついに生産終了。
今の状況だけを見て判断するのは危険。

.NET Frameworkについては、ある臨界点を超えたら、一気に普及が進むと思う。
その臨界点が何時が問題だけど、年末に出る年賀状ソフト辺りが.NETへ移行したら
一瞬で普及するかも。

DX9は対応ビデオカードも安くなってきたし、あとはソフトですな。
win server 2003 には .net framework は入ってるよ
>>867,>>871
やっとこさ意味がわかった。
>>870
ほんとはjavaで統一できたらよかったんだけどねぇ
っていうか、一般人は在庫管理ソフトで何でDirectXが必要なの?って思うと思うと思うぞ
いや、DXではなく、.net frameworkの事。
特に今回のDX9って、
年間30タイトルあるかどうかわからないホットなタイトルのためであって、
一般ユーザーにはlonghornまで普及しないと思うぞ。
それを言っていると、いつまでも手を出せない。
そして、さっさと新しい環境にターゲットを移して、インパクトのある
ソフトを出したメーカーに、ユーザーをゴソっと持っていかれる。
あわてて参入しようと思ったときには、ノウハウ面で取り返しの付かない
距離を開けられている。

昔から何度もこういう光景を見たから、俺は今から.NETとDX9に
ターゲットを移した。まぁ、自分の信じる道を行けって事だな。
>>877
いや、必要があるならDX9を使うのは分かるよ。
逆に必要がないなら使わないでほしいのがユーザー。
でも、.NET を、今、わざわざ使う必要があるかって事。
まあ、己の道をがむばってくれ!
プレイしたいゲームがDirectX9要求したら入れるがな、オレは。

まープレイしたいゲームがコンシューマだったらハードごと買うような性格なんだけど、
そういうのは特殊の人種なのか?
>>878
ネイティブ環境崇拝者(ネイチャー)必死だな
職場の責任者やPC暦の長い人って幾度となく不具合を経験してるから環境移行は躊躇しがちだよな。
でも「DirectX用アプリを開発・プレイする目的をもった好奇心旺盛な10代」はいろいろインストールして
さままざな体験をしてみたいはず(マンドクセ・・・とは思わないはず)
ということでC#+.NETFramework+DirectX9もOKだとおもう。

開発者から見れば8より9のほうがいいし。C#はDirectX9以前は使えないわけだし・・・
出遅れると戦後の日本の軍用機エンジン開発並に痛手を食うよ。
さ。 後ろ(ネイティブ)を振り向かず前(.NET)へ進もう。
夏厨は朝からDX9+C#で何を設計してるのかな?
ん?ご苦労(プ
夏なのに寒い煽りですね
暦の上では秋なのに暑いツッコミですね
このスレには脳内で旧暦からタイムスリップしてきた、精神病院脱走者がいるようです
刺激すると暴れ出すので気を付けてください
<<881
ge-mu dakena
保険の意味合いと興味から.NETは学習してるけど、
正直これでなんかを組みたいとは思わん。
特にゲームみたいなものはね。
普及するかどうかも相当あやしいもんだと思ってる。
Longhornから標準搭載はいいとして、Longhornが全体の
半分以上を占めるのは何年先になるかねえ・・・ ヽ(´ー`)ノ
WindowsUpdateで配布するったって、その名前さえ聞いたことのない
ユーザーのなんと多いことか。
>>887
今はまあ、重要な更新扱いされてないから入れてない人多いけど、
重要な更新になったら知らず知らずのうちにみんな入れるって。

あと、OS だけじゃなくて、Office の新版入れたら
勝手に入るようにすれば気づかないうちに普及するだろうし。
889デフォルトの名無しさん:03/08/12 12:27
>>887
そのまえに君のもゲームも普及するに値しないから安心しとけ
890_:03/08/12 12:31
891デフォルトの名無しさん:03/08/12 13:37
C#厨必死杉w
>>887
おまえゲームのことしか考えてないだろw
>>891
初めて同意。
>>887
自分と同じスタンスですね。
JAVAと同じく、いつかは少しは普及するでしょうし、、
マイクロソフト謹製の言語として、
C言語の傍系の言語として、
そして、わかりやすさ(クラスの使いやすさ)と
4つのメリットを考えて、自分も学習しました。
他の人より先行しておいても、この言語はすぐに追いつかれそうなのが難点ですね。
そうだねえ
>他の人より先行しておいても、この言語はすぐに追いつかれそうなのが難点ですね。

まあ、C++使いなら3秒で移行できるな。
いつでも移行できるといいつつ絶滅していったDel厨みたいにならないよう
しっかり勉強しとけよ
C#DirectXのC++のような日本語ヘルプは無いのでしょうか?
Javaはサーバーサイドでは普及したけど、
エンドユーザー側じゃさっぱりじゃん。

ま、WindowsUpdateで最新のSunのランタイムが入れられたわけじゃないが。
誰か.NET2003でシェーダデバッガ
使えるようにする方法知りませんか?
>>898
C++のヘルプを読めばOK。
Managed DirectX と DirectX なんて同じようなもの。
.NET2003にDirectX9の日本語ヘルプを統合できない人がいるっぽいので
解決方法を書いときます。

1、まず普通に日本語ヘルプをインストールする。(この時点では統合できていない)
2、スタートメニューから[Microsoft Visual Studio .NET 2003]->[Microsoft Visual Studio .NET 2003 ドキュメント]をクリック
3、ヘルプのアドレス欄に「ms-help://MS.VSCC.2003/vscccommon/cm/CollectionManager.htm」と入力してコレクションマネージャーを開く
4、下のほうにあるDirectX 9.0 JPNのチェックボックスをオンにして「VSCCの更新」ボタンをクリック
5、そしてVS.netなどを開くと統合されている。
(゚Д゚)ウマー

日本語ヘルプなんてイラネ。英語版で充分
904デフォルトの名無しさん:03/08/13 14:56
日本語ヘルプなんてイラネ。プノンペン語版で充分
日本語ヘルプなんてイラネ。エスペラント語版で充分
>>903-905
必死だな(プッ
日本のヘルスなんてイラネ。台湾の売春で充分
初参加

C#リリース直後はさ、Javaの差異が全然わかんなかったんだよね。
でも、最近は少しはわかる。
しかし、DirectX9で、C#にDirectXがくっつくようになって、
また頭の上に?マークが。

C#は文法はとっつきやすかったから、
次のバージョンではヘンなことしないでネイティブコードにコンパイルするようにしてくれないかなー。
>>908
.NETのことをもっと勉強すれ。
>>908
俺、お盆休みを利用して Maanged DirectX に挑戦してみたが、
(DirectX 自体初挑戦。)
そんなに?マークが付くほど変じゃないぞ。
なぜにネイティブコードにこだわるのか理由がわからん。
それは目的じゃないだろ。
ネイティブコードじゃない事は、速度的にはデメリットにならんのよ。
JITで実行するCPUに合わせた最適化が出来るから、下手にコンパイル時点で
ネイティブコードにするより、実行速度は上がる事が期待できる。

C#がC++に速度的に負けるのは、配列の範囲チェック等が入るから。
オーバーフローのチェックもかなり痛いよな
914911:03/08/15 02:57
配列の範囲チェックやオーバーフローチェックは、それほど速度に影響ないよ。
VB6のコンパイルオプション試してみ。
オレが言いたかったのは、何のためにネイティブコンパイルを望むのかと。
速度が欲しいのならハードの性能でカバーできるから、ソフトウェア技術や生産性を主眼とした方向に
時代が進むのは正しいと思うが…
まぁここはDirectX関係のスレだからゲーム中心だし、速度も欲しいだろうがな。
どんどん新技術でいつになったらハードが追いつくのよ
Javaも数年前に同じこと言われてたけど、いまだに遅いしな。
CSSもそんな感じだよな。実装が追いついていない。
>>912
おいおい、Java厨と言ってることがまったく同じじゃないか……。
別に全面的に否定するわけではないが。
919908:03/08/15 15:31
>>910
DirectXがわからんってことじゃあなくて、C#にDirectXが実装された意味がさ。
VBにDirectXが実装された時も言われたことだとおもうけど。

それにしたって、VBだって未だにDirectXに対応していることは疑問視されてるじゃない?
同人やエロゲー屋が紙芝居作るくらいだ、とか。
C#も、何年たっても「CやC++に任せとけばいいんじゃない?」とか言われてそう。
さすがに紙芝居よりはいいもの作れるけど。

ツール類の開発には、コードがすっきりしてるしいいと思うんだけどね。
920山崎 渉:03/08/15 15:33
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
>>919
Longhornでは描画がGDI+よりもDirectXの方がメインになるから
922912:03/08/15 17:47
>>918
Java厨と一緒にされると、心外だなぁ(苦笑)
ネイティブコードではない事は、速度的には気にする事は無いと
言いたかっただけだよ。

何度も既出だけど、これからは一番重い描画部分はGPU上で
動かすようになるので、C#がC++より遅いと言っても、それは大して
問題にならない。
>C#がC++より遅いと言っても、それは大して問題にならない。
DirectXSDKのサンプルは試しましたか?
試した上での発言ですか?
だとすると判断能力に致命的な障害が見受けられます。
早めに医師の診察を受けることをお勧めします。
>923
SDKサンプルは試したよ 以下、C#/C++ でのFPSのおおよその平均値
BillBoard 95/185
CubeMap 180/185
DolphinVS 560/580
MotionBlur 530/540
PointSprite 75/100
ShadowVolume 135/130
SphereMap 545/970
VertexBlend 540/1080

環境はCPU Celeron800M ビデオカードは GeforceFX5200
アンバランスだけど、気にするな。実験環境だ

C#がC++の半分しか出ていないものもあれば、大して変わらないものもある。
ShadowVolumeは何故かC#の方が若干早い。

この差とプログラムの組み易さ、メンテナンスのし易さ、同じ製作時間で
C++とC#では、どちらが作り込めるかまで考え、さらにソフトが完成する頃の
ユーザーの平均的な環境を予想して、どっちを採用するか決めればいい。
925デフォルトの名無しさん:03/08/15 22:40
カラアゲ
>>924
結構いいじゃん。
Longhornで >>922 の言うようになりそう。
927910:03/08/15 23:47
>>919
そりゃ Managed コード化したかったんだろ。
ネイティブの C++ コードと比べてかなり簡単にかけてうれしいんだが。
>>979
「C♯にDirectXが実装された」という意味がわからないんですが。
おい>>979、責任重大だぞ
>>982
意味が分からなかったら、広辞苑で調べれば良いじゃん
二番煎じか。
議論でレス多くなったな・・・。
C♯にDirectXは実装されていない
広辞苑X9.0からC#に対応するらしい
C#に対応するのではなく.NETに対応だろう
なんでこんなに混同君が多いんだ?
936928:03/08/16 12:23
>>935
そうなんだよ。
なんかわかってるんだかわかってないんだかわからんままだれも突っ込まずに話が続くことが多いんで、
真面目にレスしていいものかどうか悩むんだよ。
もう >>919 なんてなにいってるのかさっぱり。
>C#に対応するのではなく.NETに対応だろう

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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