[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 01/02 08:13 / Filesize : 170 KB / Number-of Response : 607
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】 DirectX初心者質問スレ Part15 【C】



1 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 16:56:40 ]
※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

【C++】 DirectX初心者質問スレ Part14 【C】
pc11.2ch.net/test/read.cgi/tech/1189257706/

29 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 22:51:58 ]
>>27
ここはWindowsプログラム初心者スレじゃない。
基礎からやり直せ。

30 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:01:59 ]
Windowsプログラム以前の問題だな
C言語そのものをよく理解してないだろ

とりあえず
WinMain内の

// シーンオブジェクト
Scene scene;

をグローバルにして

if (wParam == 37){
scene.x-=0.1f;
}
if (wParam == 38){
scene.y+=0.1f;
}
if (wParam == 39){
scene.x+=0.1f;
}
if (wParam == 40){
scene.y-=0.1f;
}

とすれば君のやりたいことはできるよ
そんな設計でいいのかどうかは別として

31 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 00:41:54 ]
ATI Radeon9700 + DirectX9.0cですが
Direct3D、リファレンスデバイスのcaps.MaxActiveLightsがUINT_MAXを返します。
しかし、SetLightはそこまで大きいインデックスには対応していないらしく
ある程度の値でエラーを返します。
これはバグってるんですかね?それともSetLightのインデックスの最大値は別の方法で
取得する必要があるんですか?

また、Direct3D9の固定機能パイプラインで、テクスチャ座標値をそのままピクセル色として
出力することは可能ですか?ピクセルシェーダを使わないと無理でしょうか?

32 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 11:55:35 ]
DirectXに関してはまったくの初心者なのですが、どうしても分からないことがあるので質問させて下さい。

DirectDrawEnumerateEx関数を用いて、DirectDrawの初期化前にデバイスを列挙しようとしているのですが、
Unicode版のDirectDrawEnumerateExW関数がE_NOTIMPLでエラー終了してしまいます。
Ascii版で同様のコードに書き換えると問題なく実行されるのですが、
どうしてUnicode版だけエラーが発生するのか、全く理由がわかりません。
(一応VCのデバッガでアセンブリをステップ実行して中を追ってみたところ、
 Unicode版では分岐もなしに無条件returnしているように見受けられたのですが、
 DirectXの呼び出し規約等はまったく知らないので、かなりの確率で私の勘違いかもしれません)

そこで質問なのですが、
 1) DirectDrawEnumerateExは、互換性を考えると本来使うべきではない関数なのでしょうか。
 2)みなさんは、DirectDrawでマルチモニタをサポートするとき、どのようにデバイスを列挙していますか。

DirectDrawEnumerateExについて詳しく説明している資料がほとんど見つからず、困っております。
どうかご教授いただければ幸いです。

OSはXPSP2で、開発環境はVC2005、DirectXは9.0c(およびJune 2007のSDK)をインストール済みです。
ddraw.dllは2004/08/04のバージョン5.03.2600.2180になっていました。
グラボはRadeon X700 Pro (ATI製ドライバ 2007/09/28 8.421.0.0)を使用しています。

簡単ですがレポートと再現コードをまとめておきました。
参考にご覧ください。
kissho.xii.jp/1/src/1jyou20706.zip.html

33 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 19:13:53 ]
DirectSoundの質問です。
waveファイルを扱うとき、mmioOpenで開き、ファイル形式、チャンクのチェック等という処理をしていくと思います。
このファイルを開く処理の時、ハードディスク上のファイルではなく、メモリに読み込んだデータを
使いたいのですが、可能でしょうか?また、どのようにすればいいのでしょうか?
宜しくお願いします。

34 名前:33 mailto:sage [2007/12/02(日) 02:31:42 ]
自己解決しますた

35 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:37:59 ]
>>10で質問した者ですが、DirectSoundを使うことで音飛びしなくなりました。
しかし同時に複数の音が再生できないようなので、BGMはSound、SEはMusicで再生しています。
DirectSoundとDirectMusicを同時に使っても不具合が起こったりしないでしょうか?

36 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 01:22:03 ]
質問です。
画像をキーボードを使って移動できるようにしたのですが、
Alt + Tabでデバイスをロストすると、画像はちゃんと表示されるのに、キーボードを使っての画像の移動ができなくなってしまいます。
何が原因でしょうか。
移動にはDirectInputを使って直接キーボードからの入力を取得しています。


37 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 07:58:20 ]
>>36
画面が復帰したときに
Acquireしなおせばいいんじゃね?



38 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 18:38:44 ]
DirectXの導入について質問です。

www.plustarnet.com/aspil/Programming/
を見ながらDirectXをBCC Developerで使おうとしているのですが、DirectX Novenber 2007をインストールしてもコントロールパネルにDirectXの項目が出てきません。
この状態で上記サイトのサンプルプログラム(2D編の始めのところにあるsampleSTG)が出来るかどうか試してみたのですが、エラーが大量に出て上手くいきません。
これはそもそもDirectXのインストールをやり直すべきなのでしょうか、それともサイトが古いから仕様が変わったのでしょうか。

39 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 20:43:08 ]
>>38
いつからだったかコンパネにはでなくなったような
プログラムメニューの
DirectX Utilitiesの
DirectX Control Panelで同じのがみれるよ
ただNovenber2007は見てないのでなかったらすまん

おそらくエラーと上記は無関係
とりあえずincludeのパスは通したのかい?
通してエラーがでてるのなら
エラーコードをいくつか書いてみそ
話はそれからだ

40 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 08:05:33 ]
VistaとD3DCREATE_SOFTWARE_VERTEXPROCESSINGについての質問です。

DirectXのサンプルプログラム SkinnedMesh を例であげますが、
Vista(GF8600GT,AthlonX2 5000+)だと
D3DDEVTYPE_HALにおいて
D3DCREATE_HARDWARE_VERTEXPROCESSINGと
D3DCREATE_SOFTWARE_VERTEXPROCESSINGでのパフォーマンスの差が30倍以上出るのですが、
Vista?ではこんなものでしょうか?
自宅で確認できる他の環境では
XP(R9600, P4 2.8G)だと倍程度の差しかでないようなので・・・
D3DCREATE_SOFTWARE_VERTEXPROCESSINGだけですが、
2000(onBoardGF4MX, Athlon 1G)の方がVistaの3倍以上のパフォーマンスが出ています。


41 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 10:02:12 ]
>>40
すまん、お前の日本語はどうも理解しがたい
具体的に書いてくれ

42 名前:40 mailto:sage [2007/12/04(火) 10:30:05 ]
VistaでのSoftware vertex processing処理は遅いのでしょうか?

Hardware vertex processingだと840fps以上でるのですが、
Software vertex processingだと28fps程度まで落ちます。
XPや2000だと性能の低いGPUを使ってSoftware vertex processingを指定しても
100fps前後が出るのに・・・
Vsitaなのか他の条件なのかがはっきりしなくて質問しました。
動作プログラムは DirectXのサンプルプログラム SkinnedMesh です。


43 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 11:05:25 ]
28は遅すぎる
REFで動いてないか?

44 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 11:13:05 ]
あとSDKのライブラリのリンクは
きちんとx64のほうを指定しているのかい?

45 名前:40 mailto:sage [2007/12/04(火) 11:56:04 ]
REFだと1fps程度ですね。
x64でリンクってのは、この場合はサンプルexeなので
SDK付属のexeを実行してるだけです。
参考までに、Vista環境の方で、どの程度のfpsが出るのでしょうか?


46 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 12:35:03 ]
ノートですまんが
32bitVista Cor2DuoT7500 GeForce8600GTM
スキニングのタイプで多少は前後する
SOFTWARE 300fps
HARDWARE 350fps
くらい


47 名前:40 mailto:sage [2007/12/04(火) 14:25:29 ]
どうやら私の環境だけのようですね。
自分がコーディングしたプログラムだけなら何かミスがあるのかなと考えたのですが、
SDK付属のサンプルexeでも同じような状態だったので・・・。
どなたかご指摘の点とかないでしょうか?
一応、Debug/Retail Runtimeは確認しています。




48 名前:デフォルトの名無しさん [2007/12/04(火) 18:59:52 ]
初心者なので変なことを言ってたらすみません。

ゲームを作っているのですが、
キャラクターが壁などのオブジェクトにぶつかった時に進む方向を
自動で変えるにはどうしたらよいですか?

壁にぶつかる角度などで、向き変えたい方向が違うのでif文での場合わけがわかりません。
よろしくお願いします。

49 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 19:03:08 ]
if (vector==0) {
//右へ移動する
//壁にぶつかると変数vectorの値を変える
} else {
//上へ移動する
}

50 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 19:19:16 ]
>>48
お前はDirectXとかうレベルではなく、それ以前の問題。
そんな初歩的なアルゴリズム、管質いってやってくれ。

51 名前:デフォルトの名無しさん [2007/12/04(火) 19:40:16 ]
3Dでやっていて、どのような角度で壁にぶつかっているのかがわかりません。
進む方向は回転行列を使って変えていて。。

バイオハザードの、壁にぶつかってもキャラクターは走っているのに、
ぶつかった時の入射角によって左右のどちらかに、
キャラクタの座標がずれていくようにしたいのですが。。

52 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 19:44:40 ]
回転行列に使ってる角度はどこに消えたんだよw

53 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 20:34:18 ]
「壁ずり」でググるんだ。
ここはDirectXの質問スレであって、ゲーム開発の質問スレじゃないんだ。
だからもう迷い込むなよ。

54 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 20:38:24 ]
壁ずりを理解したら次は床ずりも理解してくれ

55 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 22:56:55 ]
ライトを設定しないでも、読み込んだモデルは色付きで表示されて見える状態ですけど、
ライトの光が当たる部分だけ照らされて、当たらない部分は真っ暗にするにはどうすれば良いでしょうか?

56 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 23:18:28 ]
>>55
すげぇ抽象的な質問だな

とりあえず
固定機能パイプラインでやるのか
ピクセルシェーダーでやるのかくらい書こうぜ

57 名前:55 mailto:sage [2007/12/05(水) 23:24:22 ]
>>56
固定機能パイプラインでやります。



58 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 23:31:00 ]
>>57
ほい

ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/graphics/programmingguide/fixedfunction/lightsandmaterials/usinglights.asp

59 名前:デフォルトの名無しさん [2007/12/06(木) 09:58:02 ]
【質問テンプレ】
[1] 授業単元: DirectX
[2] 問題文(含コード&リンク):サンプルソースを元に入力クラスを作成して、表示させた画像を動かす。
(車を動かすので、可能ならアクセルとブレーキを再現)
サンプルソースを下記にうpします。(mainとヘッダーがあるためzipファイルです。)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5415.zip


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VS2005
 [3.3] 言語: どちらでも可
[4] 期限: 2007年12月6日 17時
[5] その他の制限: 制限はなし

すっかり課題を忘れてて手をつけていない
よろしくお願いします

60 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 10:28:08 ]
ここは宿題を片付けますスレではないんだが・・・

そもそもサンプルに不備がある
技術的な問題でなくたんなる初期化の問題
こんなの誰もやりたがらん

いくらか出してくれるなら話は別だが

61 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 12:24:12 ]
そもそも設計がおかしくね?

DirectInputインターフェイスを親クラスで
static宣言して
複数生成されるかもしれないデバイスを
その子クラスで作るって
気持ちは分かるがいまいち再利用性に乏しいような
いったいどこで初期化させるつもりなんだろう?

単に静的メンバの使い方の学習の一環でこんなことしてるのだろうか?

62 名前:59 [2007/12/06(木) 13:52:40 ]
>>60、61
そうなんですね。

授業全く聞いてなかったから、何がなんだかわからなくて

うpしたファイル見て頂いただけでもありがたいです。

63 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 14:07:09 ]
>>62
ゲーセン乙。

64 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 19:29:58 ]
こんな授業に金出してるのか・・・。
しかも、聞いてなくて課題ができないとかって。

君、学校(?)に行く目的は課題の達成なの?
それとも、学校に行くのが目的になってるの?
どっちにしても、すでに健全な状態ではないよね。

65 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 19:52:13 ]
プログラム実行時に

Direct3D9: (ERROR) :Device cannot perform hardware processing. ValidateCreateDevice failed.

って出るんですが原因と解決法とかわかりませんか?
とりあえず見た目は正常に動いてるようには見えるんですが気になります。

66 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:22:34 ]
何も無いところにエラーは出るはずないので
必ずそのエラーを吐いている関数があるはず
とりあえずデバックで順次実行してみて
そのエラーを吐いてる箇所を絞り込んでみたら?

67 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 23:41:17 ]
俺にはハードウェアを(その環境が)サポートしてないっていうエラーに見えるんだけど。
エラーの発生源ってデバイスの初期化部分じゃないか?
グラボを積んだ環境で試してみろよ。それかソフトウェアエミュレートに切り替えればいいはず。



68 名前:デフォルトの名無しさん [2007/12/08(土) 16:12:52 ]
自宅のノートパソコンでプログラムを起動すると起こるバグなのですが。
『アニメーションメッシュを表示した途端に、その他のただのメッシュやテクスチャが全て表示されなくなる』というバグです。

細かい状況は
・学校のデスクトップパソコンだと起こらない
・極端に軽いアニメーションメッシュの場合、起こらない
・アニメーションメッシュを読み込んだだけで、表示しないのなら起こらない
・アニメーションメッシュ自体は、一番最初に表示した1種類のみ何体でも表示できる
・一度表示すると途中からflgをFALSEにしてアニメーションメッシュを表示させなくしても、テクスチャなどは消えたまま
・一度表示するとアニメーションメッシュを解放して2週目に入ってアニメーションメッシュの読み込みすらしなくてもテクスチャなどは消えたまま
・zバッファをOFFにしたテクスチャだけは表示できる

なので状況としては「一度でもアニメーションメッシュを表示させると何があってもテクスチャなどは消えたまま」
という状況です。
ほぼ間違いなく、アニメーションメッシュの表示部分が悪いというところまでは分かるのですが…。


要領を得ず、長文で申し訳ありませんが回答をいただけたら幸いです。

69 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:28:41 ]
>>68
その自宅のノートのGPUはどこの会社のどのバージョンよ。
話からするとハードウェアに問題があるのは間違いなさそうだけど、公表されんといいようがない。

70 名前:デフォルトの名無しさん [2007/12/08(土) 19:35:00 ]
>>69さん

書き込みが遅くなって申し訳ありません。

パソコンの種類が
dynabook.com/pc/catalog/support/search/user/cgi-bin/disp.cgi?pid=PATX760LS&dir=DBs
スペックが
dynabook.com/pc/catalog/dynabook/051219tx/spec.htm
です。

71 名前:55 mailto:sage [2007/12/08(土) 19:40:45 ]
>>58
ありがとうございました。

72 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 19:42:57 ]
>>70
単なるスペック不足
3Dの開発ができるVGAではないな

73 名前:デフォルトの名無しさん [2007/12/08(土) 20:00:31 ]
>>72さん
やっぱりそうなんですか…。
ありがとうございました^−^




ただ、何とか「勝手に消す」→「カクカクでもいいから動く」ようにしたいのですが
そこの辺りはDirectX側で変更できないのでしょうか?

74 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 20:13:33 ]
>>73
なんとも判断に困る。

ドライバとDXのバージョンは最新?最新でもノートのドライバは3Dを前提に考えて作ってないことが多いから、
バグが残ってるのかも。

俺の結論としては、オンボードであることと、一つ目のメッシュだけは表示できるというところからも、メモリ不足が一番怪しいと思う。
アニメーションメッシュって比較的メモリを食うはず。

対策としては、PCを変えるのが一番手っ取り早いけど、
それでもノートでしたいならBIOSの設定でSDRAMのグラフィックメモリ割り当てサイズを増やしてみたら?
一回最大割り当てでやってみて、それでも無理ならほかの要因かもしれん。

75 名前:デフォルトの名無しさん [2007/12/08(土) 21:25:39 ]
>>74さん
とにかく、何か特殊な事をしなければ動かないということですよね。
ここはやっぱり「万能に」は諦めて説明書に「他の3Dゲームが出来る事を確認した上で起動をお願いします」
と注意書きを入れるべきですね…。

卒業生の代表作品として、体験入学参加者などに配られる予定なので
何とかして、せめてカクカクでもいいからどこでも動くようにしたかったんです。

76 名前:74 mailto:sage [2007/12/08(土) 21:35:16 ]
>>75
ものすごい面倒だが、もしかすると旧DirectXのバージョンでコンパイルすると行けるかもしれん。
俺はやったことないから保証は出来んが、DirectX8とかなら古いPCでも通るかも。

まあノートでゲームの性能を期待するなっていうのも本当だが。

77 名前:68 [2007/12/08(土) 23:03:39 ]
>>74さん
返信が遅くなって申し訳ありません。
SDKの方は旧バージョンがあったのでやってみたのですがやはり動きませんでした。
僕のプログラムだとDirectX8ではちょっと動かない関数を使っているので無理です;

友人宅のデスクトップでは動いたので、恐らく動かないほうがおかしいのだとは思います。
前にこのノートパソコンにかなり軽めのMMOを入れてみたときに、本当にカクカクではあったのですが動きました。
なので、何か方法はあると思うのですが…。

新聞奨学生なので今日はもう眠らなくてはいけませんが、治らなかった場合、また後日より詳しい状態を調べた上で書かせていただきます。
それでは長らくお付き合いいただき、誠にありがとうございました。



78 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:09:19 ]
> 本当にカクカクではあったのですが
REF なんじゃろうなぁ...

79 名前:デフォルトの名無しさん [2007/12/10(月) 20:15:23 ]
HLSLでfor文回してるんですけど、
かなりの数ループできないんですが・・
命令数って限られてるんでしょうか?
そうだとしたらその理由は?

80 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 20:53:50 ]
お前はもう終わってる。
マルチポストは死亡フラグなんだよ。


81 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:36:31 ]
普通のプログラムでも1Gもサイズがあったら動かなくなるんじゃない?

82 名前:デフォルトの名無しさん [2007/12/10(月) 21:43:51 ]
マルチポストとはどういう意味?

83 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:59:11 ]
浮気者

84 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:50:11 ]
誠氏ね

85 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 01:34:46 ]
pc11.2ch.net/test/read.cgi/gamedev/1179516297/468-470
がいし感←なぜか変換dけいなf

86 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:40:23 ]
ちょっと聞きたいのだけど、Directxと32Apiを組み合わせてプログラム
を組めますか?
Win32Apiのラジオボタン等の機能と組み合わせて作れれば良いなあ
と思ったもので・・・

87 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:16:49 ]
Win32APIっていうか
GUIにアクセスして
Windowsコントロールを描画することはできるけど
GUIの速度がDirectXと比べ物にならないくらい低速だから
DirectXを使うメリットを殺すことになる



88 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 04:12:49 ]
>>87
有難うございます。
何と言うか漠然としすぎて何とも言え無いです。
出直してきます


89 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:06:58 ]
自分のPCにはSDK9.0が入ってます。
あるサンプルをダウンロード、中を確認したらd3d8.hとd3dx8.hがインクルードされてたので
これをd3d9.h、d3dx9.hに直し、追加の依存ファイルも8から9に直してコンパイル
したら何百ものエラーが出てきました。
色々試したけど原因が全く分からないのでよろしければ誰か教えてください><

90 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:14:32 ]
バリバリ原因が丸わかりだろ。

91 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:16:10 ]
>>89
完全下位互換と言うわけではないからファイルが違うと全くの別物と考えたほうがいい。
同じファイル名でも中身は何度も添削しているから当時のバージョンじゃないと使えない場合もあるし。


92 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:27:34 ]
>>91
そうだったんですか・・・
9.0以前のものは全て使えると思ってました^^:
ご返答ありがとうございました。

93 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:23:52 ]
Xファイルに関して質問です。
ひとつのモデルに対し、複数のアニメーションをさせることはできるのでしょうか?
たとえば、あるキャラクターで、Aを押したらパンチ、Bを押したらキック、という風にしたいのです。
やはり、パンチ用とキック用でXファイルをわけるしかないのでしょうか。

94 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:29:24 ]
>>93
二つのアニメーションを連結して、それぞれのアニメーションでフレームを補正して使う。
例えば、AとBのアニメーションを連結したら、
Aの初めは、0
Bの真ん中は、0.75
っといった感じ。

95 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 22:41:53 ]
>>93
できる
SDKサンプルのtinyも実は
複数アニメーションを持ったXファイルだ
ただし切り替えに関して詳しく説明されてるところはあまりない
ID3DXAnimationControllerでぐぐればヒントくらいはみつかるかも

96 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 17:29:57 ]
HLSLを使ったサンプルでLPD3DXEFFECTのPassを使おうとしてエラーが出ます。
LPD3DXEFFECTにPassが無いのですが別のものに替わったのでしょうか。


97 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 17:44:24 ]
BeginPass
EndPass



98 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 18:50:11 ]
メジャーバージョン変えずにAPI蛙のやめれって感じですよねほんと

99 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 23:31:10 ]
どうしても1パス終了ごとに
PassEndを入れさせたい「事情」があって
開始時の互換性をなくすことで
両方セットで変更させようとした。ってオチじゃねぇの?

100 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 06:19:42 ]
地獄への道は善意で敷き詰められている。
職場では変更を極力抑えるのが美徳だけれど、その繰り返しが死の行軍を生み出すのが常である。


101 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:22:44 ]
SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
これらの引数を使いこなしたいんだけど分かりやすく解説している
ページないべ?

102 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:45:27 ]
これはひどい

103 名前:化石発掘 mailto:sage [2007/12/19(水) 02:37:51 ]
>>101
[shred of game]
platz.jp/~moal/game.html

104 名前:デフォルトの名無しさん [2007/12/21(金) 11:00:39 ]
ttp://wisdom.sakura.ne.jp/system/directx/dxg2.html
ここのページ下部にある背景が緑の部分のソースをまるごとコピーして、VisualStudio2005の無料版でコンパイルしました。ところが
「fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?」
というエラーが出てコンパイルできません。エラーで検索してみたところ、ソースの最上段に #include "stdafx.h"
を加えればコンパイルが通るらしいので試してみた所
「fatal error C1083: include ファイルを開けません。'd3d8.h': No such file or directory」
と表示されてコンパイルが通りません。

DirectXSDKはさっき落とした最新版(サンプルみたらDirectX10も使えそう)で、パスはたぶん通ってます。
どうしたらコンパイルができるようになりますか?

105 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:58:24 ]
まず、stdafx.h関連はスレ違い。DirectX以前の話なんで、よそで勉強して頂戴。
で、最新のDirectX SDKって何?November2007ならリリースノートに

この DirectX SDK には次のコンポーネントは含まれていません

* Direct3D8 およびそれ以前の全てのバージョン

ってあるから、Direct3D8はサポート外なんじゃないの?
もしインストールしたSDKのIncludeディレクトリにd3d8.hがあるんなら、Includeパスの設定を再確認しれ。
あと、少なくともJune2006にはd3d8.hは入ってるのを確認した。

106 名前:デフォルトの名無しさん [2007/12/21(金) 20:10:39 ]
November2007です、d3d8.hがなくて、代わりにd3d10.hが入ってました。
アンインストールしてJune2006入れてきます。ありがとうございました。

107 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 21:01:44 ]
June2006にもd3dx10.hはあるけどね。
あと、そのページはDirectX8について記されてるんだけど
DX10がやりたいならよそを見たほうが良いよ。
初期化まわりは8→9→10で全然変わったからやり直しになるし。

あと、DX10は動かすにはVistaがいるから。念のために。



108 名前:デフォルトの名無しさん [2007/12/22(土) 22:01:46 ]
すいません
2Dでゲーム作成をしているんですが

LPD3DXSPRITE gSprite;

// シーンの描画設定(2D画像の描画)
RECT SrcRect = { a,b,120,120 }; // テクスチャ内でスプライトに使う範囲
D3DXVECTOR3 Center(0,0,0); // スプライト内の中心の位置

// 出力
gSprite->Draw(Texture, &SrcRect, &Center, NULL,D3DXCOLOR(0, 0, 0,0 ));

正常に絵を呼び出せるのですが
Rectのrightとbottomに1とか100とか何か値を入れるだけで
フレームレートが50も下がります・・・
&SrcRectの部分にNULLを入れてもなぜか50下がります
ですが0を入れると正常に動作します
なぜでしょうか、ご教授ありましたらお願いします




109 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:07:23 ]
Direct3DでWM_PAINTで描くのはありですか?

110 名前:デフォルトの名無しさん [2007/12/22(土) 22:07:59 ]
108ですが、読み込み部分です

//画像ファイル情報を取得
hr= D3DXGetImageInfoFromFile(name,&ImageInfo);
Width= ImageInfo.Width;
Height= ImageInfo.Height;

// スプライトに表示するテクスチャの初期化
if ( !key ){
hr = D3DXCreateTextureFromFileEx(
g_pD3DDevice, name, Width,Height,1,0,
D3DFMT_UNKNOWN,D3DPOOL_MANAGED,D3DX_DEFAULT,
D3DX_DEFAULT,D3DCOLOR_ARGB(255,0,0,0),NULL,NULL,&Texture);
}

111 名前:108 [2007/12/22(土) 22:11:38 ]
連投すいません
問題点の大元が判明いたしました

D3DXCreateTextureFromFileEx(
g_pD3DDevice, name, Width,Height,1,0,
D3DFMT_UNKNOWN,D3DPOOL_MANAGED,D3DX_DEFAULT,
D3DX_DEFAULT,D3DCOLOR_ARGB(255,0,0,0),NULL,NULL,&Texture);
}
widthとheightに大きな値を入れると重くなりました
1とか10だと正常です・・・

112 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 07:34:04 ]
プロファイリングしたら?
D3DXSpriteなんてただでさえDirectXのバージョンに依存するからみんな回避してるのに、
この情報だけで分かるエスパーは居ないと思う。

つPIX for Windows
つDevPartner Profiler

まずは、どこで処理時間が落ちてるか見たほうが早いよ。

113 名前:108 [2007/12/23(日) 09:34:36 ]
>>112
ありがとうございます
その後の調べでどうも大きな絵を大量に呼び出すと落ちる様子
たとえ呼び出し側での大きさの縦横は1*1でも、元の絵が大きいと
どのPCどんな処理でも避けられないらしいので
妥協して少し絵の大きさを改善してみますm(_ _)m
お答えありがとうございました


114 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:35:36 ]
てか、元のテクスチャのサイズがでかかったら
パフォーマンスが落ちるのは当たり前じゃ

115 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:37:43 ]
あなるほど

116 名前:108 [2007/12/23(日) 11:43:53 ]
>>114
いや、initでの呼び出しで重くなるのはわかるんですが
メインループの中では1*1でも重いんですよ・・・

117 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 12:00:51 ]
表示で小さくしてるってことは
内部的に縮小してるってことだ
LPD3DXSPRITEがどういうアルゴリズムで
拡縮してるかはしらんがバイリニアってことはないだろうし
ぼけたりすることを考えるとなんらかのフィルターをかけているのは想像つく
それを巨大なテクスチャに適用してるんだから重いのは当たり前



118 名前:108 [2007/12/23(日) 12:11:19 ]
私の書き方がわかりにくくてすいません
要は2000*2000の画像をinitで読み込んで
1*1の部分しか表示していないのにそれを10個ほど並べたら重いんです
3個くらいなら正常なんですが・・・・

フィルタ関連で重くなるようなら少し見直して見ますm(_ _)m
ありがとうございました

119 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 12:19:52 ]
だから・・・

>2000*2000の画像をinitで読み込んで

この時点で重い処理がすべて終わってるわけではない
簡単に言うとここではVRAM上に
2000x2000の領域を確保して画像の色情報を格納してるだけ

基本的には毎回描画のたびにこの
2000x2000の領域にアクセスして
そこの情報をバックバッファに転送することになる

元のサイズが大きければ大きいほど
転送のための時間がかかるし
何らかの処理をかければ当然重くなる

基本的には表示するサイズでテクスチャを作るのが普通

120 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 12:23:03 ]
ビデオカードによっては
2048×2048にしたら多少は改善されるかもね

121 名前:108 [2007/12/23(日) 13:17:50 ]
>>119
>>120

そうですか・・・initで読み込んだら以降はもう関係ないものだと勘違いしておりました
スキル不足を痛感いたします
ご教授本当にありがとうございました

122 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 13:22:14 ]
リファレンスでやってるだけでね?

123 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 13:50:19 ]
たかだか2048のテクスチャで最近のビデオカードが遅くなるかね〜?
なんか、致命的な間違いをしていると思われ。

124 名前:108 [2007/12/23(日) 14:28:32 ]
>>123
それを15〜23個くらい呼んでます

125 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 17:00:04 ]
そもそもVRAMが足りなくなってて
システムメモリ上に作られてるとか
あるいは
システムメモリとVRAMが共用になってて
バス速度がボトルネックになってるとか

126 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 17:42:47 ]
実はDX8で開発していますとか言い出すんじゃないだろうな。

127 名前:デフォルトの名無しさん [2007/12/23(日) 17:59:09 ]
DirectXを使ってWindowsのゲームを作りたいのですが、
お勧めの入門書を教えてもらえませんか?

作りたいのはビートマニアのように音とシンクした、
シューティングゲームです。
3Dグラフィックは使いません。



128 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 18:00:57 ]
今のDirectXで3D使わずに絵描くのって無理じゃ

129 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 18:08:07 ]
ぶっちゃけ
DirectX関連で「これ1冊あれば」って本はないんだよなぁ
3〜4冊やってようやく
あ、なんとなく分かってきたかも。となる

どの本もだいたい「サンプルを動かすための」ソースになってるから
なんでそうなってるのかが説明されてないし
応用しようとするととたんに動かなくなったり・・・

数をこなすと何をやってるのかがだんだんわかってくるので
自分でいろいろ応用することができるようになる






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<170KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef