トップページgamedev
1001コメント305KB

鬱だ氏のう DirectX (Part 3)

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆WMpzjIm. 01/11/07 16:56ID:???
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html  (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/   (Part 2)
0539名前は開発中のものです。02/01/31 00:45ID:???
DirectAudioでMIDI演奏するとめっちゃかっこよく聞こえるんだけど。
リバーブとか利いて…
054053302/01/31 06:27ID:???
>>538
できました!ありがとうです。
ところでメッシュのポリゴンって最終的には全て3頂点に
されてしまうんでしょうか。取り出したら4,5角形が三角
に全部分割されてたんで。
054153402/01/31 10:15ID:???
>>535
プライマリでもセカンダリでも起きるし、Geforece2MXのみのマシンでも
起きるっす。
>>537
DirectDrawのShowFrameRateとは違うんですよ。
WidowsMediaPlayerや市販アプリでは表示されるのに、
自作のDirectShowアプリやGraphEditでは表示されないのがまた謎。
0542A-A02/01/31 12:40ID:6FLNkGol
・いきなり質問します。

@:XFILEを10個読み込んでアニメーションを10回おこなう
A:XFILEを 5個読み込んでBlendMesh?を2回づつ行う

同じようなアニメーションとではどちらが処理が速いのですか?
0543名前は開発中のものです。02/01/31 12:55ID:???
>542
自分で実験すれ。
0544名前は開発中のものです。02/01/31 12:59ID:???
>>543
>同じようなアニメーションとではどちらが処理が速いのですか?
同じようなアニメにできるの?
0545名前は開発中のものです。02/01/31 16:59ID:???
>>542

よくわかんないyo。

それってつまり、例えば60フレーム(コマ)のアニメーションをさせるにあたって
@は 「10個のポーズをロードし、6フレーム毎に単純に切り替え表示する
     (カクカクのパラパラマンガ)」 ということなのか。
Aは 「5個のポーズをロードし、これらをキーフレームとして使い、残りの中間フレームは
     補間処理で生成しながら表示する(キーフレームアニメーション)」 ということなのか。

仮にこうだとすると、得られる結果が違いすぎるというか
処理の重い軽いの問題以前に@は見た目がヘボいので
素直にキーフレームアニメーションしる。
0546A-A02/01/31 17:34ID:6FLNkGol
学校の先生に怒られた!!!
「お前の処理は垂直帰線期間に描画されていない」
あいつに一泡ふかせたい!!
何かいい手はありますか??
0547A-A02/01/31 17:47ID:6FLNkGol
レスありがとうございます。
054854502/01/31 17:51ID:???
この辺の本の内容をじっくり習得するのが早道なので頑張れ。
http://www.gogo3d.com/products/gems1/

そなたの望み通り煽り倒すわけにはいかないのでマジレスする。
もうこのスレに関わらないでくれ。な。
0549名前は開発中のものです。02/01/31 19:16ID:???
( ´ー`)y─┛~~~
はい、次の方どぉぞ
055053302/01/31 20:07ID:???
またまたすいません。頂点バイトデータの並びが分かりません。
一頂点が24バイトだったのでをこんな構造体の配列で読み出して格納しました。
struct VERTEX1{
float x,y,z;     //座標
D3DCOLOR color;    //RGB
float tu,tv;     //テクスチャ
};
RGBとかは無用なので座標だけ取り出していたのですが、
どの頂点も同じ異常な値(本来入っているべき値と比較して)
が出ます。何故か全部おなじなんです。あぁ・・・
なんか根本的におかしいんですよね。どうすべきなんでしょか
0551名前は開発中のものです。02/01/31 20:19ID:???
>>550
ドキュメントに目を通しなされ・・・
http://www.microsoft.com/japan/developer/library/jpdx8_c/_dx_about_vertex_formats_graphics.htm
0552名前は開発中のものです。02/01/31 21:07ID:???
>>550

出来ることなら、もう少しだけ論理的に頼むよ。
ソースを見せずに他人にバグを直してもらうのは
難しいというか、「おちょくってるのかボケ」ということ。
0553なんだかなぁ・・・02/01/31 21:07ID:???
( ´ー`)y─┛~~~
はい、次の方どぉぞ
0554名前は開発中のものです。02/02/01 00:06ID:/uRTeNYf
>>546
その先生の怒り方、適切じゃないよ。
そんな先生無視しチャイナ。
0555名前は開発中のものです。02/02/01 04:42ID:???
最近、早いんですよ。
0556名前は開発中のものです。02/02/01 14:00ID:???
4*4行列の逆行列を計算する関数はありますか?
0557名前は開発中のものです。02/02/01 14:04ID:???
D3DXMatrixInverse
0558名前は開発中のものです。02/02/01 14:23ID:???
サンキュー
0559ハァ・・・02/02/01 19:52ID:???
( ´ー`)y─┛~~~
はい、次の方どぉぞ
0560名前は開発中のものです。02/02/01 20:37ID:???
D3DXMatrixInverseであらゆるマウスポインティングを
片付けようとしている俺はダメな奴ですか?
分かり易く説明して下さい。
0561名前は開発中のものです。02/02/02 07:41ID:???
>>560
その説明ではよう分からぬ。
もう少し詳しく書いてくれないか。
0562名前は開発中のものです。02/02/02 18:57ID:???
D3DXIntersectでした。ひゃー
0563名前は開発中のものです。02/02/02 19:58ID:???
ちゃんと動いてれば気にするこたーない。
と漏れは思うが。
0564名前は開発中のものです。02/02/02 20:04ID:???

それが普通に動かんのです。マニュアルに嘘がかいてあるんです。
実際使ってみると判明します。
0565名前は開発中のものです。02/02/02 22:47ID:???
その「嘘」とやらを具体的に教えてくれ。
0566名前は開発中のものです。02/02/02 23:25ID:K7VWJIuy
joystick.obj : error LNK2001: 外部シンボル "_DirectInput8Create@20" は未解決です
joystick.obj : error LNK2001: 外部シンボル "_IID_IDirectInput8A" は未解決です
Debug/MyBase.exe : fatal error LNK1120: 外部参照 2 が未解決です。
link.exe の実行エラー

VCで使って、DirectInputを作ってたらこんなエラーが出たんだけど何?
つーか、VCって何だよ!スゲー使いずらいんだけども。このエラーはどういう意味なのか?
VCスレで聞けと言われそうだが、とりあえず、教えてください。
0567  02/02/02 23:34ID:???
>VCって何だよ!スゲー使いずらいんだけども

その程度の事もわからない素人が何言ってんだか。
リンクするライブラリ指定してないだけだろ
0568名前は開発中のものです。02/02/02 23:40ID:K7VWJIuy
>>567
いや、してる。
オプション、ディレクトリの所でリンクさせてるんだが。
後、VCは素人だが、プログラマとしては素人ではないんだがな。
0569名前は開発中のものです。02/02/02 23:46ID:Oiz2/t8M
>>568
優先順位が下になってるに60万ペリカ
0570  02/02/02 23:50ID:???
はぁ? オプションのディレクトリは検索パスの指定だけですが?
プロジェクト、設定、リンクの ライブラリモジュールってとこに書いてる?

つか、VC使用歴に関係なくヘルプもよめないなんて素人なんですが
0571名前は開発中のものです。02/02/02 23:50ID:K7VWJIuy
ああ、分かったーーーーーーー
プロジェクトの設定で直接、必要なライブラリを追加させればいいのか。
もう大丈夫ダス。
失礼いたしました。
0572名前は開発中のものです。02/02/02 23:52ID:K7VWJIuy
>>570
つーか、何でそんなに煽り文を書くの?
俺の書き込みがそんなに嫌な書き込みだったのか?
お子様ならしょうがないんだけど。
057356902/02/03 00:08ID:BAvrjfiW
>>570
検索パスの順位が、デフォルトで入ってるが上の状態だと
同名ライブラリ拾うからその可能性書いたんだけど。
そんなに気に障ったかボケ
0574名前は開発中のものです。02/02/03 00:13ID:K93KH5cM
おしっこ、せっくす!
0575名前は開発中のものです。02/02/03 01:29ID:???
>>571
>ああ、分かったーーーーーーー
>プロジェクトの設定で直接、必要なライブラリを追加させればいいのか。

使いづらい?それ以前の問題では・・・(汗
HSPエディタとは別な物ですよ。一応忠告。
0576名前は開発中のものです。02/02/03 04:27ID:???
>>572
>俺の書き込みがそんなに嫌な書き込みだったのか?
570じゃないですけど、たぶんそうなのでは。
大多数の人は>>566の質問見るだけでグンナリすると思います。
0577894502/02/03 04:41ID:mp8s1bn2
           ,一-、
          / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ■■-っ <   オーイ、これ貼っといてー。
          ´∀`/    \http://www.puchiwara.com/hacking/
 ∋8ノハ8∈@ノノヽ@ヽ    \__________
   (´D` ) (‘д‘__) |
    ∪∪∋∪∈|__ノ|
      ∪∪ ∪∪
0578名前は開発中のものです。02/02/03 04:53ID:???
>>570
しかもそこでパス設定すると、他所でビルドデキンしね。
使いズライてのは解る気がする。
各windowが、ソースコードの前面に来るの、マジで止めて欲しい。
退かすとぺこぺこくっ付くし、キレそうになる。
057957602/02/03 04:58ID:???
566見たけど、そもそも、必要なlibファイルのインフォメーションが
簡単に検索出来ない(それ以前に明示されてない)のが問題だと思う。
VCじゃなくて、リファレンスの問題だけど。

Inputぐらいなら、まんまだけど。
058057902/02/03 04:58ID:???
訂正
>>576
0581 02/02/03 06:22ID:???
>>578
ソースに
#pragma comment(lib,"dinput8.lib")
と入れとけ

>>579
大抵のメソッドの解説最下段に
インポート ライブラリ : hoge.lib を使用。
って書いてあるぞ
少なくとも DirectInput8Create の解説には書いてあるが?
058256902/02/03 06:42ID:???
亀自己レスだけど570=566だと勘違いしてた。
>>573の書き込みについて、正直、スマンカッタ>>570
0583名前は開発中のものです。02/02/03 08:17ID:???
>>572
2chなんかで質問する方が悪いとしか言えない
質問内容もFAQのトップにくるような内容だったし
0584名前は開発中のものです。02/02/03 09:22ID:???
いや、しかし570のような書き込みは
敵を増やすだけだぞ。
0585名前は開発中のものです。02/02/03 09:55ID:???
| ̄|
      / ̄\
      | ฺฺ☢ฺ |
      |    |
      |    |DirectX取り扱いキケン
0586名前は開発中のものです。02/02/03 14:19ID:1gUg2wu/
>>570
いいからそんなくだらないことで偉そうに振舞うなよ。
流せバカ。
0587名前は開発中のものです。02/02/03 17:30ID:???
人間関係上の技術が0歳児並の鬱氏スレ住人達、でした!
終わり♪
0588妄想野郎02/02/03 23:32ID:???
モナーRPG作れよおまえら
0589名前は開発中のものです。02/02/03 23:36ID:???
頂点に含まれるW値が様々なトラブルを引き起こしています。
これを常に1にしておこうと思うのですが、行列変換の度に
1にすることで何か不都合が怒るケースってありますでしょうか?
0590名前は開発中のものです。02/02/04 09:57ID:???
>581
#pragmaディレクティブは「デフォルトのライブラリ無視」すると無効化されちゃうから
あまり手抜きしない方がいいかと思うんだけどねぇ。
リンクするライブラリをハードコードすることになるわけだし。

ま、めんどいときは使うけどヽ(´ー`)ノ
0591 02/02/04 10:38ID:???
>>590
あーそなのか。勉強になりました
サンプルでプロジェクト作るたんびにDX系ライブラリズラズラ書くの面倒なんだよね〜

なんかいい方法ない?
0592名前は開発中のものです。02/02/04 15:26ID:???
>591
おれは#pragmaでライブラリリンクさせる方法で間に合ってるけど。
その人のポリシーだから、「デフォルトのライブラリ無視」の必要が無ければ
それで済ませて良いのでは。
0593名前は開発中のものです。02/02/04 15:53ID:???
Windows用のGLUTのヘッダファイルでも、
ライブラリリンクのために#pragmaが堂々と使われているぞ。
0594 02/02/04 17:37ID:???
>593
それの利点はリンクを意識しなくてもビルド出来る事。
逆にマルチスレッド化とかが必要になると途端にドツボにはまる、と。

まぁ初心者にしか当てはまらないだろうけど。
0595名前は開発中のものです。02/02/04 21:57ID:???
「DirectX対応ゲーム」って言葉何かひっかからない?
0596名前は開発中のものです。02/02/04 23:48ID:???
GDIでも動くなら、「対応」でいいんじゃない?
逆にDirectXでしか動かないなら「専用」とか「必須」だけど。
0597名前は開発中のものです。02/02/05 01:29ID:V14z5otC
>>595
そういう歌い文句のあるゲームは必ずHSPかVB製
0598名前は開発中のものです。02/02/05 03:00ID:???
話の腰を折って申し訳ないが。ちょっと質問。
DirectPlayを使用したゲームを作るとき、何msごとに何バイト程度のデータを送ってる?
通信モデルやゲームのタイプでも変わってくると思うが、自分のゲームに実装した人がいる
ならば、「ActionRPGタイプのゲーム。P2Pで、1000ms毎に64バイト」みたいな感じで教えて
もらえると参考になってありがたい。

自分で試しにLAN内で 1/30msに sizeof(Uint32)サイズのデータをServer&Clientで送ろうと
したんだが、この程度でサーバが明らかに取りこぼししやがんの......
これって、コーディングミスって考えてもOK?。それともパフォーマンス的にこんなもん?
正直、DirectPlayのパフォーマンスがまだ読めてない。スマソ。
0599名前は開発中のものです。02/02/05 03:07ID:???
>>598
1/30msって速すぎじゃないか?
060059802/02/05 03:10ID:???
>>599
即レスさんきゅ。しまった。1/30s = 33msだった。鬱だ。
0601名前は開発中のものです。02/02/05 11:03ID:???
DirectPlayは使ったこと無いけど、UDP使ってるから非保証だしパケットロスは
必ずある前提で設計しないと。
LANでさえ、途中にダムハブやスイッチングハブをいくつかかますとかなり
パケットロスするし。
060259802/02/05 21:22ID:Xh6W9lXD
>>601
パケットロスに関しては、もちろん考慮してるよ。
おそらく取りこぼし云々に関してのことだと思うが、俺の説明が足りなかったようだ。

クライアント側:::一定期間(33ms)毎にカウンター値を送る。
サーバ側:::データ受信スレッドで送られたカウンタ値を受け取る。
こういう感じなんだが、サーバ側の受信キューが処理しきれてなくてどんどん溜まって
いく一方なんだわ。
(いま考えると、ぜんぜん取りこぼしじゃないな。正直説明ミスだった。スマン)

つーことで、引き続き御意見募集。よろしく。
0603名前は開発中のものです。02/02/05 21:28ID:???
>>602
>サーバ側の受信キューが処理しきれてなくてどんどん溜まっていく一方なんだわ。
ならサーバーのプログラムがおかしいのでは無いだろうか?
若しくはサーバーが486あたりとか。
060459802/02/05 21:45ID:???
>>603
やはりサーバプログラムの実装ミスなのかな。
Reveiveメソッドの処理コストもじっくり調べてみるか。
意見さんきゅ。

実際に通信ゲーム作った人の例なんかも聞きたいのよー。
送信の頻度と、データのサイズ。
0605名前は開発中のものです。02/02/06 10:31ID:CNMnrAW9
レベル低い質問なんですけど、directXでmesegeboxやpirntf等で
漢字、ひらがな、カタカナを使って日本バージョン以外のwindowsで
アプリを起動すると文字化けは仕方ないけど強制終了って結構ある
ことなんでしょうか?
0606 02/02/06 10:42ID:???
DirectXでprintfってどういう状況なんだかさっぱり
0607名前は開発中のものです。02/02/06 10:47ID:CNMnrAW9
pirntf等→printf相当の命令という意味です。
わかりにくくてスマソ。ちなみに自分は_stprintfで出力してます。
0608名前は開発中のものです。02/02/06 11:44ID:???
_stprintfはfontと組み合わせで描画してるから英数文字しか
出力できないので替わりにタイトルバーに変更します。
0609名前は開発中のものです。02/02/06 12:17ID:???
>>607
ますます意味がわからんが _stprintf() だと DirectX 関係ない気がするが。

MessageBox(NULL, _T("日本語"), _T("日本語"), MB_OK);

これを日本語非対応の Windows 上で実行したときの挙動について知りたいなら、
DirectX のことは忘れて Win32 API 関係の相談室にでも行って聞いた方が良い
と思うぞ。
061060902/02/06 13:22ID:???
>>609 確かにスレ違いでした。にもかかわらず
適切な返答には感謝です。
0611名前は開発中のものです。02/02/06 13:50ID:???
ってーかそのレベルでDirectXに手を出すのは自殺行為では・・・
0612名前は開発中のものです。02/02/06 14:12ID:???
>611 少なくともお前よりは上級者だから心配無用。
0613名前は開発中のものです。02/02/06 14:31ID:???
ノベルを除くゲームだと文字をグラフィックで持つ場合が多いから
DirectX使う上で日本語処理が問題にならない場合が多いしな。
趣味でプログラムしている人ならどうなるか知らない方が多いんじゃないか?
0614名前は開発中のものです。02/02/06 20:00ID:+tH1+sIe
何も考えずUnicode使え。Win98は切り捨てろ、ゲイツ御大の御意向だ。
型は、_TCHAR、LPTSTR、LPTCSTRのみ。
Cランタイムライブラリは、_tcかそれっぽいのが頭に付いているのを使え。
0615名前は開発中のものです。02/02/06 20:02ID:+tH1+sIe
LPCTSTRだった。
つーかDirectXでもコーポネントによって、Unicode対応だったりそうじゃなかったり
するんだよね。ウザッ!!
0616名前は開発中のものです。02/02/06 20:18ID:???
>615
じゃあ使えねぇじゃん。
0617名前は開発中のものです。02/02/06 20:25ID:+tH1+sIe
>>616
そういうのには、マルチバイド文字列に変換して渡すんです。
これもランタイムライブラリにあるよ。
>>614の他に、文字列は_T()マクロで囲む。→_T("まんこ")
これだけでマルチバイド、ワイド文字列両対応になります。
簡単だし導入する価値はあるよ。
0618名前は開発中のものです。02/02/06 20:37ID:???
>>617
ただし、ときどき #ifdef _UNICODE でコードを付け加える必要があるけどね。
何も考えずに _T() だけ使えば OK とはいかない。

 std::exception 派生の例外が飛んできたときに、それを画面に表示したい。
 _UNICODE の場合には wcstombs で変換必須だが、_MBCS だと変換不要

 改行文字を含む文字列を画面に表示したい。_UNICODE の場合には _T('\n')
 を探せば良いが _MBCS だと _isleadbyte() でチェックすして、真なら 2 バイト
 飛ばす必要がある。

とかとか。

ところで非日本語 Windows 環境で MessageBox(NULL, _T("日本語") ...) する
話だけど、そもそもフォントはどうなるんだ? まぁ MS 的には

 文字列リソース使え

が正解だとは思うが。
0619正直02/02/06 22:30ID:???
SJISで十分。
0620名前は開発中のものです。02/02/06 22:35ID:???
>>619
しかし IDirectMusicLoader8::LoadObjectFromFile() なんかは引数に UNICODE
文字列を要求するという罠。…しばらくは、両方使わんとダメだわ。

(しかし、それと >>609 の問題はあまり関係ない気がする)
0621名前は開発中のものです。02/02/06 23:03ID:???
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
0622 02/02/07 02:15ID:???
で、ここはいつからWin32API相談室になったんだろう。
0623 02/02/07 02:18ID:???
言い忘れ。

>612 ならこの程度の問題とっとと解決しろ。
0624名前は開発中のものです。02/02/07 02:20ID:???
>>622
既にプログラム技術板に移った模様。
0625名前は開発中のものです。02/02/07 02:55ID:???
>>▼゚Д。▼カフッ▼゚Д。▼カフッ
↑最近、これよく見るんだけど、どういう意味?
話題区切り?
0626名前は開発中のものです。02/02/07 03:17ID:???
Bio_100%界隈でブイブイ言わせてた GL_Traiger_OX を潰した英雄です。
もう、GL_Traiger_OXはネット上では二度と姿を出せないでしょう。
0627名前は開発中のものです。02/02/07 04:12ID:???
DIRECT3Dで2Dやる方法教えてください


0628名前は開発中のものです。02/02/07 04:24ID:Wh7hI8hS
板ポリゴンにテクスチャ貼って下さい
それがダメなら本買ってくだっさい
0629名前は開発中のものです。02/02/07 04:32ID:???
ありがとうございます。
本買います。
どこで売ってますか?
0630名前は開発中のものです。02/02/07 05:02ID:???
▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
0631名前は開発中のものです。02/02/07 05:04ID:???
DIRECT3Dで2Dやる本教えてください。
0632名前は開発中のものです。02/02/07 05:09ID:???
お願いします。
0633名前は開発中のものです。02/02/07 09:09ID:???
ぱぱらぱん!
Cマガのじゅーがつごー

…じゃだめですか。
0634名前は開発中のものです。02/02/07 09:17ID:???
ありごうとございます!
Cマガジンの10月号ですね!
買いに行きます!
ご恩は一生忘れません!
0635名前は開発中のものです。02/02/07 14:54ID:???
>634
ばーか、ばーか。
氏んじゃえ。
0636名前は開発中のものです。02/02/07 15:22ID:???
>>625
HTMLの<HR>だと思っていればいい
0637 02/02/07 15:44ID:???
>▼゚Д。▼カフッ▼゚Д。▼カフッ▼゚Д。▼カフッ
これ書いてるの一人?どうせならコテハンにしたら?
0638名前は開発中のものです。02/02/07 17:32ID:???
>これ書いてるの一人?
それは「吉野家のコピペを書いてるのって一人?」と聞くようなものでは。
2ch中の吉野家コピペを一人で書いてる可能性はおれには否定するデータは無いが。
■ このスレッドは過去ログ倉庫に格納されています