DirectX総合スレ (Part4)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/11/26(土) 01:58:58ID:RjcSZKi5ゲーム製作技術スレに戻ってきました。
DirectXについて、にいさま達がマターリと
技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。
ちなみに、言語はC++がメイン。
C# / VB.NET 使いは、専用スレの方が話がスムーズに進むと思われ。
0639名前は開発中のものです。
2006/07/13(木) 20:08:24ID:1ACraXvk0640名前は開発中のものです。
2006/07/13(木) 21:41:50ID:lClAfdVw詳しく
0641名前は開発中のものです。
2006/07/13(木) 23:06:34ID:i69EfZ9e多数のビルボードを表示するような重いゲームでは、
それらの描画にかかるGPUの負荷だけでなく、
管理にかかるCPUの負担も大きくなります。
ゲームプログラミングにおける速度信仰はそう一般化して否定できるほど
バカバカしいものではないと思います。
0642名前は開発中のものです。
2006/07/13(木) 23:16:20ID:YglXpl8Rいい加減他のゲームも作れよw
0643名前は開発中のものです。
2006/07/14(金) 00:14:38ID:KD0L/FL5多数のビルボードって何十万枚も描画するつもりなのか?
レンダリングのコストに比べればはっきり言って馬鹿にして無視できるコストにしかならない。
0644名前は開発中のものです。
2006/07/14(金) 00:45:10ID:4uA7ea59ビルボードなんて毎フレームバッファ再生成してDrawPrimitiveは数コールしかしないだろうから関係ないが。
0645名前は開発中のものです。
2006/07/14(金) 08:39:01ID:ZHq6gtdp新しいSDKだと変わってるのかな
0646名前は開発中のものです。
2006/07/14(金) 13:30:34ID:lwA2DsaL誰が管理してるんだかわからなくなってる機能とか
ごろごろしてるよね。
お前らどうやって勉強してやがるんですか。
0647名前は開発中のものです。
2006/07/14(金) 19:42:10ID:u+9tHsIVまーがんばって
0648名前は開発中のものです。
2006/07/14(金) 22:14:54ID:8AAUZ/nwエフェクトで贅沢したら普通に何万は行くぞ
0649名前は開発中のものです。
2006/07/14(金) 23:00:01ID:KD0L/FL5アホにも程がある。
そもそも贅沢しようというエフェクトをビルボードだけでやるという前提が無能の極み。
0650名前は開発中のものです。
2006/07/14(金) 23:39:13ID:bx4Ze0q1少し頭冷やせや。
0651名前は開発中のものです。
2006/07/15(土) 00:13:42ID:gFpTGcdy線形負荷のロジックって時点で釣り確定だな。
衝突判定の類でも持ち出してくれてれば、まだ食いつき甲斐があるものを。
0652名前は開発中のものです。
2006/07/15(土) 00:18:23ID:O6G7FheZ速度も重要になりうる、ということは確かなわけだな。
たくさんビルボード使う場合そのものを回避することが
できるか否かはまた別の話として。
0653名前は開発中のものです。
2006/07/15(土) 00:47:33ID:zHQ2gbVz0654名前は開発中のものです。
2006/07/15(土) 00:54:28ID:eKTW3dUk0655名前は開発中のものです。
2006/07/15(土) 02:28:56ID:TR3vL5Wt>たくさんビルボード使う場合には、描画以外の部分の速度も重要になりうる、ということは確かなわけだな。
なにそれ。
数字だしてよ。
0656名前は開発中のものです。
2006/07/15(土) 02:37:22ID:yaYd/ty8>できるか否かはまた別の話として。
この考えが間違っているんだよ。
誤差程度にしか影響のない部分を直すより、ビルボードの数を減らす事を考えた方が速度的に圧倒的に優位。
それを別の話にしようとする時点で、問題解決能力の欠如が如実に表れている。
0657名前は開発中のものです。
2006/07/15(土) 03:02:03ID:O6G7FheZビルボードの管理で処理速度が問題になるのはどんくらいの
オーダーでの話なのかとかその処理時間とか、ちゃんと計算
してみせろ、到底問題になるとは思えんぞ、という話だな。
>>656
引用部は、単に話が二つあるってだけの意味なんだよ。
> 誤差程度にしか影響のない
かどうかが問題となってるところ(>643と>648)なんで、
その話を先にきっちり済ませたほうがいいと思うよ。
片付けないまま話をどんどん転がしてくのは悪い癖だと思う。
レッテル貼りより、「実際問題になるのかどうか数字だしてみそ」
とか、簡単な指摘をしてやった方が健全な話し合いだと思うなあ。
話が早く済むし。
0658名前は開発中のものです。
2006/07/15(土) 06:16:53ID:XZjHnVha0659名前は開発中のものです。
2006/07/15(土) 08:06:53ID:TR3vL5Wtなぁ。
どう考えたって関数呼び出しのコストなんてウンコみたいなもんの削減に力入れてるのなんて
馬鹿にしかみえないもんなぁ。
しかも、たった数万でこの騒ぎw
>>657←ウンコはお前だし、はじめに言い出したのもお前なんだから、お前が数字出して問題あるコストである証明をしてみせろよ。
でなけりゃ>>657は嘘吐き&ホラ吹き野郎決定。
0661名前は開発中のものです。
2006/07/15(土) 08:13:05ID:RkdA+c54実験体作るのいやだから、どんな種類がいいか人に意見聞いといて
自分と意見違うからごねるって??なら、最初から自分の信じた道を進めばいいじゃん。
誰がどう見ても効率の悪い話なのに、それしか信じられない人なんてほっとけばいいじゃん。
プログラム書けても、中身小学生ですか?
と、フルスクリーン切り替えウィンドウが出ただけで大喜びの暇人が申しております。
0662名前は開発中のものです。
2006/07/15(土) 11:47:56ID:JNRTuJ2nhttp://www.atmarkit.co.jp/fdotnet/directxworld/directxworld01/directxworld01_03.html
シーンがCPU律速なら、これの影響をモロに受けるってだけの話でしょ。
0663名前は開発中のものです。
2006/07/15(土) 11:48:41ID:t8QjCB9bゆとりの賜物
0664名前は開発中のものです。
2006/07/15(土) 12:40:31ID:zHQ2gbVzレッテル貼りがいつでも通用すると思ってるあたりが
0665名前は開発中のものです。
2006/07/15(土) 12:40:51ID:gFpTGcdyいやまあ、サンプルがそう作ってあるのは当然なんだし、そうじゃなきゃサンプルとして困るわけだけど、
全画面化切り替えとデバイスのロスト->復元に、あんなにいっぱいフックかまさなきゃいけないだなんて
思っても見なかったんだ。
これも勉強だと思って真面目に書いたら2日くらい使った。
もうぬるぽ。
0666名前は開発中のものです。
2006/07/15(土) 14:25:00ID:9C81t0A0重いなら減らせばいいって考えは一番低脳。
そんなことは考えるまでもなくわかってる事だし、
ビルボードのエフェクトが重いというなら
何処が実際にボトルネックになっているかをきちんと調べることが大切。
重いからポリゴン減らせばいいとかアホでもできる。
0667名前は開発中のものです。
2006/07/15(土) 16:53:57ID:yaYd/ty8ビルボードに限定していることとい、まともに3Dを扱えていない事が丸分かりになってるな。
0668名前は開発中のものです。
2006/07/15(土) 17:10:48ID:zHQ2gbVzポリゴン数やビルボードの枚数減らせば不自然な状況ができるわな。
昔は爆発とかは一枚の大きなビルボードで表現されていたが、
今は複数枚重ね合わせるのが一般的。
0669名前は開発中のものです。
2006/07/15(土) 17:48:25ID:9C81t0A0フィルレートが足りないなら縮小バッファを使うとか出来るし、
CPUが厳しいなら最適化できる場所があるかどうかまずは調べるだろ。
ビルボードでエフェクト出した>重かった>じゃぁ減らせばいいや
これじゃ進歩がない。
最近のGPUでVSが吊るなんて事はそうそうないしポリゴン数
減らして軽くなるって状況はあまりないとは思うけどね。
0670名前は開発中のものです。
2006/07/15(土) 17:52:56ID:yaYd/ty8馬鹿の一つ覚えは結構だが、UVを適切に設定してまとめて描くだけで、
ビルボードでごちゃごちゃやるより遥かに速度が改善する。
0671名前は開発中のものです。
2006/07/15(土) 18:01:08ID:9C81t0A0普通はデカイ頂点バッファをDYNAMIC|WRITEONLYで作成して
DISCARDロックして一括で転送してからDrawPrimitiveするだろ。
1枚ずつDrawPrimitive呼んでたらあっちゅーまにCPUが吊る。
0672名前は開発中のものです。
2006/07/15(土) 18:01:14ID:zHQ2gbVz0673名前は開発中のものです。
2006/07/15(土) 18:19:58ID:GVyyjTFsえっ?冗談?ネタ?なんで全ての深度を同じに考えるわけ?
0674名前は開発中のものです。
2006/07/15(土) 20:08:08ID:zHQ2gbVz0675名前は開発中のものです。
2006/07/15(土) 20:25:58ID:zHQ2gbVzでもペラペラの板一枚なことにはかわりない
0676名前は開発中のものです。
2006/07/15(土) 20:45:41ID:9C81t0A0ビルボードだから変えられないってのもおかしかろう。
0677名前は開発中のものです。
2006/07/15(土) 21:04:03ID:zHQ2gbVzテクスチャに小爆発を重ね合わせたあと一枚のビルボードとして
表示って話だろ?これで一個一個の小爆発の奥行きの違いを考慮した
描画ができるっていうんなら本気で教えてほしい
0678名前は開発中のものです。
2006/07/15(土) 21:34:31ID:ks/FUbUbも、も、もしかして>>671を理解できてない?そうだよね?
0679名前は開発中のものです。
2006/07/15(土) 21:36:57ID:zHQ2gbVz0680名前は開発中のものです。
2006/07/15(土) 21:51:54ID:O6G7FheZさすがに用途が限られすぎるか。
0681名前は開発中のものです。
2006/07/15(土) 22:27:38ID:Cap5P+JI6秒でレスすんのは無理あるなw
0682名前は開発中のものです。
2006/07/15(土) 22:31:32ID:4ZNOOjZEディスプレイメントマップ使えばできるんじゃないのか?
0683名前は開発中のものです。
2006/07/15(土) 22:56:50ID:9C81t0A0煙とかならかなりそれっぽく見えるよ。
0684名前は開発中のものです。
2006/07/15(土) 23:09:16ID:gFpTGcdy実際に入れてみたら気持ち悪いほど立体感が出て吹いた。
爆発の中心にライトを置いたりすると、とてもいい感じ。
0685名前は開発中のものです。
2006/07/16(日) 08:22:59ID:2CI6paP3いまさらコレ読んでるけどすげーなあw
理屈は分かるけど俺には到底実装できねえ
と言うかマンパワーだな、擬似HDRのところとか
0686名前は開発中のものです。
2006/07/16(日) 12:03:12ID:y8b9fXcQPS2でHDRやったときは高輝度部分をαに仕込んでポストエフェクトで実装してた。
0687名前は開発中のものです。
2006/07/16(日) 17:14:14ID:zTx/driSワンダのはちゃんと明暗順応までやってんのが偉い。
効果的だったかは微妙だと思うけど…。
0689名前は開発中のものです。
2006/07/17(月) 11:38:59ID:wbRi9CMp0690名前は開発中のものです。
2006/07/17(月) 13:31:52ID:Ew1uKIXvと警告がでました。どうすれば消せますか?
0691名前は開発中のものです。
2006/07/17(月) 13:43:01ID:EcSBK9Cg0692名前は開発中のものです。
2006/07/17(月) 21:01:12ID:yqyDWK9YDirectXのAPI使ってます.
テキスト,バイナリファイルの書き出しは可能なのですが,圧縮ファイルの書き出しがうまくいきませぬ.
APIリファレンスによると,
CreateSaveObject(LPCSTR szFileName,DXFILEFORMAT dwFileFormat,LPDIRECTXFILESAVEOBJECT* ppSaveObj)
関数を使用して,第2引数をァイルフォーマットの値を論理和,つまり,テキスト圧縮なら3, バイナリ圧縮なら2を与えているのですが,
通常のテキストファイル,バイナリファイルが書き出されてしまいます.原因がまったくわかりません.
0693名前は開発中のものです。
2006/07/17(月) 21:10:11ID:ypfzWSTBってやってみたら?
0694692
2006/07/17(月) 21:17:10ID:yqyDWK9Yこれでも,無理です.
0695名前は開発中のものです。
2006/07/17(月) 21:19:12ID:QgVf2wxt0696名前は開発中のものです。
2006/07/17(月) 21:19:59ID:v3Jm670I0697名前は開発中のものです。
2006/07/17(月) 21:21:38ID:v3Jm670I0698名前は開発中のものです。
2006/07/17(月) 21:30:28ID:8U+jTiMn0699694
2006/07/17(月) 21:46:15ID:yqyDWK9Yマルチの意味調べました.ほんとうにすんません.
0700sage
2006/07/18(火) 13:26:22ID:UjB+shQk0701699
2006/07/18(火) 18:26:53ID:VaTIewRP0702名前は開発中のものです。
2006/07/19(水) 07:09:04ID:LcYsaovE0703名前は開発中のものです。
2006/07/20(木) 00:02:15ID:GCIK/EH+{
D3DXVECTOR3 vecCoord;
DWORD dwColor;
};
COLOR_POINT ColorPoint[2]=
{
D3DXVECTOR3(-0.5,0.3,0),D3DCOLOR_ARGB(255,255,0,0),
D3DXVECTOR3(0.5,0.2,0),D3DCOLOR_ARGB(255,0,255,0)
};
g_CGraphic.GetD3DDevice()->SetFVF(D3DFVF_XYZ | D3DFVF_DIFFUSE );
g_CGraphic.GetD3DDevice()->DrawPrimitiveUP(D3DPT_LINELIST,1, ColorPoint, sizeof(COLOR_POINT));
で色つきのラインを描画しようとしています。
ですが黒色のラインがでてしまいmす、原因をして何が考えられますでしょうか?
深度バッファとかをしようしていますが特に関係ないですよね。
0704名前は開発中のものです。
2006/07/20(木) 00:12:24ID:mIj150M6とりあえずライティングオフにしてみなさいよ。
0705名前は開発中のものです。
2006/07/20(木) 00:15:10ID:GCIK/EH+0706名前は開発のものです
2006/07/23(日) 16:22:09ID:CcOloUuB「よし次は、当り判定だぁぁ」と思ったのですが、ちと行き詰りました。
頂点バッファに格納されている局所座標の座標値が、ワールド座標へ
座標変換された値は、どうやってとりだすのだぁぁとなってしまいました。
もふかして、頂点バッファから頂点データを取り出し、自前で、
ワールド座標座標変換を行う必要がいるのでしょうか?
お手数ですが、何卒ご教授して頂きたくお願い致します。
0707名前は開発中のものです。
2006/07/23(日) 17:14:48ID:qcAtV1Knメッシュとメッシュで当り判定しようとしてんの?
普通は当り判定用の球(中心と半径)とか箱(縦横高)とかを
モデルとは別に用意、もしくはモデルから算出して、それ同士でヒットチェックを行う。
0708名前は開発中のものです。
2006/07/23(日) 17:34:03ID:C0LZTCVs当たり判定の座標データを局所に変換してやればいい。
局所→ワールドに変換する行列があるはずだ。
それの逆行列を求める関数もある用意されているはずだ。
あとは当たり判定の座標データを、
逆行列を用いてワールド→局所に変換すればいい。
当たり判定で決定される座標データは局所だから、
必要に応じてワールドに変換する。
ベクトルは直には変換できないから、専用の変換をするか、
始点終点を変換してからベクトルを求めるといい。
0709名前は開発のものです
2006/07/23(日) 18:06:47ID:CcOloUuBふむふむ、バウンディングでの当り判定は、別値として持って演算し、判定するのですね。
つぎに、ポリゴン同士の当り判定になった場合は、一方の構成している局所座標から
局所座標への座標変換を考えればいいのですね。
と、なると、
一方の局所座標へ変換を行うのであれば、構成している頂点データ全て座標変換処理が必要になるのですね。
ふむふむ、少し光が見えてきましたぁぁ。(これは、DirectX側で
処理する関数は、ないんでしょうか?)
0710名前は開発中のものです。
2006/07/23(日) 18:09:53ID:qn4GamnK頂点の数は24個だったのですが、これだと1面あたり頂点の数は
4個ということになりますよね。
しかし、三角形のポリゴンで立方体を作ると頂点の数は36個、
1面あたりの頂点の数は6個になりますよね。こうなるように
頂点の情報を取得したいのです。
要は、Xファイルの頂点の情報を三角形のポリゴン単位で取得したいのですが
どのようにすればいいでしょうか?
ご教授お願いします。
0711名前は開発中のものです。
2006/07/23(日) 18:44:31ID:v4e1XUTD0712名前は開発中のものです。
2006/07/23(日) 19:11:32ID:qcAtV1Kn>ポリゴン同士の当り判定になった場合は
そううまくいかねーぞ。
ポリ同士の当り判定はかなり無駄に時間がかかる。
ポリ同士の当り判定だったとしても簡易モデルを用意するんじゃなかろうか?
さらにヒットした後にどんな情報がほしいかでもデータ構造を代える必要が出てくるかもしれんし。
描画に使う頂点データを当り判定でもそのまま使うこと自体稀な話だ。
ちなみにポリ同士の場合、ヒットした後にヒットした箇所を割り出すのはヒットする物にもよるがかなり困難だと思う。
例え、ライブラリにポリ同士の当り判定がサポートされていたとしても俺はゲームでは使ったことが無いな。
それとお前、話に自分用語を入れるくせがあるようだけど、プログラマとして正直うまくねーぞ。
だれにでもわかる言葉で、今、抱えてる問題を表現できる能力がなきゃ未来はねーぞ。
それと「ふむふむ」とか理解できてるのかできないとかよくわからねーけど、正直、不愉快だ。やめろ。普段でもでてきちまうぞ。
0713名前は開発中のものです。
2006/07/23(日) 19:19:41ID:M8az5fIG0714名前は開発中のものです。
2006/07/23(日) 19:35:03ID:ef/2POTi0715名前は開発中のものです。
2006/07/23(日) 19:41:35ID:C0LZTCVs(せいぜい地形やターゲットとベクトルの判定を予想
非常に負荷が高い事が予想される処理だが、
格闘ゲーとか、1フレームに数回とかならなんとかなるんじゃね?
3DSTGなら、そもそもポリゴンvsポリゴンの判定する前に決着つくし。
まぁ俺は「なんとかなる」レベルの処理なんて、なるべくやりたくないし、
幸い今のところやらずにすんでいる。興味はあるけどね。
というわけで、>>709は実装完了したらレポートよろw
>ふむふむ、少し光が見えてきましたぁぁ。(これは、DirectX側で
>処理する関数は、ないんでしょうか?)
どの処理の事はよくわからんが、
逆行列を求めるならD3DXMatrixInverseでいいんじゃないか?
0716名前は開発中のものです。
2006/07/23(日) 19:52:50ID:qcAtV1Kn>格闘ゲーとか
逆に使わないっしょ。
このアクション中は当りがこんだけとか調節したいだろうし、
モデルでやっちゃうとデザイナの見た目でゲーム性が変わっちゃうじゃん。
0717名前は開発中のものです。
2006/07/23(日) 20:42:35ID:U1BBMulG0718名前は開発中のものです。
2006/07/23(日) 20:44:17ID:QopjbEVm0719名前は開発中のものです。
2006/07/23(日) 20:56:43ID:8QgE1lguつヒント:IDirect3DDevice9::ProcessVertices
0720名前は開発のものです
2006/07/24(月) 02:42:00ID:PJKtgYslうんと、うんと、これも、不愉快?うークセかなー
皆様ご教授ありがとう、ございます。
いま、ヒントとしてあげて頂いた事、一生懸命、自分なりに考えております。
皆様、ご教授ありがとうございます。
0721名前は開発中のものです。
2006/07/24(月) 06:40:44ID:d16xzt6Jそういうくだらん態度をとることにメリットを感じるならプログラマには向いてないだろう。
0722名前は開発中のものです。
2006/07/24(月) 07:00:29ID:HhRJ8gLx0723名前は開発中のものです。
2006/07/24(月) 09:22:52ID:pJvGaA7sほえ〜とか言ってんのに何故か爆速コード書けるの
0724名前は開発中のものです。
2006/07/24(月) 12:38:48ID:KOorFwfK0725名前は開発中のものです。
2006/07/24(月) 16:52:40ID:6/sp2cTO0726名前は開発中のものです。
2006/07/25(火) 15:00:37ID:R7gedefg描画しているのですが、やめたほうがいいのでしょうか?
0727名前は開発中のものです。
2006/07/25(火) 15:01:24ID:fTDb+OWiんなこたぁない。
0728名前は開発中のものです。
2006/07/25(火) 15:09:02ID:A/Q9Xvd2俺もそうしてる。
0729名前は開発中のものです。
2006/07/25(火) 16:24:25ID:OW+a7fW5賢い
0730名前は開発中のものです。
2006/07/25(火) 17:35:32ID:h2Hl25Xmアドレスの小さい方のトライアングルから、
って保証されてないよね?
0731名前は開発中のものです。
2006/07/25(火) 17:44:30ID:1B3fSt2Iというかされてないと話にならない。
DrawIndexedPrimitiveはIndexBuffer次第。
0732名前は開発中のものです。
2006/07/25(火) 17:56:37ID:h2Hl25Xmあ、そうなんだ。サンクス。
ちょっと謎が氷解。
0733名前は開発中のものです。
2006/07/25(火) 19:35:00ID:Ss2Eg9DX他のフォーマットからの変換ツールやらエクスポーターとか
用意できてX形式でできることがだいたいできてるなら
むしろそっちのほうが理想。
0734名前は開発中のものです。
2006/07/26(水) 01:42:06ID:84RjleXS方言も多いし、安い3Dソフトだと吐き出すのが大変だったりもするし。
0735726
2006/07/26(水) 18:52:27ID:B6EDph30Xファイルで出来ることを完全に把握していないので理想かは判りませんがこのまま直進します。
また、初心者な質問をすることもあると思いますがその時もよろしくお願いします。
0736名前は開発中のものです。
2006/07/26(水) 19:22:42ID:Md9NNrZw0737名前は開発中のものです。
2006/07/29(土) 10:26:51ID:qeOyte4nぐぐっても
DrawText( ... , "hogehoge", ... , ... , ... , ...);
のように文字を直接与えてるサンプルばかりなので。
私の場合、まずchar c; と定義して c に 「h」という一文字を入れ
DrawText(... , &c, ...);
としても文字化けしてしまうようです。
要するに、第二引数の与え方がよくわからんとです。
どなたかご教授お願いします。
0738名前は開発中のものです。
2006/07/29(土) 10:39:38ID:uV0SFsYLchar str[2];
str[0] = c;
str[1] = '\0';
■ このスレッドは過去ログ倉庫に格納されています