1 名前:デフォルトの名無しさん mailto:ライシンマハケン [2008/07/17(木) 13:50:04 ] 1 名前:デフォルトの名無しさん[sage] 投稿日:2008/04/09(水) 09:55:56 ※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。 【C++】 DirectX初心者質問スレ Part17 【C】 pc11.2ch.net/test/read.cgi/tech/1207702556/
522 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 17:41:30 ] やっぱそういう流れなのかな^^; 日本語ドキュメントさえあればそれでもいいんだけど XAudio2ってどうなってんの?未だ未完成だよね
523 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 17:46:29 ] 3DCGツールにボーンってあるじゃないですか? あれってDirectXの機能じゃないですよね? 自分で実装する領域ですよね? 素人ですまそ。
524 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 17:48:16 ] 補助機能みたいなのはあるにはあるが自分で実装する部分だね
525 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 17:50:46 ] >>524 そうですよね。ありがとうございます。 例えば人体のモデルがあったとしても ボーンを入れるならボーンごとにモデルを分けないと いけないってことですよね。
526 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:14:37 ] >ボーンごとにモデルを分けないと 頂点バッファやインデックスバッファ自体はひとつでもいい。 各頂点にボーンの番号付けて、頂点シェーダでそれ見て変換する。
527 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 15:29:06 ] >>525 別のボーンに限らずモデル描画自体は自分で全部実装する部分なのでボーンだけが特別なわけじゃない。
528 名前:デフォルトの名無しさん [2008/09/27(土) 15:58:52 ] >>459 と同じ状況に陥りました。拡大するとより一層モアレが目立ちます。 デバイスタイプをHALからREFに変えたら画像がはっきりするのですが、 かなり重たくなってしまいます。 REFを使わないでモアレを消す方法を知っている方がいればお願いします。 PCは「Let'Note」で「directx9 」使ってます。
529 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 16:48:55 ] ビデオカードを変える
530 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 16:52:16 ] ビデオカードによって見た目は変わるんだよ 現状でモアレを消すならミップマップを使う、モアレの出ないような絵にする
531 名前:デフォルトの名無しさん [2008/09/27(土) 17:29:54 ] >>529 >>530 ビデオカード変えたらかなり綺麗になりました。 こんなに変わるものなんですね・・・ ミップマップの方も挑戦しようと思います。 アドバイスくれた方ありがとう御座いました m(>_<)m
532 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 20:38:37 ] >>531 デバイスの初期値もあまりあてにはならない。 全てのステートを起動時に初期化するべき。 あとビデオカードのユーティリティで強制的に 異法性フィルタやMSAAとかがONになっている可能性もある。
533 名前:468 mailto:sage [2008/09/28(日) 00:10:55 ] >>471-473 レスが遅れてしまいましてすみません。 貴重なご意見をありがとうございました。 皆さんの意見を参考に、こちらで色々と作業をやってみたいと思います。 原因解消の復旧というか、最後の手段はやはりOSの再セットアップしかなさそうですね。 がっばってみます。
534 名前:504 mailto:sage [2008/09/29(月) 14:06:49 ] >>505-506 レスが遅くなってすまん。 まさにぴったりなタイトルだよ。 マジサンクス。 早速、密林に予約した。
535 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 18:24:39 ] DirectX9勉強して1年になるのですが、関数が多すぎて全部覚えられそうにありません・・・。 皆さんはどんなふうに覚えてますか?
536 名前:デフォルトの名無しさん [2008/09/29(月) 18:26:36 ] 名前とかスコア表示用にアルファベットと数字のビットマップを等間隔で出力するツールってないかな?
537 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 18:29:14 ] >>536 SentSentBampTool ???
538 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 18:39:28 ] >>535 覚えない いつもMSDNを参照してる
539 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 18:53:09 ] >>535 関数を沢山覚える必要はないが、 貴方のやりたい事にもよるけど、例えば マルチパスレンダリングの手順などは覚えていた方がいいと思う。 皆はどう思う?
540 名前:デフォルトの名無しさん [2008/09/29(月) 21:32:07 ] DirectX 初心者です。 DirectX9 を用いて下記のことを やっているのですが、上手く表示が出来なくて困っています。 DrawPrimitiveにてD3DPT_TRIANGLELISTを指定して 4つ三角形をテクスチャを貼り付けてレンダリングしようと しているのですが、D3DRS_ZENABLE=TRUE , D3DRS_ZWRITEENABLE=TRUE とした時にテクスチャがうまく貼り付けられなくて困っています。 D3DRS_ZENABLE=FALSE とすると、うまく貼り付けられるのですが 今度は各三角形を個別に描画したような絵になってしまいます。 D3DRS_ZENABLE=TRUE, D3DRS_ZWRITEENABLE=TRUEでも、D3DRS_ZFUNCに D3DCMP_ALWAYS とするとテクスチャはうまく貼り付けられるのですが、 D3DRS_ZENABLE=FALSE とした場合同様、各三角形を個別に描画した ような絵になってしまいます。 よろしくおねがいします。
541 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:29:13 ] Zの問題とテクスチャの問題は別だ まずZENABLE=FALSEの状態で正しく描画されるようにしよう うまく描けたら、ZENABLE=TRUEの状態でもいけるように直す テクスチャ座標がまずいんでない?
542 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:39:00 ] >>541 ありがとうございます。 こんな感じで定義しています。 #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1 ) typedef struct { FLOAT x, y, z; FLOAT u,v; } CUSTOMVERTEX; CUSTOMVERTEX vertices[] = { { 0.0f, 0.5f, -0.5f, 0.0f, 0.0f }, { 0.0f, 0.5f, 0.5f, 1.0f, 0.0f }, { 0.0f, -0.5f, -0.5f, 0.0f, 1.0f }, { 0.0f, 0.5f, 0.5f, 1.0f, 0.0f }, { 0.0f, -0.5f, 0.5f, 1.0f, 1.0f }, { 0.0f, -0.5f, -0.5f, 0.0f, 1.0f }, { -0.5f, 0.5f, 0.0f, 0.0f, 0.0f }, { 0.5f, 0.5f, 0.0f, 1.0f, 0.0f }, { -0.5f, -0.5f, 0.0f, 0.0f, 1.0f }, { 0.5f, 0.5f, 0.0f, 1.0f, 0.0f }, { 0.5f, -0.5f, 0.0f, 1.0f, 1.0f }, { -0.5f, -0.5f, 0.0f, 0.0f, 1.0f } }; よろしくお願いします。
543 名前:デフォルトの名無しさん [2008/09/29(月) 23:18:37 ] >>541 すみません。 ZENABLE=FALSE の時には正しく描画されているように見えます。 ただ、1つ1つの三角形を個別にレンダリングしたような感じになっ てしまいます。(陰影などが全く反映されません) よろしくお願いします。
544 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 23:47:55 ] それは、テクスチャが貼れてないだけ? ポリゴン自体は描けてる? Zバッファのクリアをミスってるとか
545 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 23:51:19 ] 法線がないようだが、ライティングはオフにしてる?
546 名前:デフォルトの名無しさん [2008/09/29(月) 23:57:28 ] >>544 >>545 ありがとうございます。 はい、テクスチャがうまく描画されないだけみたいです。 Zバッファのクリアはとくにしていないのですが、どうやれば 良いでしょうか? はい、ライティングは無効にしてあります。 SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE ); SetRenderState( D3DRS_LIGHTING, FALSE ); SetRenderState( D3DRS_ZENABLE, TRUE ); SetRenderState( D3DRS_ZFUNC, D3DCMP_LESSEQUAL ); SetRenderState( D3DRS_ZWRITEENABLE, TRUE ); SetRenderState( D3DRS_ALPHATESTENABLE, FALSE ); SetRenderState( D3DRS_SPECULARENABLE, FALSE ); SetRenderState( D3DRS_DITHERENABLE, FALSE ); SetRenderState( D3DRS_FOGENABLE, FALSE ); SetRenderState( D3DRS_SPECULARENABLE, FALSE ); SetRenderState( D3DRS_RANGEFOGENABLE, FALSE ); SetRenderState( D3DRS_STENCILENABLE, FALSE ); よろしくお願いします。
547 名前:デフォルトの名無しさん [2008/09/30(火) 00:10:28 ] >>544 >>545 ありがとうございます 動きました! Zバッファをクリアする必要があることを知りませんでした。。。orz... 本当にありがとうございました。
548 名前:デフォルトの名無しさん [2008/09/30(火) 13:02:49 ] すごく初歩的な質問で恥ずかしいのですが・・・ DirectXで3Dゲームを作る場合、3Dグラフィクス自体は(キャラクターのモーションなど)専用のグラフィックツールで作ると言う形なのでしょうか?
549 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:09:52 ] あ・た・り・ま・え
550 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:44:47 ] 1>gamemain.cpp 1>c:\documents and settings\^^^^^^\デスクトップ\src\test90walking\test1\../../class/classlib.h(70) : fatal error C1083: include ファイルを開けません。'dpaddr.h': No such file or directory これと同じエラーが20個もでてコンパイルできないのですがどう対処すればいいのでしょうか・・・? 3Dリアルタイムアニメーションという書籍のサンプルです。
551 名前:550 mailto:sage [2008/09/30(火) 17:45:25 ] dpaddrというヘッダファイルがどこにもなくて・・・。
552 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:56:38 ] DirectX SDK には以下のコンポーネントは含まれなくなりました。 Direct3D 8 とそれ以前のすべてのバージョン Direct3D RM DirectAnimation DirectMusic DirectInput7 およびそれ以前のすべてのバージョン DirectPlay DirectPlayVoice DirectX 8 時代の HRESULT 変換ルーチン Managed DirectX サンプルとドキュメント これらのコンポーネントをご利用になりたいデベロッパーは、MSDN から入手可能な August 2007 DirectX SDK をダウンロードする必要があります。
553 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:56:48 ] DirectPlay関連のヘッダーだろ DirectX8のSDKにあるんじゃないかな。
554 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 18:09:13 ] ありがとうございます インストールしてみます
555 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 22:17:42 ] BCCでDirectXを使うにはどうすればいいんですか?
556 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 22:20:24 ] SDK入れよう
557 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:45:19 ] >>548 に便乗して質問。 どんなグラフィックソフト使ってる?
558 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 07:37:30 ] 3DS MAX
559 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 08:36:05 ] うらやましい限りだぜ 俺はBlender
560 名前:デフォルトの名無しさん [2008/10/01(水) 09:14:54 ] Mayaってどうなんだろ
561 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 09:39:52 ] この手のツールは無料から始めたほうがよさげ。 使い切れずに放り投げるには高すぎるからなw
562 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 09:50:07 ] 金があったら ZBrush+3DSMAXが最強な希ガス
563 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 10:30:15 ] 俺はMikuMikuDance
564 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 10:35:51 ] MAXの無料版ってもう無いの?
565 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 10:42:11 ] 先日買った書籍に3Dリアルタイムアニメーションというのがあるのですが。 LightWaveで作ったアニメーションをUViewで読み込んでOBJ形式で描きだして DirectXで読み込む方法を使っているのですがUViewは現在販売していないらしく 他のソフトで代用して欲しいと最後に筆者が記述していたのですが 他のソフトってどんな物があるのですか? 何個か教えてもらえたら嬉しいです!
566 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 11:41:51 ] obj形式なら普通にエクスポート出来ると思うが? じゃなくてOBJ形式をXファイルに変換とか? 何れにしてもLightWaveの標準機能で出来た希ガス
567 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 10:46:19 ] ID3DXEffectを使用した場合、シェーダのグローバル変数の共有や、ステートの一括変更などが可能ですが これらの処理をID3DXEffectを使用しないで自前で実装することは可能でしょうか? リファレンスを見ているのですが、変数を共有する方法は全く見当たりませんし ステートブロックを自前で管理したとしても、API呼び出しは回数は減らせないですよね? ID3DXEffectを使用しないという人は結構いると思うのですが、この辺はどうやって解決しているんでしょうか・・・ 宜しくお願いしますm(_ _)m
568 名前:567 mailto:sage [2008/10/02(木) 10:51:24 ] すみません、ステートブロックに関してはIDirect3DStateBlock9が使えることが分かりました これに関しては何とかなりそうです。
569 名前:デフォルトの名無しさん [2008/10/02(木) 11:06:45 ] 俺はMayaかってしまった。マジすごいなこれ。
570 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:05:45 ] ブルジョワジーめ
571 名前:デフォルトの名無しさん [2008/10/02(木) 16:20:40 ] August 2007のDirectX SDKを入れていますが、IA64のライブラリがついていません。 付属してるバージョンのSDKを知ってる方はいませんか?
572 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 16:34:22 ] うああああああ シェーダー定数の共有のさせ方わっかんねーwww 燃えてきたぜ
573 名前:567 mailto:sage [2008/10/02(木) 17:22:54 ] 結局sharedキーワードでうまく共有する方法は分からないが レジスタを直接指定すれば共有できることは分かった 取りあえずこれでいこうと思います。もっといい方法があったら教えていただけると助かりますm(_ _)m
574 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 22:51:57 ] >>573 1、ID3DXEffectPoolオブジェクトを作成(D3DXCreateEffectPoolを使用) 2、sharedをつけた変数を宣言したFXファイルを作成 3、共有したいFXファイル全てに2のFXファイルをインクルード 4、3のFXファイルをコンパイル時、D3DXCreateEffectに1のID3DXEffectPoolオブジェクトを引数で渡す。
575 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 22:59:03 ] ん? ID3DXEffectを使わないで変数の共有をしたいって言ってるのか? そりゃー、逆アセンブルしてD3DXがどう解決しているか確認してみりゃいいんじゃね まーEffectPoolなんて使ってる以上、力技だろってのは想像がつくがな
576 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:04:30 ] 単純に変数を一時的にEffectPoolに入れておいてるだけで、 結局描画時に全部毎回マッチングしてレジスタに設定してるんじゃ無いっけ? あくまでユーザー側からは同じ変数のように見えているだけで。
577 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 08:32:57 ] >>576 マジすかw だとしたら効率的には何の意味もないんだな^^;
578 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:58:52 ] 頂点シェーダーにハードウェア対応していないグラフィックカードでは 頂点処理はCPUで実行されると思いますが、その場合に D3DPOOL_DEFAULTを指定して作成したっ頂点データは システムメモリ上に配置される可能性が高いんでしょうか? システムメモリ上に配置されるということはレンダリングの度にシステムメモリから ビデオカードへのデータ転送が発生しているのでしょうか?
579 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:08:38 ] >>576 そういえば、頂点シェーダー(VS)とピクセルシェーダ(PS)を別々にビルドしてセットする場合って、 VSとPSそれぞれの定数テーブルに値をセットする必要があると思うけど (VSとPSでレジスタ空間が違うからなのか?違うよね?) この辺もD3DXEffect系使った時って意識しないから、やっぱD3DXEffect系は内部でいろいろやってるのか…
580 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:26:43 ] 1>.\MapModel.cpp(622) : error C2065: 'DXFILEFORMAT_BINARY' : 定義されていない識別子です 最後にこのエラーだけ解決できません・・・。 対処方法を教えていただけませんか?
581 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:32:44 ] >>578 頂点変換をハードウェアで対応してなければ システムメモリから転送するしかない。 RadeonHD3450が5000円で買えるんだから 素直にDirectX10対応のビデオカード買えばいい。 >>579 かといって自分で全部管理した方が速くなるのか?という話になると どちらかといえば遅くなるだろうから素直にID3DXEffect使う方がいい。 すでにDirectX10ではそれしかないし。
582 名前:580 mailto:sage [2008/10/03(金) 20:37:52 ] if (FAILED(D3DXSaveMeshToX(name, pMesh, NULL, material, NULL, 3, DXFILEFORMAT_BINARY))) return false; return true; } コードです
583 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:55:18 ] >>582 使ってるSDKが新しすぎるんじゃね? よく分からんわ
584 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:28:42 ] >>580 それは、dxfile.hに定義がある。 使いたければ、includeしろ。 てか、それ間違ってるんで #include <d3dx9xof.h> を追加して D3DXF_FILEFORMAT_BINARYを使え。
585 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:33:51 ] おまいらどうやってDirectX勉強したの? 独学?
586 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:45:02 ] 独学
587 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:00:30 ] すっげー
588 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:05:32 ] 俺はDirectX5の頃からだぞ、なめんな あと歳は聞くな
589 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:13:15 ] WinGから じじい言うな
590 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:11:11 ] d3dx9_xx.dllにはいろんなバージョンがありますが、ロードするのは一番数字が大きいものでいいのでしょうか。 それとも、各バージョンごとで互換性が低いのでしょうか。
591 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 01:15:57 ] つかってるSDKによって勝手に対応するバージョンのものが呼ばれる
592 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 01:23:05 ] それはd3dx9.libをリンクしていたらってことですよね。 友達にプログラムを渡したら二人が二人ともd3dx9_xx.dllがないとエラーが出るといっていたので、 とりあえず一番に、最新のDirectXを入れるように言ったのですが、 プログラム側で選択してもよいものなのかと疑問に思ったのです。
593 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 01:28:19 ] >>592 >プログラム側で選択してもよいものなのかと疑問に思ったのです。 それをやれるだけのスキルがあるならやればいいと思うけど、 「やってみたいんですけどうまくいきません」というのならやるなと言いたい。
594 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 01:31:04 ] >>592 Web Installerで全部のd3dx9_xx.dllをインストールしてくれるから、これ実行してもらうといいよ。 www.microsoft.com/downloads/details.aspx?familyid=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=ja
595 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 01:37:51 ] ということは少なからず差異があるようですね。 >>594 のページを教えて、インストールさせようと思います。 ありがとうございました。
596 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 05:27:32 ] Direct3D 9 Driver Development Kitなんて何処にあるんだ・・・?
597 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 07:23:51 ] ぶっちゃけ 自分のPCにはいってる一番番号の大きいdllを exeと同じフォルダに入れて渡せば動くよ
598 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 10:49:32 ] >>588 WinG〜GameSDK
599 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 13:29:21 ] typedef struct _D3DLVERTEX { D3DXVECTOR3 pos; D3DCOLOR color; D3DCOLOR specular; D3DVALUE tu; D3DVALUE tv; } D3DLVERTEX, *LPD3DLVERTEX; #define D3DFVF_LVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1) _D3DLVERTEX についている_の意味ってなんですか?
600 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 13:44:02 ] 別にそこで使った名前は他で使わないから適当でううんだけど よそと名前がぶつかったら困るでしょ。 そのために自分たちだけで決めたルール
601 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:30:43 ] なるほど そういうことですか ありがとうございjます
602 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:58:01 ] おしえてください。 ウィンドウサイズの変更イベント OnSize() の中で、 Reset() を使っているのですが、D3DERR_INVALIDCALL というエラーが出て先に進めなくてこまっています。orz... D3DPRESENT_PARAMETER の中身は、 BackBufferWidth 0 BackBufferHeight 0 BackBufferFormat D3DFMT_X8R8G8B8 BackBufferCount 0 MultiSampleType D3DMULTISAMPLE_NONE MultiSampleQuality 0 SwapEffect D3DSWAPEFFECT_DISCARD hDeviceWindow = GetSafeHwnd() で取得したハンドル Windowed 1 EnableAutoDepthStencil 1 AutoDepthStencilFormat D3DFMT_D16 Flags 0 FullScreen_RefreshRateInHz 0 PresentationInterval 0 です。 よろしくお願いします m(_ _)m
603 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:02:45 ] ウィンドウハンドルがNULLとか
604 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:23:42 ] >>603 ありがとうございます。 D3DERR_INVALIDCALLが発生する原因がわかりました。 リソースをD3DPOOL_DEFAULTで確保するとダメみたいです。 OnSize() でウィンドウサイズを可変した時に3D画像のアスペクト比が 変わってしまうのを防ぎたかったのですが、Resetを呼び出してもダメ みたいです。 アスペクト比を固定するにはどのようにすれば良いでしょうか? よろしくお願いします。
605 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:32:34 ] D3DPOOL_DEFAULTで作成したリソースをいったん削除してからデバイスをリセットして、その後でリソースを作り直す。
606 名前:デフォルトの名無しさん [2008/10/04(土) 23:39:07 ] >>605 ありがとうございます。 早速ためしてみます。
607 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:41:30 ] >>604 何がしたいのかわからないんだが ウインドウサイズが変わった時点で 変更後のサイズからアス比を再計算して 射影行列を作る時に指定しているアス比を変更するだけじゃだめなのか? D3DXMatrixPerspectiveFovLHとかの話 ついでに流れ的に関係あるようでないような質問 テクスチャとかメッシュとかはパフォーマンス的には置いといて デバイスのロストを気にしなくても良い様にできるけど ID3DXEffectだけは対応しなくちゃいけない感じなんだが これって何かの設定で対応しなくて良いようにできるものなの?
608 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 23:50:09 ] >>607 バックバッファの大きさは変わらないんだからぼんやりしちゃうだろ
609 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:23:15 ] デフォルトのバックバッファを使わないで、 後から確保した物を使えばリセットする必要性は皆無
610 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:48:32 ] >>607 ID3DXEffectの仕様として管理下はサポートされていないので それは無理だろ。 ただ、ロスト対応が必要な理由として、シェーダ引数のテクスチャと ステートブロックがあるからだろうと考えられるので エフェクトに渡すテクスチャは管理下のみ、 pass内でステートの変更はしない、ステートブロックは使わない、などの 対策をすれば、大丈夫になるかもね。
611 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:51:57 ] マルチディスプレイで WindowモードのWindowを他方のWindowへ移動すると presentが遅くなるのはどうしようも無いですか?
612 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 16:03:48 ] VOID DrawText(ID3DXFont* pFont, char* text, DWORD x, DWORD y, D3DCOLOR Color) { RECT Rect; SetRect(&Rect, x, y, CW_USEDEFAULT, CW_USEDEFAULT); pFont->DrawTextA(text, -1, &Rect, DT_LEFT | DT_NOCLIP, Color); } の pFont->DrawTextA(text, -1, &Rect, DT_LEFT | DT_NOCLIP, Color); この部分で error C2660: 'ID3DXFont::DrawTextA' : 関数に 5 個の引数を指定できません。 と言うエラーが出てしまいます 自力で調べた所DirectX SDKの仕様が変わったためにコンパイルできないらしいと言うところまではわかったんですが どのように書き直せば良いのかわかりません どのように直せば良いのでしょうか ちなみにSDKはaugust 2007です よろしくお願いします
613 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 16:14:53 ] 第一引数にD3DXSPRITEを渡さないとダメ 最新のSDKのマニュアルとサンプルを見るべし
614 名前:612 mailto:sage [2008/10/08(水) 14:40:09 ] ありがとうございました やってみます
615 名前:デフォルトの名無しさん [2008/10/08(水) 15:35:55 ] これからDirectXをまなぼうと思っています ゲームをつくりながら解説していくようなサイトを探しています オススメがありましたら教えてください C++とWINAPIの基本は理解しています
616 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 15:36:41 ] age失礼しました
617 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 16:12:12 ] DirectInputで作成したマウスデバイスで、強調レベルを非排他に設定したときだけAquireメソッドが成功しません。 どういうときに失敗するのでしょうか。
618 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 18:39:17 ] >>617 Aquireは排他制御のためのメソッドだから、非排他設定なら必要ないだろう。
619 名前:617 mailto:sage [2008/10/08(水) 21:22:12 ] どんなサイトの解説を見ても、必ずAcquireメソッドをよんでるんですが・・・ 少なくともサイトの管理人の環境では、実行できてるってことですよね?
620 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 21:40:22 ] >>619 Acquireを呼んでいるのと、Acquireが成功するかは別問題。 MSのサンプルだってAcquireは呼んでいる。 でも、それが成功したかなんて気にしていない。
621 名前:617 mailto:sage [2008/10/08(水) 21:54:33 ] 日本語版のMSDNでようやく該当する記述を見つけました。 Acquireの戻り値として、 >DIERR_OTHERAPPHASPRIO 他のアプリケーションの優先レベルの方が高いので、この呼び出しを実行できない。 >この値は、標準の COM 戻り値である E_ACCESSDENIED に等しい。このエラーが返されるのは、 >デバイスに対するアプリケーションのアクセス権がフォアグラウンド アクセス権であるにもかかわらず、 >バックグラウンドであるときにデバイスを取得しようとした場合である。 とありました。WM_CREATEの処理内で呼び出していたために失敗していたようです。 大変お騒がせしました。まさか日本語ページの方が詳しいなんて・・・
622 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 00:11:47 ] DirectSoundはDirextX8も9も一緒なんですか? DirectSoundCreate8からDirectSoundCreate9になるのかと思ったんですがないといわれます。 ライブラリの追加はdsound.lib dxguid.lib winmm.lib だけでいいんですか?