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/
488 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 18:26:42 ] 正方形状に頂点を配置してるから、元画像の縦横比を保つために変換行列で正方形を横に広げることを指示してる。
489 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 19:14:07 ] >>488 ありがとうございます
490 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:13:21 ] GPUの描画能力を活かして描画ソフト(ポリゴンで二次元的な線や図形を描く)を作りたいのですが、 最終的にレンダリングされた画面をファイルに保存するときはどのような手順を踏めばよいでしょうか?
491 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:24:40 ] つD3DXSaveTextureToFile
492 名前:490 mailto:sage [2008/09/24(水) 17:28:10 ] >>491 ありがとうございました!!
493 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 18:19:38 ] 最強の入門書は?
494 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 19:15:33 ] DirectX以前の質問になってしまうが、教えて欲しい。 直方体や円柱の林の中を一人称視点で移動できるようなプログラムが 組める位までの知識が欲しいんだけどお勧めの書籍とかある? 当方のスキルは算数は困らん程度に出来るが、数学は微妙だ。 プログラムの言語はCとC++は一通り出来る(はず)。 MFC使って自分用のツールを作る程度のことは出来る。
495 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 20:45:39 ] sorceryforce.com/programing/mdx/ こんなわかりやすいサイトないですか?
496 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 22:49:58 ] キーボード、マウス、ゲームコントローラーとして認識されていない機器をDirectInputで扱うことはできますか? トランジスタ技術8月号についてきた78k0マイコンにスイッチを付けてコントローラーの様にしようと思ったのですが、 パソコンには仮想comポートとして認識されているため途方に暮れてます。
497 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 09:55:44 ] ドライバ書くのがいいかも。 って署名なしは入れにくいか
498 名前:デフォルトの名無しさん [2008/09/25(木) 11:39:02 ] >>494 三角関数、ベクトル、行列あたりの知識は絶対必要。
499 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 11:46:47 ] >>494 程度なら行列は使い方だけ分かれば数学的な知識なくても何とかなるけどな
500 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 12:14:29 ] すみません超初心者版で質問したのですが スレが消えてしまったのでこちらに改めて質問させてください リアルタイムロードシステムの妄想をしているのですが テクスチャをロードする際にMipMapの低レベルサーフェイスから順に 読み込めないかといろいろ試しているのですがいい方法が浮かびません デバイスのCreateTextureで必要なバッファを確保し、あとから自力で DDSファイルなりを読み込んでロックして放り込めば出来るかと思ったのですが D3DPOOL_DEFAULTで作成したものしかロックできないんだとか USAGE_DYNAMICは効率が悪いから使いたくないよ・・・・ なんかいい方法ないでしょうか?
501 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 12:40:31 ] >USAGE_DYNAMICは効率が悪いから使いたくないよ・・・・ この考えが間違っている 使え 以上
502 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 13:47:54 ] >>501 回答ありがとうございます! リファレンスのD3DUSAGE_DYNAMICを見直してみたところ、 頂点バッファに関しては配置場所が変わる可能性があるようですが、 テクスチャに関しては特にそういった記述が見当たりませんでした。 つまりテクスチャに関してはDYNAMICにしても、速度的なデメリットは無いんでしょうか? 宜しくお願いしますm(_ _)m
503 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 15:15:51 ] MipMapの低レベルサーフェスから順に読み込む理由が知りたい。 っていうか、Lockできる条件を勘違いしてるだろ。 >D3DPOOL_DEFAULT で作成されたテクスチャはロックできない。 (SDKのヘルプより)
504 名前:494 mailto:sage [2008/09/25(木) 16:02:40 ] >>498 、499 とりあえず教えて貰ったキーワードを元に、 ググる先生に参考書になりそうな本を聞いてくる。
505 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:05:47 ] >>504 来月始め頃にちょうどいいのが出るような気がした
506 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:08:09 ] っと、名前忘れてたんで探してきた、これだ ttp://www.oreilly.co.jp/books/9784873113777/ もちろん1行も読んでないので、どんなもんかはわからん。
507 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:12:26 ] 移動するくらいなら算数だけできればおk
508 名前:500 mailto:sage [2008/09/25(木) 16:20:39 ] 低レベルから順にロードする理由は、数フレームにわたってリアルタイムロードする場合は 低解像度でもいいので出来る限り早く読み込んで表示したいからです それから >D3DPOOL_DEFAULTで作成したものしかロックできないんだとか は >D3DPOOL_DEFAULTで作成したものは、USAGE_DYNAMICを指定しないとロックできないんだとか の間違いでした。すみません
509 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 17:00:08 ] >>508 D3DPOOL_DEFAULTならLockするより、UpdateTextureや UpdateSurfaceを使った方が速い。
510 名前:500 mailto:sage [2008/09/25(木) 17:45:03 ] ご意見どうもです UpdateSurfaceでやると、ロックするのと違いなぜ速くなるのでしょうか? システムメモリ上にもテクスチャを作ることになりそうであまりやりたくないかなと^^; また、D3DXLoadSurfaceFromMemoryと言う関数を見つけたのですが、 これで代用することもできますでしょうか?
511 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 17:58:41 ] 入門書はなにがよろしくって?
512 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 19:22:44 ] >>510 UpdateTextureはDMAが使用される。 転送速度そのものは、DMAを使おうが使うまいが大差ないが DMAの場合は転送中にCPUがフリーになって他の処理ができる。
513 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 21:32:03 ] >>512 それならMANAGEDでいいですやんって話
514 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 23:44:30 ] ポイントプリミティブを同じ座標に描画して色のブレンドを行いたいのですが上手く行きません。 これは無理なことなんでしょうか?
515 名前:デフォルトの名無しさん [2008/09/26(金) 02:42:55 ] directx10 SDK だとdirectsoundが使えないとかないよね? 音が鳴らない・・・
516 名前:デフォルトの名無しさん [2008/09/26(金) 07:46:42 ] ↑ 音だけ鳴らす最小限のサンプルを見つけて、そこからチェックしてみたら?
517 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 07:49:48 ] DirectX10のSDKなんてないだろ。 DirectSound自体はDirectX8の頃から変わってないし最新SDK使ってても普通に鳴るぞ。
518 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 12:12:09 ] 自分のプラグラムのバグだとは思わないのかね 何でも人のせいにするんじゃないよ
519 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 12:18:32 ] directx10 SDK→Vistaを使ってる VistaとDirectSoundの相性関係でうまく再生できてない って事はない? 何れにしろ再生できるはず
520 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 12:54:06 ] 存在しないSDKの名を上げ、何をどうしたのかも書かず、 自分のプログラムを疑わず他人のせいにする。 プログラマ適性0だから、そのそも足を洗うのが正しい選択だろう。
521 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 17:27:24 ] OpenALへようこそ
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の頃からだぞ、なめんな あと歳は聞くな