[表示 : 全て 最新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/

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冊やってようやく
あ、なんとなく分かってきたかも。となる

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

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

130 名前:127 mailto:sage [2007/12/23(日) 19:02:13 ]
何も知らない状態で、何から始めるのがいいか、
アドバイスをもらいたいです。

>>128
3D描画しかできないんでしょうか?
3Dを使って2Dの描画ができるならいいんですが、
あまり効率がよくないならDirectXを使うこと自体考え直します。
メインでやりたいのは音の制御なので、描画はそんなに凝りません。
シューティングゲームなので、図形の衝突判定ができると便利かもしれませんが。

>>129
それじゃあ、とっかかりとして何を参考にするのがいいんでしょうか?
サンプルを見て数をこなして、少しずつ把握していくしかないんでしょうか?

131 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:06:45 ]
>>130
ゲーム製作初心者なのか
DirectX初心者なのかにもよる

132 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:14:48 ]
>>130
3Dを使って2Dの描画ができるならいいんですが

OK

133 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:19:08 ]
>>130
DirectX9でスプライトが一番お手軽だと思われ。

134 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:37:25 ]
>>130
シューティングゲーム製作本出てるぞ
それを参考にすれば?

135 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:59:17 ]
>>124
なるほど。VRAM足りてないね。
1024*1024のA8R8G8B8テクスチャが大体4MByteね。
2048テクスチャだと4倍の16M。それが15個で240M。23個なら368M。

ちょっと無茶な設計になってると思われ。
不要なテクスチャは必要な時だけ確保するようにした方が良いし、
テクスチャは効率的に隙間無く活用した方が良いよ。



136 名前:127 mailto:sage [2007/12/23(日) 21:10:44 ]
>>131
>>131
ゲーム制作初心者です。プログラミング歴も1年程度です。
ただ、Javaで簡単なシューティングゲームを作ったことはあるので、
シューティングゲームのアルゴリズムに関してはだいたいどうやるか決めています。

分からないのは音の精密な制御で、ゲームの進行と正確にシンクさせる部分です。
その部分をどうやっていいのか、イマイチ当たりがつかない状況です。


137 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 21:19:44 ]
>>136
入門書の枠からは外れてるかな。
再生時間'(再生位置)を取得させれば良いだけの話だけど、
この手のゲーム以外で使うことはほとんど無いため扱わない。
ストリーミングバッファの解説が載っていればそれを応用すれば出来ることに気付くかも知れんが。

138 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 23:48:37 ]
広大なマップを作りたいんですが、バカ正直にモデルを作って読み込んだら物凄く重たくなってしまいました。
程よいメッシュ数で一定区画毎のモデルを用意して、必要分だけ読み込んで表示するのでしょうか??

139 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 00:16:12 ]
>>138
東京から大阪へ行くのに新幹線で行くのでしょうか?   という質問をされてどう答えろと。

140 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 00:31:31 ]
東京の六本木を歩いてるだけのシーンでも、ニューヨークとかパリとか地球全部描いてるわけか?
そんな恐るべき無駄は止めた方がいい

141 名前:138 mailto:sage [2007/12/24(月) 01:09:58 ]
>>139
??
夜行バスでも行ける、ってことですか??
でも、新幹線で行けるならそれに越したことはないですし、>>138の方法でイイってことかな・・・。
>>140
そ、そんなことはしません(汗)

今までゲームをしてきて、当たり前のように見てきた広大なフィールドを実現するのがこんなにも
たいへんなことだなんて・・・
ゲーム開発者の人を改めて尊敬します。

ttp://www.acecombat.jp/ace6/feature/images/ace6_image14.jpg
これとか、すごすぎです(;´д`)

142 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:20:10 ]
地面はまっ平ら
木はビルボードにしか見えないんだが

143 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:32:33 ]
ワラタ

144 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 08:39:45 ]
>>141
アプリケーションに正解なんて無いぜ?
>程よいメッシュ数で一定区画毎のモデルを用意して、必要分だけ読み込んで表示するのでしょうか??
つまり>>139の例で言うと新幹線で行くのも正解だし、バスで行くのも正解、歩いていくのも正解だろ。
自分の案があるならそれを試した上で軽くなる方法が無いか聞かないと。

145 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 10:02:56 ]
DX9 2007Nov .Net
HLSLについての質問です。
以前PassがBeginPassとEndPassに変わったと言うやりとりがありましたが
上がっているHLSLのサンプルがことごとくエラーを出して正常に実行できません。
サンプルにSDKのバージョンを合わせれば動くでしょうが、そこから最新のバージョンに動かすように修正が出来ませんでした。
現在のバージョンで動くHLSLのシンプルなソースや解説をしているサイトは無いでしょうか。
せめてHLSL部分だけでもあればいいのですが、fxファイルが正常に読み込めエラーが出たりとか・・orz



146 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 10:12:49 ]
きちんとヘルプが付いてきているだろ。
それで何が問題なんだ?

147 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 10:53:43 ]
>>145
別にHLSLの部分は何もかわってないぞ
fxファイルが読み込めないのは
どっかに構文エラーがあるからじゃね?






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

前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