DirectX総合スレ (Part4)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/11/26(土) 01:58:58ID:RjcSZKi5ゲーム製作技術スレに戻ってきました。
DirectXについて、にいさま達がマターリと
技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。
ちなみに、言語はC++がメイン。
C# / VB.NET 使いは、専用スレの方が話がスムーズに進むと思われ。
0201名前は開発中のものです。
2006/02/22(水) 22:13:11ID:UDae7t6t0202名前は開発中のものです。
2006/02/22(水) 22:13:47ID:nv5xXFiH0203名前は開発中のものです。
2006/02/23(木) 12:23:53ID:TawFmJvjいいのかそれで。
0204名前は開発中のものです。
2006/02/23(木) 12:33:10ID:/3uSGQG/8と9なら迷わず9を使うな。
俺だったら。
0205名前は開発中のものです。
2006/02/23(木) 20:17:55ID:JrWRQMNf今から7はありえない
0206名前は開発中のものです。
2006/02/23(木) 20:43:25ID:bB240Yzr特に罠は設置されていないようですね。
今度機会をみてエンジンの9化にトライしてみようと思います。
トンクス>ALL
0207名前は開発中のものです。
2006/02/23(木) 23:55:06ID:AoEcGAG00208名前は開発中のものです。
2006/02/24(金) 00:02:33ID:wGgaxz4n0209名前は開発中のものです。
2006/02/24(金) 00:47:00ID:jWEA12o20210名前は開発中のものです。
2006/02/25(土) 14:33:29ID:ebnPFk5hDrawTextだと処理重いです、これってどうにかならないのでしょうか?
使用する文字をすべてテクスチャ化しておくとか
画面に描画するとき1フレームだけメッセージをテクスチャバッファに出力し2フレーム目以降は
そのテクスチャから描画するとかそういう方法を使うしかないですか?
0211名前は開発中のものです。
2006/02/25(土) 14:34:27ID:pbYlIp6T0212名前は開発中のものです。
2006/02/25(土) 19:03:31ID:ebnPFk5h過去ログを見るもDAT落ちしていて読めない世間の風が身にしみる今日この頃です
0213名前は開発中のものです。
2006/02/25(土) 19:50:38ID:xoASBqlz0214名前は開発中のものです。
2006/02/25(土) 20:08:13ID:GMGqZ2iMお前みたいなやつはたくさんいるぞ。
0215名前は開発中のものです。
2006/02/25(土) 22:15:38ID:4FrjqAbX0216名前は開発中のものです。
2006/02/25(土) 23:01:39ID:F6qtQ50M0217名前は開発中のものです。
2006/02/26(日) 02:47:05ID:Gmchuwfy何がいいたいのかというと、それくらい既出ってこと。
0218名前は開発中のものです。
2006/02/26(日) 09:02:33ID:UQEnzaUj0219名前は開発中のものです。
2006/02/26(日) 12:49:11ID:AevKFysN0220名前は開発中のものです。
2006/03/02(木) 12:38:01ID:8oNkVHF8ttp://www.cmagazine.jp/contents/200110.html
これに書いてある。
バックナンバー買え。
0221名前は開発中のものです。
2006/03/05(日) 13:41:58ID:QJ1yWQf0更新の瞬間だけテクスチャに描画してたな・・・。
ひとつの大きな文字列書き込み用テクスチャ作って、
更新のタイミングで、文字列とフォント、サイズ指定でテクスチャの空きエリアに描画、
帰ってきたハンドルを描画関数に渡したら、そのUVに合わせて画面上に描画。
テクスチャが満タンになるのを避けるため、
在る程度のタイミングでテクスチャをクリア。
あと、数字、英語関係はあらかじめ用意したテクスチャで描画。
0222名前は開発中のものです。
2006/03/05(日) 13:48:08ID:od2G2aYG0223名前は開発中のものです。
2006/03/05(日) 19:07:28ID:1Lc3DEWZdirectx初心者が一番最初につくるとしたらどういったジャンルのゲームがいいのかなぁ?
つかdirectx初心者ならどういったゲームを最初につくるのが一般的?
0224名前は開発中のものです。
2006/03/05(日) 19:13:49ID:drxZJm27作りたい物から作れ。
0225名前は開発中のものです。
2006/03/05(日) 19:35:44ID:4ZGIRxPv0226名前は開発中のものです。
2006/03/05(日) 20:10:51ID:UgR865crツマランゲームじゃ長続きしないっしょ。
習作としてならなんでもいいわけだし。
あえて言えば音無し&凝った入力無しの
DirectDrawだけで済むテーマが御勧め。
テクスチャーや頂点バッファを保持するタイミングで、
全体のデータの持ち方やアルゴリズムが決まるので、
練習のつもりでやってみると良いと思います。
一方SoudやInputは後付けが楽。
0227名前は開発中のものです。
2006/03/05(日) 20:13:54ID:cQK4mU/u>テクスチャーや頂点バッファを保持するタイミングで、
言いたい事は分かるが矛盾してるってば
0228223
2006/03/05(日) 20:57:08ID:1Lc3DEWZジャンルはアクション・レース・シューティングとか動きに爽快感のあるようなゲーム
という方向で考えてる。とりあえず何か作ってみようという考えだけなんで
最悪の場合、どっかのゲームのパクリでも結構なんだけど・・・
0229名前は開発中のものです。
2006/03/05(日) 21:02:14ID:QJ2cT6HJいちいち人に聞くようなことか?
0230223
2006/03/05(日) 21:17:08ID:1Lc3DEWZそこまでといってもジャンルしか決まっていないのにゲームがつくれるはずがないだろ。
誰も一から企画を立てろといってるわけじゃないんだよ。
「おれは最初はこんなゲームつくった」程度のことでいいから参考までに聞きたかっただけ。おk?
0231名前は開発中のものです。
2006/03/05(日) 21:28:51ID:UgR865cr0232名前は開発中のものです。
2006/03/05(日) 21:29:19ID:tqVFcZBMN88BASICでBIG&SMALLだった>おれは最初はこんなゲームつくった
0233名前は開発中のものです。
2006/03/05(日) 23:27:47ID:cQK4mU/uアルカノイドかテトリスがお似合い
0234名前は開発中のものです。
2006/03/06(月) 00:34:27ID:D3NpT3W8最後のやつは途中で止まってるが・・・・。
0235223
2006/03/06(月) 01:10:50ID:2h1PHnyu悪いがどういう意味か教えてくれ。
0236名前は開発中のものです。
2006/03/06(月) 01:29:39ID:sCkY5tz3数学の知識は?
0237名前は開発中のものです。
2006/03/06(月) 01:35:29ID:TtFLO+VH0238223
2006/03/06(月) 01:49:47ID:2h1PHnyu>>236
directx自体が今回初で今まではAPIでゲームをつくってた。
つくってたといっても2つだけ。ひとつが2D縦スクロールシューティング、もうひとつが
オフライン型ポトリス風ゲーム。数学は高校の数I数II数III数C程度。
0239名前は開発中のものです。
2006/03/06(月) 02:05:01ID:L610p2Kfそのまま弾幕STGを極め、
弾幕STGで終わるのが日本男児です。
0240名前は開発中のものです。
2006/03/06(月) 02:07:15ID:Narqaa+hおまえね それを最初に言わないとこの流れになるのは当然だろ どうしたってゲーム自体が初心者に読める
「つくってた」というのは「完成させた」という意味でいいんだよな?
あと煽りはスルーしとけ
0241223
2006/03/06(月) 02:23:14ID:2h1PHnyuそんな風に思われてたのかw
>「つくってた」というのは「完成させた」という意味でいいんだよな?
ああ、一応は。
0242名前は開発中のものです。
2006/03/06(月) 08:56:36ID:cUtSyE7B0243名前は開発中のものです。
2006/03/06(月) 21:34:04ID:dt9ORfm50244名前は開発中のものです。
2006/03/07(火) 08:49:14ID:KaHc6rc72D格ゲー作りたいと思った。
DirectX8.1b+Dev-CPPで色々勉強してみた。
そこで気になったんだが、
DrawPrimitiveよりもUPのが格ゲー向きってことでいいんだろうか。
頂点情報が変化しやすいモノにはUP系を使うんだよね?
あと、アニメーションについて。
テクスチャの座標を切り替えるってのは分かった。
しかし、いざプログラムを組もうとするとこれが出来ない。
サンプルを探しても、一定周期で画像が変わるSTGのサンプルばかりだ。
0245名前は開発中のものです。
2006/03/07(火) 09:21:19ID:iLTg1YCPDrawPrimitiveならVRAM、DrawPrimitiveUPならシステムメモリという事だろう
VRAMに置いた方が早いが、VRAMの容量が少ない場合はシステムメモリに置くしかない
2Dならどちらを使おうが大して差はない
>テクスチャの座標を切り替えるってのは分かった
そこまで分かっててなんで分からないんだよ
テクスチャの縦横が2のべき乗サイズにしなければならないのは分かるよな
アニメーションパターンが一枚の画像に納められているとしたら
x/テクスチャの横幅、y/テクスチャの縦幅でテクスチャ座標を求める
0246名前は開発中のものです。
2006/03/07(火) 09:29:14ID:KaHc6rc7なるほど。すげえ分かりやすい。
VRAMウンコなんでUP系で行きます
>そこまで分かっててなんで分からないんだよ
なんていうか、アルゴリズムがよく分からないのですよ。
時間を計測してテクスチャの座標指定で絵を切り替えるのは出来るんだけど、
技をどうやって実現するのか、っていうのが分からない。
技毎に関数化して処理するべきなんだろうか
0247名前は開発中のものです。
2006/03/07(火) 09:59:11ID:HD1AfdBkプログラマの腕の見せ所でしょ。
0248名前は開発中のものです。
2006/03/07(火) 10:02:33ID:KaHc6rc7確かにそうだ。
いっちょ頑張ってきます
0249名前は開発中のものです。
2006/03/07(火) 10:56:44ID:ZvqJ1rtZ勘違いが横行しているが、動的に変更されるものは、
D3DPOOL_DEFAULTとD3DUSAGE_DYNAMICでAGPメモリに置かれるように書くべき。
これだけでメインメモリに対するアクセス速度と、
ハードウエアによる頂点処理の美味しいところどりが可能。
UP系は扱いが楽だと言うだけで、それ以外の使い道は無い。
切り分けは、速度を考えるならD3DPOOL_DEFAULTとD3DUSAGE_DYNAMICで非UP系、
復元作業などが面倒で速度を犠牲にするならUP系。
0250名前は開発中のものです。
2006/03/07(火) 14:52:09ID:2jd6Ujb3トランスフォーム済みをUPで書き込んだ方が直感的で楽だからな。
0251名前は開発中のものです。
2006/03/07(火) 15:00:37ID:nEDWtIQy行列変えながら1枚ずつ描いたりしたらオーバーヘッドが大きすぎる。
ソフトウェアで頂点処理してバッファリングする以外になんか方法あるのか?
0252名前は開発中のものです。
2006/03/07(火) 17:12:17ID:3UAZ0ydO0253名前は開発中のものです。
2006/03/08(水) 02:53:05ID:Y7Fl2NwFさっさと今できる方法で作り始めろ
0254名前は開発中のものです。
2006/03/08(水) 13:42:28ID:6Pu2zangパーティクルなんかで数千とか呼び出す場合はバッファリング必須だけど。
0255名前は開発中のものです。
2006/03/09(木) 03:44:44ID:sBPrFRob普通のステレオサウンドは可能ですか?
0256名前は開発中のものです。
2006/03/09(木) 14:59:15ID:LkA/+e5O0257名前は開発中のものです。
2006/03/09(木) 15:29:33ID:wAhpHYulただ3Dのサウンドバッファとステレオのサウンドバッファを併用する事はできる
0258名前は開発中のものです。
2006/03/09(木) 16:01:42ID:Xaf4t6ggステレオで音楽が鳴るというギミックがあった。
やつらが使ってるのはDirectSoundじゃないけど、よくできてるなーと思った。
それはそれとしてBGMをプレイヤーの頭の中でステレオで再生しながら
他の効果音は3Dてのは普通にできるよね?
0259名前は開発中のものです。
2006/03/10(金) 02:42:46ID:IKH3QLdr0260名前は開発中のものです。
2006/03/12(日) 00:30:47ID:nl1C9jUkLightWaveでつくったモデルをDirectX export Ver.1.3.2でXファイルにしてみたんです。
でも、Xファイルのほうにはテクスチャの透過処理の情報が伝えられないみたいなんです。
だれか、同じような経験した人居ません?
0261名前は開発中のものです。
2006/03/12(日) 23:54:29ID:IHcM16r8でも成功しません。ダイアログを開かずに読み込んだら成功します。何かのデバイス
が消失したりするのでしょうか?
0262里奈 ◆IQwhCnTrnE
2006/03/13(月) 00:01:51ID:ndS3REe/言語は何?
C/C++?
WINAPIでやってるのなら
ダイアログでファイル名を受け取る文字列のポインタがローカルで宣言されてるんじゃないの。
グローバル変数として宣言しないと無理な気がする。
と、エスパー的回答を試してみる。
0263名前は開発中のものです。
2006/03/13(月) 00:04:08ID:QktGfhf6俺もエスパー挑戦w
情報少なくてわからんけど、GetOpenFileName使ってるんだったら
デフォルトの設定だとパスが、相対パスから絶対パスに変わるから
OFN_NOCHANGEDIRを指定すれば直るよ。
0264名前は開発中のものです。
2006/03/13(月) 00:42:28ID:aYluyVadんじゃ俺もエスパーやってみよう。
UNICODEが原因。
警告4995が出てるからすぐ確認した方が良い。
環境はVS2003か。。。
プロジェクト->プロパティ->全般の文字セット項目を「Unicode文字セットを使用する」にするんだ。
0265名前は開発中のものです。
2006/03/13(月) 02:10:45ID:FSwsN/nnこんなことで5時間近く悩んでたよ。はっはは
0266263
2006/03/13(月) 04:16:30ID:RnnCIcMf0267名前は開発中のものです。
2006/03/13(月) 07:44:31ID:Ynxtel+M0268名前は開発中のものです。
2006/03/13(月) 07:48:52ID:NzYI5i2j0269名前は開発中のものです。
2006/03/15(水) 19:00:38ID:KMxTATVm0270名前は開発中のものです。
2006/03/15(水) 23:22:58ID:+HBBDbXP君の胸の中で死ぬまでの時間をカウントしてるよ。
0271名前は開発中のものです。
2006/03/16(木) 00:26:35ID:zN1UK54jそれは 夢のオワリ
0272名前は開発中のものです。
2006/03/16(木) 03:48:52ID:I6kSNHzYDirectxの各バージョンに対応しているチップセットなりビデオカードは
どう見分ければ良いのでしょうか?
今まであまり気にせず最新のものを入れていたのですが、対応していないPCに
最新のバージョンを入れると不具合があるというのを他スレで見まして…
アンインストールも出来ない様ですし困っております
ビデオカード等の型番だけでは判断出来ず、診断ツールを使わないとわからないのでしょうか?
ご存知の方いらっしゃいましたらご回答宜しくお願いいたします。
0273名前は開発中のものです。
2006/03/16(木) 08:04:38ID:FFYmwBIN対応してないDirectXを入れての不具合は、
ドライバを古いのに戻してもらうか、最悪OSを再インストールだが、それはそういうものだ。
自分のアプリが使えなくても諦めてもらう。
金は返す必要はない。
市販ソフトでもそんな対応だ。
だいたい、そんな糞ハードを使ってるのは、普段DirectXが必要なアプリやゲームをやらない人だからな。
良い顧客じゃないんだよ。世間並み以上にかまうことはない。
0274名前は開発中のものです。
2006/03/16(木) 08:10:42ID:AEYHjzRG以上
0275名前は開発中のものです。
2006/03/16(木) 11:42:52ID:VRBH7u62あるある。ぶっちゃけPCの知識が無い・金かけない人にかまいたくない
0276名前は開発中のものです。
2006/03/17(金) 01:47:48ID:XfX24j9b頂点フォーマットのFVFはXファイルには入っていないのでしょうか?
0277名前は開発中のものです。
2006/03/17(金) 01:55:37ID:TVzjCWnz0278名前は開発中のものです。
2006/03/17(金) 02:27:57ID:XfX24j9b頂点フォーマットが違うと描画がされないからです。
0279名前は開発中のものです。
2006/03/17(金) 07:36:23ID:TVzjCWnzフォーマットが違うから描画されないというのはあり得ないし、
フォーマットはファイル中のデータの構成から、
無駄が出ないように最適なものを判断すればいいだけ。
0280名前は開発中のものです。
2006/03/17(金) 12:57:22ID:sfhHBL/Wいわゆるセグメントバッファリング?
なら大前提として”同じ頂点フォーマットのファイルしか纏められない”
ボーンの有無程度ならウェイトに0入れときゃいいだけだが。
0281名前は開発中のものです。
2006/03/17(金) 13:17:45ID:3Zb99o+Q俺はDirectXのバージョンがサマー2004で止まってるから、変わってたらスマソ。
0282名前は開発中のものです。
2006/03/17(金) 13:53:49ID:3Zb99o+Qつかそもそも頂点フォーマットのFVFは、
Xファイルの最初のテンプレート見ればわかるんじゃね?
GetFVFで読めば良いし
0283名前は開発中のものです。
2006/03/18(土) 22:53:11ID:4kSs+7jLオブジェクト(モデル)に対してグレアとかを使えるようにしたいんですが
複数のオブジェクトに使おうとした時にテクスチャにモデルかいてそのうえから
テクスチャはっつけてみたいなことをしてたらパフォーマンスがグレアを使用する
モデルの数分落ちるんですがそこらへんで何か対策やいい組み方ありませんでしょうか?
0284名前は開発中のものです。
2006/03/20(月) 13:35:20ID:GkcGeWMoあんまりオブジェクトが出るようなものにはオススメできないなぁ。
レンダリングターゲットのテクスチャをARGB8888にしてアルファ値に
HDR用の輝度突っ込むようにしてポストエフェクトで一括でやる方がいいかも。
0285名前は開発中のものです。
2006/03/21(火) 22:29:10ID:SgGXyrLHそれとその反映のさせ方なんですがどうすればいいでしょうか?
0286名前は開発中のものです。
2006/03/22(水) 14:28:57ID:2p4jb7V0A.シェーダーでどうぞ。
0287名前は開発中のものです。
2006/03/25(土) 12:46:31ID:Ci8auZQo32BitのBITMAPにアルファ仕込んでおくとD3DXCreateTextureFromFileで
読んだときにちゃんとA8R8G8Bとして読んでくれるのね
知らなかったからちょっと得した気分
*/
0288名前は開発中のものです。
2006/03/27(月) 12:20:17ID:ZtUbJGD5どっちにしろ対応してるツールを見たことないけど。
0289名前は開発中のものです。
2006/03/27(月) 18:14:18ID:x0hCEx5H>32BitのBMPも一応仕様上ではアリなんだっけ・・?
当然定義されてる。
ただ、VC4のヘルプだったかもしれんが、32bitのBI_RGBなBITMAPの
最上位8bitはゼロじゃなきゃいけないような事が書いてあった記憶が…(あやふや)
そもそもBITMAPINFOHEADER構造体にアルファ情報定義するメンバなんて
無いんだけどな。
>どっちにしろ対応してるツールを見たことないけど。
グラフィック・ペイントツールでは見たこと無いけど、DirectX SDK付属の
DxTex.exeは対応してる。んで何故かアルファ情報も読んでくれる。
普通の32BitBitmapを読めばX8R8G8B8として扱うけど、アルファ情報を入れて
おくと何故か自動的にA8R8G8B8として扱ってくれるのよね。
0290名前は開発中のものです。
2006/03/27(月) 21:15:45ID:9C+qhWwwシュミレーションRPGみたいにキャラ選択して移動範囲を半透明とかで表示
させたいのですが正方形の場所はその上にテクスチャを貼り付けるだけでい
いですが正方形じゃない場合にその場所のXファイルに合わせてテクスチャを
張りたいのですがどんな方法がありますでしょうか?どなたか教えて頂ければ
幸いです。
0291名前は開発中のものです。
2006/03/27(月) 23:26:21ID:IKmGsnvB/: . : . : . : . : . : . : .,>‐'.、 ヽ
__/: . : . : . : . : . : . : .7.: . : .}: . ゙,
/: ィハヘノレ^l: . ト 、/ . : . ハ: . : .',
//l. lハ イ ./: . : /.: : . : . | お願い!もうやめて・・!
: /ヘ ' ,リ .li : . /., -、 . : l >>290は悪くないの!全部私が悪いの!
゙,\__ '' .l! : .バ.〈;: } . ,'
. iー、' `ー=-'l!: .| ノ./: /
l:: , ゙ ̄`ぅ。: .| / ̄`ヽ、
ヽ、、__ - 、:::;;l.:.l l ヽ、
`7ー-, イ`l:ハ:ヾ、._ , f:. `、
0292名前は開発中のものです。
2006/03/27(月) 23:50:19ID:F8HoZfQvただの半透明なら、シャドウボリュームでいいわね。
ユーザ環境にステンシルバッファを要求するけど。
模様とかを投影するのは難しいかしらね。
0293名前は開発中のものです。
2006/03/29(水) 01:44:32ID:ugVUYxjd640×480の画面に32×32の画像をしきつめようとすると、
右端と下端がきれいにそろわず、ちょっとはみだしたりしまいます。
これって例えば何が原因で起こるのでしょうか。
0294名前は開発中のものです。
2006/03/29(水) 02:13:13ID:hXre991V×:0〜32,32〜64,64〜…〜416,416〜480
○:0〜31,32〜63,64〜…〜415,416〜479
だとしたら、DirectX以前の問題。
0295名前は開発中のものです。
2006/03/29(水) 04:14:28ID:TEkrXpdtAdjustWindowRectExでサイズ測って作ってないとか・・・
クライアント領域が640X480で無いかもってことな。
0296名前は開発中のものです。
2006/03/29(水) 06:40:59ID:Yhbgqq/FSetLengthしてSetRepeats(DMUS_SEG_REPEAT_INFINITE)にして
SetLoopPointsでループ開始点と終了点を設定して特定範囲のみループ演奏させたいんですが、
思いっきり全曲長最初から最後まで再生しやがります。
一応エラーは返ってきて無いですし、どうなってるんでしょう?
0297名前は開発中のものです。
2006/03/29(水) 16:02:01ID:BOrtwrBd0299名前は開発中のものです。
2006/03/32(土) 14:07:39ID:9NXR6tGO自分もその辺迷ったよ。
その辺の機能はmidiにしか効果がないっぽい。
どうしてもwaveファイルの特定範囲ループを
DirectMusicで実現するなら
自前でIStream、IDirectMusicGetLoaderあたりを実装したクラスを書かないといけない。
参考
http://www.microsoft.com/japan/msdn/directx/techart/dmloading.asp
DirectMusic、DirectSound両方で
特定範囲ループ実装してみたが
DirectSoundの方が楽。
素直にDirectSoundを使うのが吉です。
0300名前は開発中のものです。
2006/04/08(土) 21:15:17ID:Hm+cVekeXファイルで読み込んだオブジェクトを半透明にしたいのですが何か良い方法は在りませんか?
■ このスレッドは過去ログ倉庫に格納されています