DirectX総合スレ (Part4)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/11/26(土) 01:58:58ID:RjcSZKi5ゲーム製作技術スレに戻ってきました。
DirectXについて、にいさま達がマターリと
技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。
ちなみに、言語はC++がメイン。
C# / VB.NET 使いは、専用スレの方が話がスムーズに進むと思われ。
0753名前は開発中のものです。
2006/07/30(日) 23:41:33ID:B6b1Evbn0754名前は開発中のものです。
2006/07/31(月) 14:56:54ID:PIY3CMrsDirectXとはあまり関係ないですが
3Dゲームの遠景ってどうやっていますでしょうか?
0755名前は開発中のものです。
2006/07/31(月) 15:11:45ID:U9Uph6nZ立体感が必要な部分(地形や巨大なオブジェクト)はLOD
茂みや木々はポリゴン落としきった後はビルボードに切り替えてる
0756名前は開発中のものです。
2006/07/31(月) 22:55:31ID:LGUAOzh2実際のカメラ視点で合成する手法使ってて感心した。
0757名前は開発中のものです。
2006/08/01(火) 00:10:00ID:0951u8vyほとんどのFPSがそうだけど?
0758名前は開発中のものです。
2006/08/01(火) 00:47:36ID:7anXmdx4レベルエディットの手法じゃないのか
0759名前は開発中のものです。
2006/08/01(火) 00:55:48ID:kJd2hBqAどうしてもゆがんでしまう
0760名前は開発中のものです。
2006/08/01(火) 01:57:00ID:Xih0MczD0761名前は開発中のものです。
2006/08/02(水) 17:50:10ID:D7LiQ5gD・LoadObjectFromFileでSMF(或いはsgp)読み込み
・IDirectMusicSegment8_DownloadにIDirectMusicPerformance8とセグメントのポインタを渡す
・PlaySegmentExで再生
上記のような事が出来ました
カスタムDLSを使いたいのですが、必要な手順が分かりません
GUID_ConnectToDLSCollectionやらGUID_Downloadやらかとは思うのですが……
なんかLoadObjectFromFileでdlsも読めるっぽいし、ワケが分からなくなりました
0762名前は開発中のものです。
2006/08/05(土) 13:31:09ID:Z7wxi6GO例えば画像の中から48×48を表示する時、右とボトムはそれぞれ左+47、トップ+47だと思ったのですが、
ttp://www.plustarnet.com/aspil/Programming/の2D編、「画像ファイルの読み込み」の下のほうで、
// テクスチャの範囲を指定する
m_Rect.left = 0;
m_Rect.top = 0;
m_Rect.right = 48;
m_Rect.bottom = 32;
こんな感じになってます。
でも実行してみるとちゃんとなってて訳がわかりません
実際に描画する時の
// 座標変換してから、スプライト描画
g_pSprite->SetTransform(&m_Matrix);
g_pSprite->Draw(m_Texture, NULL, NULL, NULL, 0xffffffff);
が何かしてるってことでしょうか?
0763名前は開発中のものです。
2006/08/05(土) 14:48:03ID:ykLNmQXz>右とボトムはそれぞれ左+47、トップ+47
という前提自体が間違いで、そこは+48、+8で正解。
納得いかなければ、「左上と右下を指定している」ことを強く意識すること。
範囲を (0, 0)-(1, 1) で指定したときに書かれるのは1ピクセル平方。
範囲を (0, 0)-(0, 0) で指定したときには、通常何も書かれない。
0764名前は開発中のものです。
2006/08/05(土) 16:05:58ID:Z7wxi6GO早い返答ありがとうございます。
それぞれの指定はドットじゃなくて
座標的な位置を指定してるということがわかりました
0765名前は開発中のものです。
2006/08/05(土) 16:59:51ID:ykLNmQXz興味があるなら、DirectXの描画のラスタライズルールを調べてみると一層理解が深まるよ。
0766名前は開発中のものです。
2006/08/05(土) 19:18:40ID:THTGPtghDirectXとC++でゲームを開発しているのですが質問がございます。
表示を320×240に変えて、フルスクリーンにしたところ
縮小、ウインドウモードに変えると強制終了になってしまいます。
当方、 DirectX超初心者です、ご教授お願いいたします。
ttp://gamdev.org/up/img/6944.lzh
0767名前は開発中のものです。
2006/08/05(土) 20:56:41ID:r/4Byujrデバイスロストしてるだけじゃね?
Presentの返値をチェックして、失敗していたらデバイスをResetしてみたら?
0768名前は開発中のものです。
2006/08/05(土) 23:49:28ID:TcBxlLdTこれどうにかならないの?
小人を作ったつもりが巨人にorz
0769名前は開発中のものです。
2006/08/06(日) 00:04:52ID:Ia4LrW4J0770名前は開発中のものです。
2006/08/06(日) 00:07:12ID:bS6z6hhk0771名前は開発中のものです。
2006/08/06(日) 01:10:12ID:sGVOz3nFそのxファイルを作ったモデラーで縮小することはできないのかな?
0772名前は開発中のものです。
2006/08/06(日) 03:24:28ID:oFPRg3ro0773名前は開発中のものです。
2006/08/06(日) 23:42:59ID:0Xnv++woさっそく検索して調べてみました。
原因らしいのは分かったのですが
実はdirectXはいじった経験がないのです
そこでこのまま先延ばしにして
フルスクリーンのまま製作を続行してみようと
思うのですが、他のビデオカードとの互換性等
何らかの影響が考慮されるでしょうか?
超超初心者で申し訳ございません。
よろしくお願いいたします
0774名前は開発中のものです。
2006/08/07(月) 02:06:22ID:j1MuaB+2他に目的があるなら、いっそ放置しちまうのも手といえば手。
フルスクリーンは、本来ならビデオカードが対応している画面モードをリストアップして
その中から解像度やピクセルフォーマットを選ばなければならないので、
中途半端な対応だと互換性の問題は起きる。
ウインドウモードの場合、DirectXがフォーマット変換&ウインドウ上へのコピー処理をはさむので
処理の負荷は若干増えるし、厳密な意味での垂直同期待ちとかは機能しなくなるが、
フォーマット類については気にする必要がなくなる。
真面目にやりたければ、DXUTを頑張ってばらすしかない。
自前で実装するにしても、大体アレと同じ形に収まることになる。
見て面倒だと思うなら、後回しにしちまえ。
0775名前は開発中のものです。
2006/08/07(月) 11:12:30ID:NdgvdeNiってのが同じことしてるのに出るときと出ないときがあるのですが・・・
放置しちゃまずいですよね・・・やっぱり・・・
0776名前は開発中のものです。
2006/08/08(火) 01:45:51ID:9jL9aZEd呼び出し履歴とかから追っかけられねえかい?
0777名前は開発中のものです。
2006/08/08(火) 09:58:50ID:rm1wVx8R教えてください。directx8の頃はconv3dsというツールが付いてきましたが
directx9になってからはどこにあるのか解りません。
0778名前は開発中のものです。
2006/08/08(火) 10:09:23ID:cvhXtgnv>directx8の頃はconv3dsというツールが付いてきましたが
そのdirectx8のconv3dsを使えば良いんちゃう?
directx9になって古いxファイルが使えなくなるほどの仕様変更があったとは聞いてないよ。
0779名前は開発中のものです。
2006/08/08(火) 10:36:02ID:rm1wVx8R聞いても、conv3dsをダウンロードすることはできなくなっているとのこと
「何か変わりのものはないか」とメールしても返事がきません。どうしたら
よいか教えてください。
0780名前は開発中のものです。
2006/08/08(火) 10:41:06ID:/iuTQ83BDirectXのSDKにXファイル出力用のプラグインが入っていたはずだが。
0781名前は開発中のものです。
2006/08/09(水) 09:17:36ID:5DMAv6Rphttp://www.andytather.co.uk/Panda/directxmax.aspx
0782名前は開発中のものです。
2006/08/09(水) 19:35:41ID:Iv+vmklqボールは円柱と球のどちらがいいですか?
0783名前は開発中のものです。
2006/08/09(水) 20:36:24ID:lyW67vVB0784名前は開発中のものです。
2006/08/09(水) 20:37:43ID:IzpHv+T8つまり風のリグレット
0785名前は開発中のものです。
2006/08/09(水) 23:45:16ID:UMYhJemYトリプルバッファで深度バッファを使いまわすのとそれぞれのバッファごとに
作成した場合、どういった違いがあるのでしょうか?
深度バッファの概念を知りたいです。
0786名前は開発中のものです。
2006/08/10(木) 00:33:26ID:6ZCWMT4rク
0787名前は開発中のものです。
2006/08/10(木) 00:47:19ID:4sAzo1ueレ
0788名前は開発中のものです。
2006/08/10(木) 01:04:32ID:8mTAJvo5の
0789名前は開発中のものです。
2006/08/10(木) 01:38:44ID:zyeJZ9Gz深度バッファのことは一度忘れて、ダブル以上のバッファリングに何の効果があるかを考えるんだ。
ダブルバッファは、1枚は描画用に画面に出しっぱなしにしておき、その隙にもう一枚の裏バッファに
必死こいて絵を書き、書きあがった時点で見せ用バッファと書き用バッファを入れ替える仕掛け。
なぜこうするのかと言うと、必死こいて書いてる最中の画面を表示してしまっては
描画中の不完全な絵がユーザーの目にさらされてしまうことになるから。
で、一方の深度バッファ。これは必死こいて絵を書く際の奥行き情報を控えるために使われる
一時作業用のバッファであって、通常この中に書かれた結果がユーザーの目に触れることはない。
なので、描画用には見せ&書きで2枚のバッファが必要だけど、深度バッファは見せ&書きバッファの
入れ替えのときに中身をクリアして使い回せばいいだけなので、通常1枚持てば十分という勘定になる。
それぞれのバッファに持つ必要は無いわけだ。
ただ、これも深度バッファの内容を描画に反映させようとすると話が異なってくる。
一度完成した深度情報を元に、いろんな追加エフェクトを作成する(たとえば遠景をぼかす等)なら、
これを別途控えておくという選択肢も出てくる。
こんな感じでいいかな?
0790名前は開発中のものです。
2006/08/10(木) 09:16:16ID:LR0qYUr0裏画面描画するだけならダブルで良いような気が・・・。
描画が軽い時に、さらに次の画面も描画しておくって事?
0791名前は開発中のものです。
2006/08/10(木) 11:35:34ID:4rRPAjnc0792名前は開発中のものです。
2006/08/10(木) 12:46:35ID:JZWKqZj71/3イント未満で処理できるならばトリプルのほうが速い
0793名前は開発中のものです。
2006/08/10(木) 21:06:23ID:fZXO6hyP0794名前は開発中のものです。
2006/08/10(木) 23:37:49ID:6ZCWMT4r0795リネー
2006/08/11(金) 11:50:16ID:H8FR+wJU0796名前は開発中のものです。
2006/08/11(金) 11:50:31ID:YxjqBpJS0797名前は開発中のものです。
2006/08/11(金) 20:34:39ID:S7ZlddmhZバッファがどうしても有効になりません。
デバイス作成のパラメータは以下で、
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
d3dpp.BackBufferFormat = dmode.Format;
d3dpp.BackBufferCount = 1;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
作成後、
_pd3dDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
としています。Capsを確認して、このパラメータが受理されることは確認したのですが。。
どなたか原因のわかる方がいましたらどうかお願いします。
0798名前は開発中のものです。
2006/08/11(金) 21:00:03ID:yt26BlVE0799796
2006/08/11(金) 22:20:49ID:S7Zlddmhありがとうございます!試してみたところ、
どうやら、描画している物体が同じ深度として扱われているようで、
D3DCMP_EQUAL に設定するとすべて表示されて、D3DCMP_NOTEQUAL
に設定すると何も表示されませんでした。
深度って、勝手に計算してくれるものと思っていましたが。。
0800名前は開発中のものです。
2006/08/12(土) 01:59:25ID:/3hPw/1Mパラメータ晒してみ?
0801796
2006/08/12(土) 08:11:43ID:eb+dualVD3DXMatrixPerspectiveFovLH(&m_matProj, D3DX_PI/4, 1.0f, 0.0f, 1.0f);
となっていたのを、
D3DXMatrixPerspectiveFovLH(&m_matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f);
としたらうまくいきました。本当にいろいろありがとうございます!
僕もはやく勉強して、答える側になりたい!
0802名前は開発中のものです。
2006/08/13(日) 15:10:23ID:vOpq6b3Zテクスチャを用いない描画が混在しているのですが、テクスチャを用いずに描画を行う
処理だけがなぜか重くなります。ここでは、SetTexture(0, NULL); でテクスチャを解除して
シェーダ D3DFVF_XYZRHW|D3DFVF_DIFFUSE により描画しています。ためしに、
SetTexture(0, NULL); は残したままシェーダ D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1
で UV すべて (0.0f, 0.0f) を指定して描画してみたところ、同じ結果でかなり速くなりました。
QueryPerformanceFrequency で速度を調べたので間違いないと思います。
テクスチャなしの方が遅くなるというのはおかしい気がしますが、なぜでしょうか。
さらに、フルスクリーンモードの方が差が顕著に現れます。
OS XP、GeForce4 MX 440 を使っています。
どなたか原因等に心当たりがありましたらご教授願えますでしょうか。
0803名前は開発中のものです。
2006/08/13(日) 16:27:14ID:3fXpzuBE0804名前は開発中のものです。
2006/08/13(日) 18:53:06ID:whadz2st0805名前は開発中のものです。
2006/08/13(日) 19:17:32ID:4eBcf9Q40806802
2006/08/13(日) 21:59:04ID:vOpq6b3Z別のマシンでは Intel のオンボードでも普通に動きました。
多少古いってもこんな性能とは思いませんでした…。
スレ汚してすまん
0807名前は開発中のものです。
2006/08/15(火) 19:48:18ID:5Yi4mkIW1フレーム目はなぜかテクスチャの設定がおこなわれず2フレーム目からテクスチャの
設定が反映されました。シェーダ使うとそういった現象あるんでしょうか?
0808名前は開発中のものです。
2006/08/15(火) 19:52:54ID:tle0FMbA0809名前は開発中のものです。
2006/08/16(水) 02:31:13ID:8mVawugJ0810名前は開発中のものです。
2006/08/16(水) 09:50:37ID:7xEd8Mpf0811名前は開発中のものです。
2006/08/16(水) 18:40:13ID:Gj5XmaVxsdkをダウンし、インストールしてincludeフォルダをvc8のinclude設定して
libフォルダをvc8のlibに設定しただけでは使えないんですか?
0812名前は開発中のものです。
2006/08/16(水) 19:38:31ID:apxX0PLW開発環境の設定はそれだけでOK
0813 ◆zSSzMiD.Fo
2006/08/16(水) 20:59:41ID:aPX6ha4f0814名前は開発中のものです。
2006/08/16(水) 21:16:12ID:Gj5XmaVxエラーが大量に出るのはdllとかちゃんとしないといけないんですかね?
0815名前は開発中のものです。
2006/08/16(水) 21:21:12ID:apxX0PLW実行ファイルと同じディレクトリには必要なDLLをつっこむ必要があるが
具体的にどんなエラーが出るのか書いてくれないと分からん
0816名前は開発中のものです。
2006/08/16(水) 21:32:50ID:Gj5XmaVxこんなかんじです
ttp://www.kurokichi.net/inside/up/src/up0858.jpg
0817名前は開発中のものです。
2006/08/16(水) 21:36:27ID:AehsAfoZ0818名前は開発中のものです。
2006/08/16(水) 21:36:36ID:apxX0PLW単純にヘッダの読み込みに失敗してるだけのように見えるが…
エラーの中に「Ogre.hが見つかりませんでした」のようなものは出てないか?
0819名前は開発中のものです。
2006/08/16(水) 21:52:12ID:MIi9u1h/2005に突っ込んでるわけだから、書き直しは必要そうだよな。
宣言している場所を検索かけて調べて、
宣言が先行できるように書き直すしかなさげ。
0820名前は開発中のものです。
2006/08/16(水) 22:12:58ID:Gj5XmaVxないです、100行超えたんで終了しますとしか
>>819
2005用ですよ
ttp://www.ogre3d.org/index.php?option=com_remository&Itemid=57&func=fileinfo&filecatid=42&parent=category
0821名前は開発中のものです。
2006/08/16(水) 22:25:19ID:Gj5XmaVxttp://www.kurokichi.net/inside/up/src/up0863.jpg
ttp://www.kurokichi.net/inside/up/src/up0864.jpg
0822名前は開発中のものです。
2006/08/16(水) 22:35:27ID:MVYXzerW話が特殊すぎるし公式BBS言ったほうがよくないか
0823名前は開発中のものです。
2006/08/16(水) 22:57:33ID:hBfKBKukSamples_vc8.slnをビルドしてみたがエラーも出ないし実行もできた
ワーニングはいくつか出てる
設定はincludeとlibのパス以外触ってない
環境はVC++express、DirectX SDK2004Oct、Microsoft Platform SDK
0824名前は開発中のものです。
2006/08/16(水) 23:07:55ID:0R9/c9Np公式フォーラムでも何回か全く同じ質問を見たことがあるような…
ttp://www.ogre3d.org/phpBB2/viewtopic.php?t=23106&start=0&postdays=0&postorder=asc&highlight=
でも回答がないんだよな。
STLportをいったん外して標準のSTLに戻してみたら?
0825名前は開発中のものです。
2006/08/16(水) 23:32:55ID:P1MXvUJI一応ビルドできたわよ。(VC++2005Express+Platform SDK)
気づいたとこだけ書いとくわね。
・サンプルの各プロジェクトは ReferenceAppLayer という
サブライブラリを利用してるから、流用するならこれをビルドして、
include,libパスを通してリンクする。
ライブラリプロジェクト C:\OgreSDK\samples\refapp\scripts\ReferenceAppLayer_vc8.vcproj
インクルードパス C:\OgreSDK\samples\refapp\include
ライブラリパス C:\OgreSDK\samples\lib\debug
リンク ReferenceAppLayer.lib (OgreMain_d.libも)
・文字セットをマルチバイト文字セットにする。
・デバッグは C:\OgreSDK\bin\debug を作業ディレクトリにしないとうまく動かない。
0826名前は開発中のものです。
2006/08/17(木) 06:18:41ID:WYymsySAうわ・・・stlport下のほうにしたらできた
0827名前は開発中のものです。
2006/08/17(木) 06:46:06ID:sb2zu4ho調べてみたらなんとかなりそうです。thx!
0828名前は開発中のものです。
2006/08/17(木) 17:32:28ID:DHkW3eSEキーが押されたか離されたか分かる?
0829名前は開発中のものです。
2006/08/18(金) 04:32:11ID:gdkYz1muわからん
自前で前回のキー状態を取っておくか
GetBufferedDataしる
0830名前は開発中のものです。
2006/08/18(金) 08:46:25ID:RfMw83Dv0831名前は開発中のものです。
2006/08/18(金) 16:26:49ID:LJmttCzI0832名前は開発中のものです。
2006/08/18(金) 16:33:13ID:2vFjQPe30833名前は開発中のものです。
2006/08/18(金) 16:52:03ID:LJmttCzI0834名前は開発中のものです。
2006/08/18(金) 17:28:21ID:7TzL2I2R「手動」ってw
お前プログラマだろ?
違うのか?
0835名前は開発中のものです。
2006/08/18(金) 19:22:32ID:LVwpbsbn0836名前は開発中のものです。
2006/08/18(金) 20:07:00ID:TdY2AdVa0837名前は開発中のものです。
2006/08/18(金) 20:09:32ID:TdY2AdVattp://clks.sakura.ne.jp/csg/gt002.html
0838名前は開発中のものです。
2006/08/18(金) 23:03:44ID:LJmttCzI今はもっと便利な機能ができてるのかなと。
0839名前は開発中のものです。
2006/08/18(金) 23:06:07ID:OOf8Pyjv仕事が終わって定時に帰れるのに残業代がつく機能が欲しいな。
0840名前は開発中のものです。
2006/08/18(金) 23:21:33ID:+8vnGZ2uDXUTにはあるけどDXUTは(ry
0841名前は開発中のものです。
2006/08/19(土) 08:02:47ID:NrNZREyo0842名前は開発中のものです。
2006/08/19(土) 08:32:42ID:Tg9yyderわかりやすく解説してあるサイトとか見つからないけど
0843名前は開発中のものです。
2006/08/19(土) 09:06:36ID:berRaXYmXNAについて詳しく教えてくれ。
わかりやすく解説してあるサイトとかあったら教えてくれ。
俺は調べる気なんて全くないからそのへんヨロシク。
さっさと教えろクズ野郎。
0844名前は開発中のものです。
2006/08/19(土) 12:44:32ID:W2KSnKqO0845名前は開発中のものです。
2006/08/19(土) 14:11:13ID:WfZnPINb「太った豚より(ry」って言葉もあるが
0846名前は開発中のものです。
2006/08/19(土) 16:26:27ID:iyWXwWdLほれ
ttp://msdn.microsoft.com/directx/xna/
分かり易く解説してるぞ。英語で。
0847名前は開発中のものです。
2006/08/19(土) 19:10:57ID:/EsN1VOcウインドウモード
0848名前は開発中のものです。
2006/08/19(土) 19:53:02ID:37KpmdJ10849名前は開発中のものです。
2006/08/19(土) 19:59:18ID:uSIG1YiQ0850名前は開発中のものです。
2006/08/19(土) 20:57:57ID:MEXb7Ck50851名前は開発中のものです。
2006/08/21(月) 01:50:59ID:FQoJph8b0852名前は開発中のものです。
2006/08/21(月) 06:29:40ID:yzBDNZf/■ このスレッドは過去ログ倉庫に格納されています