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/
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ファイルが読み込めないのは どっかに構文エラーがあるからじゃね?
148 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:13:46 ] >>145 >上がっているHLSLのサンプル どこのサンプルだよ?
149 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:44:39 ] >>148 Pass()のままのところもあります(修正してもメモリ周りでエラーが出たり) t-pot『HLSL』 (画像の下辺りにサンプル) ttp://tpot.jpn.ph/t-pot/program/72_HLSL/index.html DirectX9での上位レベルシェーダー言語(HLSL) (最下にサンプル) ttp://www001.upp.so-net.ne.jp/y_yutaka/labo/directx/shader_hlsl.html Shader.jp - Articles-第4回「HLSL スタート」 (上から1/5程の位置にある赤字文の下にサンプル) ttp://www.shader.jp/xoops/html/modules/xfsection/article.php?articleid=14 その7 HLSLによる極短レンダリング:サンプルプログラム (画像の下辺りにサンプル) ttp://marupeke296.com/DXPSSMP_No7_HLSLRendering.html
150 名前:138 mailto:sage [2007/12/24(月) 12:31:45 ] >>144 分かりました。 ありがとうございました。
151 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 21:55:38 ] >>149 俺もうごかねぇや。 てか自前のでさえ動かなくなってた。 詳しく調べてないから分からんが仕様が数箇所で変更されてエラーが複雑化しているように思える。 ぶっちゃけ去年辺りのSDK使えばいいんじゃね?
152 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 22:36:33 ] VC++2005、windowsSDK、DirectX9 SDK(October 2006)の環境で 2Dの簡単なゲームを作ろうとしている所です フルスクリーンモードでSetDialogBoxModeを使用している 全ソース付きのサンプルプログラムはどこかにありませんでしょうか? できればフルスクリーンモードでのメニューバー表示のサンプルがあると助かります。 一応自分でもこれを実現するために こちらの方のページを参考にしてほぼ丸写し状態でやってはみたのですが、 どうもメニューが表示されません。 ttp://www.geocities.jp/is3000nx/reading/dev/dev.html ただ、SetDialogBoxModeを呼び出しても呼び出さなくても、 メニュー自体は存在しているようで、マウスで画面の上のあたりを クリックなどしますと、瞬間的にメニューが現れ、メニューコマンドが実行されますが^^; こちらに書いていない部分(DX初期化関連、ウィンドーモード、メッセージ処理etc…) などで何か気をつける点でもあるのでしょうか???
153 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 22:48:55 ] あ、VC++2005はExpressEditionです。よろしくお願いします
154 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 23:54:06 ] 板ポリゴンとかにテクスチャを貼ると、テクスチャが何故か右下にずれるのですが、何故なのでしょうか? どうすれば直りますか?
155 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 00:28:43 ] >>154 何かを間違っているから。
156 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 05:24:58 ] どうすれば直りますか?
157 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 05:29:57 ] 間違いを修正する
158 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 05:49:02 ] どうすれば間違いを
159 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 06:32:38 ] どうやって貼りましたか?
160 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 08:12:48 ] 誘導 つttp://pc11.2ch.net/test/read.cgi/tech/1187922645/
161 名前:デフォルトの名無しさん [2007/12/25(火) 09:11:08 ] DirectX9.0bSDK(2004October)付属サンプル2の、虹色の三角形表示プログラムについての質問です。 改造して四角形を表示させたいのですが、うまくいきません。 CUSTOMVERTEX vertices[] = に { 50.0f, 50.0f, 0.5f, 1.0f, 0xff0000ff, }, を追加することで頂点を4つにし、 Void Render()内の g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 ); を g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 ); にすることで、2つの三角形を連続して描画し、結果的に四角形になるかと思ったのですが 三角形一つしか表示されません。 また、 g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 ); を g_pd3dDevice->DrawIndexedPrimitive( D3DPT_TRIANGLESTRIP, 0, 0, 4, 0, 2 ); にすることで上記と同じ効果になるのかと思ったのですが、今度は三角形自体消えてしまいます。 どうしたら四角形が表示されますか?
162 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 09:26:56 ] カリングされてるんじゃないかね? SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE)
163 名前:161 mailto:sage [2007/12/25(火) 10:00:08 ] できました! あと頂点の順番?がおかしかったみたいで |X| ←こんな形になったけど、頂点入れ替えたら四角形になりました! ありがとうございます!  ̄
164 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 10:35:15 ] は? 頂点の順序が間違ってたのが原因、って事?
165 名前:161 mailto:sage [2007/12/25(火) 10:52:03 ] >>164 三角形が一つしか表示されないという問題は ->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); で解決したんですが、今度は頂点の順番がおかしいせいか欠けた四角形になったんです。 /| と |\ の三角形の組み合わせで |X| こんな形に  ̄  ̄  ̄
166 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 14:42:39 ] >>161 どうでもいいけどoct2004は9.0cだったと思うが
167 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 15:46:06 ] 疑問に思ったんだけど、四角形を描画する場合、頂点バッファを作ってDrawPrimitive()で描画するのと、 作らないでDrawPrimitiveUP()で描画するのとどっちが速いですか? 頂点バッファは頂点数が多いほど効果を発揮すると聞いたような気がするのですがどうなのでしょうか?
168 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 15:57:45 ] 疑問に思ったんだけど、なんで自分で試さないんですか?
169 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 20:21:12 ] >>167 DrawPrimitiveUPのほうが早いですよ。 多くの方が様々なOSやビデオカードで検証済みです。 とか言ったらこいつは何も考えずにDrawPrimitiveUP使うんだろな。
170 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 22:21:13 ] >>169 ありがとうございます。 やはり、頂点バッファは頂点数が多いほど効果を発揮すると言う事でしょうか?
171 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 22:23:17 ] >>170 そうです。Microsoftが検証済みです。
172 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 01:31:37 ] >>152 私も同じ事やろうとしたけど、どうも上手くいかないですね でもこの人の作ったゲームだと実装されているっぽいし… 本当にSetDialogBoxModeを使ってるのかなぁ この関数使ってまともにメニューが表示できた人っていますか? というかフルスクリーンのメニュー表示はみなさんどうやってます?
173 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 01:40:45 ] ステートブロックがいまいち良く理解できません。 1.普通のステート変更を最小限に抑えて変更する 2.(CreateStateBlock()で)キャプチャしたステートブロックを毎回適用する 3.カスタムステートシーケンス(BeginStateBlock()〜End...()まで)を適切に使用する と三つのやり方があると思うんですが、 何も考えずに2.のやり方でも効率的にできるんでしょうか。 それとも多少のやりくりは必要なんでしょうか。 ピュアデバイスだとステート変更は変更するたびに行われるんでしたっけ? ステートブロックの仕組みとかがわからないのでちょっと迷ってます。
174 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:30:21 ] 効率いいかなんてやってみればわかるだろ。アホか
175 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:47:54 ] このスレっていったいどんな質問なら答えてくれるの?w
176 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 03:02:27 ] パラドックス
177 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 04:01:19 ] 初心者ホイホイなのかな
178 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 07:20:42 ] 初心者であろうがなかろうが、自分で試せるものを試さないってのは単なる怠慢だと思うが。 やり方が分からないんであれば、どっちが効率的?などと聞くんじゃなく素直にやり方そのものを質問すべき。
179 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 13:52:41 ] このスレいらねーなwwwww
180 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:13:55 ] レンダリングステートを変更する事は、結構重いコストとして扱われるので、 Dx6まではコロコロ変化させずに、同じレンダリングステートのメッシュやターゲットを纏めて レンダリングしたり、ステートの変化が最小になる順番でステート郡をレンダリングしてたりしたんだけど、 ステートブロックを使えば、複数のレンダリングステートの変化を一度にデバイスに適用出きるので、 上記の事をあまり意識しなくて良いレンダリングループが作れるようになったわけ。 でも、別にレンダリングするターゲットやステートの種類によってはステートブロックを使わなくても そんなに処理が重くならないのも事実で、自分が作成しているプログラムでステートの変更が 重い処理だな、と思ったらステートブロックを試してみれば良いんじゃないの? GPUとGPUへのバスの帯域、レンダリングするプリミティブの数、ステートの変更量といった要因が あって、トータルで考える必要があるから、なんでもかんでも管理するのは効率的ともいえないし、 大規模エンジンを作るのに、ステートの管理コストを嫌って管理しないのも効率が逆に悪くなるし。 ケースバイで。効率的ってのは目的が無いと決定しない項目だから。
181 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:22:58 ] >重い処理だな、と思ったらステートブロックを試してみれば良いんじゃないの? そうなんだが、それを自分で試そうとしない輩が多すぎるな
182 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:19:34 ] VisualC++2005、DirectX9.0c SDK、Windows SDKの環境です。 キャラクターのアニメーション等をさせる場合、 画面を毎秒60とか30フレームとかで更新、のような処理をしなければならないと思うのですが その毎回の画面の更新タイミングはどのような手順で取るのでしょうか
183 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:38:29 ] >>182 自分で試せ
184 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:49:08 ] 何を試せばいいのでしょうか
185 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:57:16 ] 「ゲームループ」でぐぐれ
186 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:58:02 ] >>184 それを自分で試せ
187 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 20:00:24 ] 少し荒れてる状況で質問したのはタイミングが悪かったな
188 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 20:06:30 ] >>187 自分で試せよ
189 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 20:19:19 ] >>188 >>187 に言うなよ!w
190 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 20:21:58 ] マルチコア設計の描画エンジンだとステートブロック使うのは問題外の糞www というnVidiaあたりのプレゼン資料なかったっけ
191 名前:180 mailto:sage [2007/12/26(水) 20:58:26 ] >>190 まあ、実はステートブロックは、固定パイプライン時代の産物だから、基本的に レンダリングステートなんてほとんど変えずに、シェーダでやれってのがDirectX9以降の 正しいGPUの使い方なんだと思う。 こんなの、実は悩むところじゃないと思うな。 固定パイプライン使ってても、レンダリングステートの変更なんて大した 負荷になってないっぽいもんね。所詮DirectX7時代の話だし。 一々ステートブロック作らなくても十分高速に動いてるし。 ステートブロックの解説も怪しいところあるから、普通利用を避けるんじゃないかな。 >>173 は何故こんな事に疑問を持ったのか、謎だ。 (どこかの処理で実際に遅くなった、とかならわかるけど。)
192 名前:173 mailto:sage [2007/12/26(水) 23:38:39 ] え、いや、普通な感じで 実装前にセオリーとか聞きたいなって…荒れさせたようでごめん 忘れて >>180 さん、なんかすいません…とても参考になりました…どうもでした >>180 さん、ごめん、俺のせいで
193 名前:173 mailto:sage [2007/12/26(水) 23:39:49 ] >> >>180 さん、ごめん、俺のせいで >>182 さん、ごめん、俺のせいで の間違いです ホント申し訳ないw
194 名前:182 mailto:sage [2007/12/27(木) 00:22:56 ] >>185 ありがとうございます。_tWinMainの中でtimeGetTimeを使って 60分の1秒を数える方法を使ってみました Windowsゲーは同期とかはキニシナイでいいんでしょうかね >>193 いえいえキニシナイでください
195 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 02:19:50 ] >>194 いや、同期取らないと駄目だろ。
196 名前:182 mailto:sage [2007/12/27(木) 02:55:23 ] え?そうなんですか?>>195 さんはどういった手順でやってるんでしょうか
197 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:00:18 ] 俺は可変フレームレートのが好きだな 要は1フレームでどんだけ時間が進んだかで アニメーションの進行速度を変えればいいわけだから そんでフレームの終わりにフリップすれば
198 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 03:15:47 ] >>197 あれってどうやって実装してるの? フレーム間の時間をグローバル変数にでも格納して参照するんだろうか。
199 名前:デフォルトの名無しさん [2007/12/27(木) 04:22:17 ] DirectX9SDKを入れて、バージョンは8で開発したいんだけど、d3dx8.hとかないのね d3d8.hとかはあるのに。 どうすればいいんだろ。どっかでDirectX8SDKを見つけてこないと駄目かな?
200 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 04:41:19 ] 9のOct2004だけど、d3dx8.hあるよ。
201 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 07:28:08 ] 仕事でどうしても必要じゃなきゃ9使った方がいいと思うけど。 まあ9x系対応とかだとDx9のOct2006までじゃないとダメらしいが
202 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:23:51 ] >>199 リリースノートくらい読めよ・・せっかく日本語に訳してくれてるんだから。 ------ この DirectX SDK には次のコンポーネントは含まれていません Direct3D8 およびそれ以前の全てのバージョン Direct3D RM ・・・・・・ これらのコンポーネントを使いたい開発者は、 MSDN から August 2007 DirectX SDK をダウンロードする必要があります。 ~~~~~~~~~~~~~~~~~~~~~~~~~
203 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:26:15 ] まあオーガスト2007だと8で作る意味が全くなくなるけどな
204 名前:デフォルトの名無しさん [2007/12/27(木) 11:12:48 ] DirectX9でゲームを作ってたんだけど、DirectX9の独自の機能使ってないし、誰でもすぐに遊べる様にしたいからDirectX8にしたかったのさ。 >>200 >>202 サンクス。 とりあえず古いバージョン拾ってみよう。古いバージョンで上書き出来ればいいけど >>203 そうなの? 結局XPの初期状態とかで動かないのかな?
205 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 11:56:09 ] >>204 だからリリースノートを読めと。 ---- すべてのプラットフォームでのインストール上の注意 ・現在の DirectX SDK をインストールする前に、DirectX SDK の前バージョンを削除することを推奨します。 ---- どのバージョンがどのOSに対応しているかも全てリリースノートに書かれている。
206 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 12:19:57 ] もう、ほっといた方がいいかと。 一度受けた注意を怠るわ、質問している立場なのに偉そうだわ。 d3dx8.hの話にしても、>>104-105 で出てた話題なのに、 同じスレ内ですら検索かけてないし。
207 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:19:57 ] 2Dの描画で描画数がかなり多くなるため(1フレームに3000程度の数字テクスチャを描画)頂点バッファを利用して 1フレームに頂点バッファ一括ロック→memcpy→アンロック→DrawIndexedPrimitive としているのですが、3000個描画するとシーン時間が6〜7ms程掛かってしまいます(それなりに良いスペックのPCで) 6000ポリゴン程度の描画でこんなに時間が掛かるはずがないと思うのですがやり方が間違っているのでしょうか?
208 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:40:20 ] なんかmemcpyがボトルネックになってそうだけど どの処理に一番時間がかかってるのか もうちょっと絞り込んだ方がいいんじゃない?
209 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 14:43:44 ] まず対照実験として、画面をクリアするだけで何も描画しない場合の速度を計るべきだと思う。
210 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 16:53:43 ] ロック/アンロックが臭いと思うな。変なロックは速度に影響でかいから。 ロックを止めて、ダミーバッファにmemcpyする処理に置き換えてフレームレートを計測したら? あと、頂点バッファは、まとめてる?ロックがボトルネックなら、頂点をまとめて1フレームにロックする回数を 1回にしてしまった方が良いよ。 それと、毎回コピーする頂点の計算処理は重くない?
211 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 20:04:19 ] ところで、そろそろ>>152 の質問に回答してくれる方はおりませんでしょうか? ネットを漁り、アキバでDirectX関連の参考書を読みふけりましたが どこもこの問題についてはあえて避けてるようにしか思えません SetDialogBoxModeをマスターされました神様、いらっしゃいましたらお願いします とりあえず、フルスクリーンでメニューとダイアログが表示できるようになればいいので いい解決方を知っている方でも大歓迎です
212 名前:デフォルトの名無しさん mailto:age [2007/12/27(木) 20:05:35 ] 斜め投影した場合、投影されたCGがあえて歪んで見えるようにしたいです。 どこをいじればいいか教えてください。
213 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 20:16:28 ] >>211 全ソース付のサンプル、か。 google code search で SetDialogBoxMode で検索したら結構引っかかったんだけど、やってみた? 検索結果の始めのほうはラッパのヘッダとか意味ないのばっかだけど 結果の後の方まで見てみると結構有用っぽいのがちらほら。Lunaとかも引っかかってたり。 ただライブラリ系ばっかでサンプルになるかどうかは分からん。
214 名前:207 mailto:sage [2007/12/27(木) 20:43:50 ] レスありがとうございます やはり描画部分が結構重いみたいです… 1フレーム当たりの時間が ロック/memcpy/Drawを一切しない → 80μs ロック→16000頂点分memcpy→アンロックでDrawしない → 450μs 一つ上の条件でスプライトを2000個描画 → 3210μs いずれも他の描画以外の処理を含む時間で、memcpyは実際には描く分だけのサイズで行うので最悪条件でテストしています
215 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 21:46:38 ] ロックしない/memcpyしない/アンロックしない/Drawする っていうのも測った方がいいと思う。 頂点データがないのはアレなんで、計測外で初期化時にでも放り込んでおいて。
216 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 21:56:46 ] PIXで、実際どのAPIが時間食ってるか調べてみたら? GPUが忙しいのか、CPUが忙しいのか、プログラムが悪くってどっちも 遊んでる状態になってるのか、それを切り分けないと始まんないと思う。 あと、スペックに対しての期待値がどれくらいで、3210はどの位そこから遅いのか? SDK付属ドキュメントの「Direct3D API 呼び出しの正確なプロファイル」あたりは一回読んでる?
217 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 22:23:55 ] >>211 今てきとーに使ってみたら一応表示はできるみたいだがのー。 D3DPRESENTFLAG_LOCKABLE_BACKBUFFER忘れてるとかそんなオチじゃないよね? しかし案の定XPとVistaじゃ挙動違うっぽいし、あんまし深入りしたくねぇなこれ。
218 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 22:35:28 ] Dialogは普通に表示出来たけどメニューは あんまりメリット感じないから使った事無いや。
219 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 23:35:17 ] PIXの使い方がわからねぇ
220 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 02:02:20 ] おれもおれも まぁちょっとだけならわかるけど つっこんでは分からねぇ
221 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 03:43:50 ] 助けて 頂点テクスチャフェッチのためにVertexShaderでtex2Dlod(Sampler,float4(In.tex,0,1))すると真っ黒になってしまいます float4(In.tex,0,0)、float4(0,0,0,1)などでも同様でした テクスチャのフォーマットはA32B32G32R32Fで、SM3.0にも対応しているのですが tex2Dlodなどでぐぐってみたところ、MSのフォーラムなどで似たような症例がありましたが解決策がよくわからず・・・ 原因に何か心当たりある方はいないでしょうか?
222 名前:221 mailto:sage [2007/12/28(金) 04:29:27 ] ちなみにサンプラーは MinFilter = Point; MagFilter = Point; MipFilter = None; AddressU = Clamp; AddressV = Clamp; です
223 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 12:36:06 ] 等高線の形どおりに厚紙を切って重ねると、立体地図が作れますよね この立体地図をプログラムで描画したいのですが、躓いてしまいました 今手元には等高線が書かれた白地図があるので 「等高線ごとに領域を分割し、各々に高さを与える」 といった処理にしようと思ったのですが、等高線ごとに領域を分割というのがどうしたらよいのか見当がつきません このような処理の実現のしかたを教えてください よろしくお願いします
224 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:06:56 ] ダイレクトX関係ないじゃんといいたいが ・等高線が作る一つの輪を1リングとし、リング毎の高さと領域情報を保持 ・高さの同じリングをまとめたものを1グループとして管理する ・グループ毎にY座標を変えて表示する でいいだろ もちろん、外壁も表示するのには各リングの輪郭線から頂点を自動算出して 外壁ポリゴンも作らんといかんけど
225 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 14:00:34 ] すみません 3次元空間内の物体をピック処理をして、マウスの移動量で移動させたいのですが ピックするところまでいったのですが その後マウスの移動分動かすのはどうしたらいいのかわかりません。 初期値→移動後のマウス座標を得て、それをどのように3次元空間の座標に戻すのか 視点が回転したときに、xyzの移動量と向きはどうしたらいいのか この二つがわからなくて壁に当たってしまいました。 ご指南お願いします
226 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 15:16:38 ] >>225 視点から注視点の面上にあるポイントを結んだ物がマウスポインタのベクトル。 そのベクトルを対象オブジェクトまで伸ばし、ベクトルが変化した分だけ移動させればいい。
227 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:45:15 ] すいません>>212 もお願いします。
228 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 16:48:14 ] | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | お断りします | |________| ハ,,ハ || ( ゚ω゚)|| / づΦ
229 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 17:02:14 ] >>227 質問が抽象的すぎ >斜め投影した場合 >投影されたCG >歪んで それぞれ具体的に
230 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 17:16:14 ] >>212 誘導 つttp://pc11.2ch.net/test/read.cgi/tech/1187922645/ 自分の質問を読んで、他人が内容を把握出来なければ、 ただでさえ少ない回答が0になるだけだよ。 >>223 >>224 もし、等高線毎に外周形状のみ与え、後は自動って言うのなら、 等高線が穴を含む形状の場合にめんどくさくなると思う。 形状に含まれる穴の数(トポロジー)に応じて、輪郭に対する 三角分割のアルゴリズムが変わるんじゃないかな? 穴が無ければD3DPT_TRIANGLEFANで外周頂点を与えれば良いので楽だが・・。
231 名前:224 mailto:sage [2007/12/28(金) 17:42:08 ] >>230 山の事しか考えてなかったな 穴がある形状を考えるのを忘れてた まあ、そもそも論として線だけ書かれたデータをそのまま読み込んで 処理しようとすんなら無理があるわな
232 名前:デフォルトの名無しさん [2007/12/28(金) 18:33:17 ] 頂点テクスチャフェッチ使えばできる 等高線の領域ごとにハイトデータで塗って 細分化した平面ポリゴンに適用すればできる 線のみからでもハイトデータを領域の関数で割り当てればできなくもない 自分ができないだけなのに威張ってるプログラマってカコワルイよね
233 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 19:39:05 ] すみません、始めたばかりのところで理解できないのがあるのですが デプスバッファの深度を書き込む/書き込まない というのがあったのですが、そうすることでどうなるのでしょうか デプスバッファ、というバッファ(1枚?)にZ値を書き込むというのはわかったのですが 書き込まないと、そこはどうなるのでしょうか? いまいち何をしてるのか、したいのかが把握できなくて
234 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 19:39:36 ] 抽象的すぎてすいませんでした。 Xファイルを読み込んでCGを画面の中央に描画しているのですが、 そのCGを映しているカメラの位置をキー操作で変更できるようにしています。 で、カメラの位置を変更した場合に、 www.beamax.co.jp/Projec/PROJECframe.html の「斜め投影」の項にあるように歪んでみえるようにしたいのです。 D3DXMatrixIdentity(&m_view); D3DXMatrixLookAtLH(&m_view, &D3DXVECTOR3( cameraX, cameraY, cameraZ),//カメラの位置 &D3DXVECTOR3( 0.0f, 0.0f, 0.0f),//カメラの向き &D3DXVECTOR3( 0.0f, 1.0f, 0.0f));//カメラの傾き pD3DDevice->SetTransform(D3DTS_VIEW, &m_view); 一部ですが今こんな感じでカメラ配置をしています。 cameraX,cameraY,cameraZ はキー操作で増減するようにしています。 プログラムは、ソフトバンクの「DirectXゲームグラフィックスプログラミングVer.2.1Vista」という本を参考にしています。 よろしくお願いします。
235 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 19:57:46 ] >>232 そりゃ失礼。
236 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 19:58:40 ] まぁ、>>232 も最後の1文は余計な一言だな
237 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:10:41 ] >>233 最終的にスクリーンに描画するときに 各ピクセルに色を塗ると同時にそこにある物体が カメラからどれくらいの距離にあるかをZバッファに記録しておく そうすると 別の物体を同じピクセルに描画しようとしたときに Zバッファの値を参照して 以前の値よりカメラに近ければ 新たな色を塗りZバッファの値も書き直す 以前より奥にあるものなら色をぬらない、という処理が可能になる これをしないと後から描画したものでどんどん色を上書してしまうので 奥にあるはずのものが手前にあるものの上に描画されてしまう したがって描画するときに奥にあるものから描画するというようなソート処理が必要になる
238 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:38:08 ] >>234 それはビューの設定とは無関係 カメラの位置を変えたって、そんな変化は起こさないだろ オブジェクト側を調整しろ
239 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:45:34 ] >>237 さん 回答ありがとうございます つまり ______ |近 遠 近 … | Z値が書き込まれていって、それを参照するわけですね。 これは2次元平面に射影された状態ですよね ある物体○△□が 奥行き方向に1列に並んでたとき 物体ごとにデプスバッファに ○ 書き込む 遠い △ 書き込まない ↓ □ 書き込まない 近い としたら、最終的に一番近いのは□ですが、○が描画される、ということになるのですよね?
240 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:27:37 ] >>232 ? 線のみから求めてるわけじゃないじゃん 結局手動で山と穴の区別をつけたデータが必要だろ?
241 名前:223 mailto:sage [2007/12/28(金) 22:31:06 ] >>223 です 皆さんありがとうございます 231さんが仰るように「線だけ書かれたデータをそのまま読み込んで処理」というものを想定していました 穴を含む形状については今は考えず、概形が出来上がった後に改めて考えることにします 頂点テクスチャフェッチなど初めてきく言葉が沢山あるので、まずは片端から調べてみます ありがとうございました
242 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:41:03 ] >>239 違う 基本的に描画関数を呼んだ順に描画されるので ○△□の順番で描画した場合は問題ないが □△○や△□○の順で描画した場合 一番遠いところにあるはずの○が一番上に描画されてしまう それを防ぐために先に近いものが描画されていたら それより遠いものを描画しないためのもの
243 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:56:49 ] >>242 さん 何度もありがとうございます。その点は理解できました。 描画の時にデプスバッファに書き込む物体と 書き込まない物体が混在したときにどうなるのでしょうか。 そこがわからなくて。 最終的にデプスバッファに書き込んでいる物体がちゃんとならんで デプスバッファに書き込まない物体は描画順ということになるのですよね
244 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:58:38 ] >>213 >>217 ありがとうございます そのオプションをつけてウィンドウスタイルなどをいじってみたら、 開発環境のXPマシンだと、一応は表示されるようにはなりました ですが、フルスクリーン→ウィンドウへと切り替えた場合に ウィンドウ化しなかったり、古い98マシンで試してみた所 メニューを表示した瞬間に画面が激しくちらつくようになってしまったり ダイアログは表示されなかったりと、挙動が酷くおかしいようです とりあえずもう少しだけ教えていただいたサンプル等と見比べて 頑張ってみようと思います 最近のエロゲーとか、ホントこれどうやってるんでしょう? やっぱり、DirectXで描画したなんちゃってメニュー&ダイアログなんですかねぇ
245 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:07:58 ] そもそも標準のメニューを使っているようなエロゲーはDirect3Dなど使っていない。
246 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:23:28 ] いや最近のエロゲは結構DirectX使ってるよ とりあえず今入ってるはぴねすってエロゲーはDirectXで動作してるし フルスクリーンメニューもちゃんと出てる
247 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:28:55 ] もはや3Dも2DもDirectGraphicsで統合されてるし
248 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:32:23 ] メニューやダイアログを表示中に ゲーム画面が変化しているやつは見た事無いから、 そこに解決の糸口があるんじゃないかな。
249 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:47:57 ] メニューループにはいったら普通に他は止まるだろ
250 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:50:33 ] まさかとは思うが、メニューがある場所に、自分で別の物を描画しておきながら、 ちらつくとか表示されないとか馬鹿なことをぬかしているわけじゃないよな?
251 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:13:29 ] >>250 ちらつく、というのはWin98環境の方だけで、XPでは画面上に しっかりと表示されているので、それはないかと思います >>248 いくつかフルスクリーンメニューのあるゲームを起動してみたところ どうもメニューが出た時に画面が下にずれているものが多いようです なんとなく思うのは、これはDirectXでのフルスクリーンモードではなくて 実際にはウィンドウモードなのではないかと。 画面いっぱいのクライアント領域をもつメニュー付きの通常ウィンドウを作って、 必要に応じてウィンドウを縦方向にずらしてメニュー表示しているのでは? それが可能だとすると、環境によって挙動があやしげなSetDialogModeに たよるよりも安定しそうな気もします SetDialogModeはおいといて、まずこの方法でできるかどうか試してみようかと思います
252 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:53:25 ] システムに依存することは止めたらどうかね?
253 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:02:19 ] となるとダイレクトXなんて使えたもんじゃありませんな
254 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:04:43 ] システムに依存しないWindowsプログラムってどんなんだよ
255 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:56:38 ] 問: 次の条件を満たすプログラムを作成せよ。(30点) 1) システムに依存しない 2) Windows上で動作する
256 名前:デフォルトの名無しさん [2007/12/29(土) 14:06:22 ] Javaを使うお
257 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 14:53:21 ] Javaか
258 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:42:42 ] DirectXのサイトって数が多い分今の自分に合ってるの探すのがきつい・・・ せめてSDKの日付とかあって欲しい。 あの,Direct3Dのプログラミング始めたいんですが何をそろえればいいですか? バージョンは9.0でやろうとしているんですが、パッケージによって違いとかあるんですか? もう1週間くらいネットを這いずってるんですが良く分かりません・・・お願いします。
259 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:47:00 ] Javaだな
260 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:51:05 ] >>258 ネットが活用できないのなら本屋に行け。
261 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:04:48 ] さすがJavaだな
262 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:06:21 ] 実際Javaって使い物になるの? 携帯ゲームなら有りかもしれないけどさ
263 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:11:38 ] 何を作るかによる。 目的を定めずに手段だけを論じるのは愚か者の極み。
264 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 18:16:38 ] >>263 そういうのはいいから。
265 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 18:24:36 ] スレ違いの質問に対して答えをいただけただけでもありがたいと思え
266 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 18:37:54 ] >>258 もう書かれているがマジレスすると、AmazonでDirectXで検索して、 初心者向けで売れてる本を一冊でも買ったほうがいいと思う。 別に本が優れてるとかじゃなく、ネットの活用が上手くなくて、SDKについても何も分からないんであれば 本に頼るしかないだろう。
267 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:00:02 ] >>266 ご指南ありがとうございます。 どうか最後にこれだけ教えてもらえないでしょうか? Microsoft DirectX SDK (November 2007)だけあればできますか?
268 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:12:20 ] Visual Studioが必要です。
269 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:13:35 ] パソコンも必要です
270 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:27:50 ] 気力も
271 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:28:26 ] あとはJavaだな
272 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:35:57 ] >>267 Windows上でここに書き込んでいるんだとすれば、ソフトウェアとして最低限必要なのは開発環境とSDKだけ
273 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:08:24 ] Macなのですが、無理ですか?
274 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:12:36 ] Intel Mac なら Windows をインスコすればいい。
275 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:13:12 ] >>273 Javaならok
276 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:15:34 ] 何この流れ 釣りは無視しろよ
277 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:16:09 ] Javaの人気に嫉妬
278 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:17:10 ] >>256 がJavaを使うなんて言ったばっかりに・・・
279 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:17:34 ] >>272 まじであざーした! がんばってみます。
280 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:05:22 ] xファイルから得たポリゴンの任意の点の座標を変更する、ってのはどうやったらできる?
281 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:09:44 ] データが入っている場所の頂点データをいじれよ。
282 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:33:38 ] >>280 メッシュというと複雑そうにみえるが、中身は頂点バッファやインデックスバッファその他もろもろが集まってるだけ なんでまずはロックなど頂点バッファの基本的な操作さえ覚えてしまえば後は流れ的にJavaが全て解決してくれる
283 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:14:12 ] JABAすげー
284 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:17:13 ] Japan Amateur Baseball Associationか
285 名前:152 mailto:sage [2007/12/30(日) 01:39:13 ] こんばんは、>>152 です。 画面いっぱいのウィンドウの方はできないこともなさそうな感じではありましたが 大きい→小さい画面への変更で、デスクトップアイコンや他アプリの位置等がずれるため やめることにしました その後もう一度SetDialogBoxModeのやり方でウィンドウのフラグをあれこれいじってみたら フルスクリーン→ウィンドウでも上手くいくようになりました うちにある家族用の別メーカーのXPマシンでも正常動作したようなので、 まあ、今時Win98で動かなくてもしょうがないかなぁと自分を納得させる事にしました ささっていたビデオカードも、 GeForce4 MX440 SE というかなり昔のボードで ドライバの配布すら終了している代物でしたので このボードのドライバがDirectX9.0cに完全対応していなかったのかも知れません 質問に答えてくれた方々、どうもありがとうございました。
286 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:45:57 ] XP以上のみサポートでぶっちゃけ問題ないよ。
287 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:10:30 ] シェーダで3次元テクスチャを二つ載せようとしたのですが なぜか片方しか表示されません。 3次元テクスチャ1つと1次元テクスチャ1つは問題なかったのですが なぜ… やり方教えてください
288 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 14:51:57 ] DXライブラリみたいにビデオメモリに 直接アクセスするのってどうやるんでしょうか?
289 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 15:01:00 ] ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/graphics/programmingguide/tutorialsandsamplesandtoolsandtips/samples/clipvolume.asp すいません、これを試してみたいのですが どこからDLしていいのかわかりません。 といいますか、どのSDKなのかわかりません これの実行ファイルかソースうpってもらえませんか?
290 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 15:46:13 ] >>289 DirectXのSDKをインストールすると入ってるよ
291 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:24:52 ] >>290 前にインスコしたSDKには入ってなかったのです。 Microsoft Platform SDK for Windows Server 2003 R2 また400MBも落とすのに○時間も掛かるのはシンドイっす
292 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:50:44 ] _, ._ (;゚ Д゚)
293 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:08:18 ] PlatformSDKは、まぁ、ボケなんだろうけど サンプルはSDKのバージョンによって中身がかわってるからな 少なくともAugust2007には入ってなかった でも手元にあった9.0bSDKのCDには入ってたので デベロッパセンターに行って Updata〜とついてないSDKを落とせばたぶんついてくるんじゃね?
294 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:43:16 ] >>291 軽量版があるからこっち使え java.sun.com/j2se/1.4.2/download.html
295 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 19:25:24 ] JAVAネタ、いい加減にしつこい
296 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:00:51 ] >>292-293 ボケたつもりはなくて、、、これがSDKだと思ってました。。。 >>294 ありがとうございます。見てみます
297 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:01:26 ] …JAVAですか。 確認する前に書き込んでしまいました
298 名前:デフォルトの名無しさん [2007/12/31(月) 08:36:54 ] 自機・フィールド共にXファイルから読み込んで、3Dゲームを作っています。 自機と地面や壁との衝突判定をさせたいんですが、Xファイルから自動的に描画されているので、自分でも壁の座標が分からないです。 壁や地面の座標はどうやって求めればいいんでしょうか?
299 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 09:00:36 ] そもそも自動で描画されるなどあり得ない。
300 名前:298 [2007/12/31(月) 09:56:49 ] すみません。自動的というのは、頂点の座標を自分で把握していなくても描画ができるという意味です。 SDK Tutorial6のソースをほとんどそのまま利用しています。 計算式はぐぐれば出てくるんですが、計算するための座標がどこなのかが分かりません。
301 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:01:01 ] まさかチュートリアルの1から5を飛ばして6やってるって オチじゃあるまいな?
302 名前:298 [2007/12/31(月) 10:10:29 ] ! 4,5飛ばしてました。 今から見てきます。
303 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:35:16 ] たまにエスパーが現れるから困る
304 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:32:44 ] OpenGLのglFrustum()という関数をDirectXで実装しようとしています。 glFrustum()については以下のURLに解説がありました。 kaoken.no-ip.com/brew/index.php?im_id=glFrustum このURLで出ているGL_PROJECTION というのは、おそらくDirectXでいうD3DTS_PROJECTION だと思っているのですが、 このD3DTS_PROJECTION の使い方がよくわかりません。
305 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:58:19 ] CheckDeviceMultiSampleType() でビデオカードがマルチサンプルに対応しているか調べたのですが、 自分のものだと対応していないことが分かりました。 ビデオカードのメーカーのページにはこれに対応しているかどうかの記述がないようですが、対応している ビデオカードはどのようにして見つければよいでしょうか?
306 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:24:28 ] 引数間違っている可能性が高いような。 非対応見つけるほうが大変でね?
307 名前:305 mailto:sage [2007/12/31(月) 17:41:23 ] >>306 え!? 自分のカードはGeForce 8600GTで、関数の引数は以下のようにしました。 m_pD3D->CheckDeviceMultiSampleType( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL , D3DFMT_R8G8B8, FALSE, D3DMULTISAMPLE_2_SAMPLES, NULL ) ) ) 戻り値は D3DERR_NOTAVAILABLE でした。 最初の引数を pCaps->AdapterOrdinal としても同じでした。
308 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:07:52 ] てか8600GTは D3DFMT_R8G8B8フォーマットをサポートしてるのかい? 最近のだと D3DFMT_X8R8G8B8とか D3DFMT_A8R8G8B8とか
309 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:50:25 ] >>307 D3DFMT_R8G8B8 なんて、バックバッファはおろか、テクスチャのフォーマットとしても 対応してるアダプタなんて現時点では存在しないぞ 素直に D3DFMT_X8R8G8B8 でやれ
310 名前:305 mailto:sage [2007/12/31(月) 20:57:54 ] >>308 >>309 ありがとうございます。 D3DFMT_A8R8G8B8で対応してました。 実際の効果を見てみたのですが、通常のレンダーターゲットに描くときはしっかりと効いていました。 しかし、どうもアプリ内で用意したテクスチャをレンダーターゲットにすると、そこでは効かないようです。 なぜなら、レンダリングしたテクスチャを板ポリに貼り付けて通常のレンダーターゲットの全面に表示 すると、ジャギーが強く残っているからです。 (テクスチャ解像度はレンダリング対象の1/4と低いものの、AAがかかった痕跡が見られません) テクスチャをレンダーターゲットにしたときもAAが効くようにするにはどうすれば良いでしょうか??
311 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:58:20 ] 今DirectDrawとDirect3Dの機能をそれぞれクラス化してるんですけど、 このクラスのインスタンスを作るとき何をstaticにして何をインスタンス作ったら いいですか?Direct3D複数作ったらなんかやばいんでしょうか?
312 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:09:40 ] >>311 質問の仕方が悪すぎる。あんたのクラスの設計も具体的にやりたいことも わからないのに答えられる問いではないよ。 とりあえず「Direct3D複数」がIDirect3D*とIDirect3DDevice*のこと言ってんなら 複数作成するのは稀だから、まだ余計なこと考えなくていいよ。
313 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:09:48 ] 貴様のオナニーの仕方なんぞどうでもいい
314 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 02:28:26 ] ttp://www.cmagazine.jp/books/effect/index.html この本を買ったのですが、Part2の波のデモが動きません。 プロジェクトをコンパイルしようと思ったら、.net 2002なのでできませんでした。 グラボはGeForce 8600GTです。 上のサイトから、そのサンプルをダウンロードできるので、みなさんは動くか試してもらえますか?
315 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 02:40:29 ] 何も表示されないのかウィンドウすら表示されないのかエラーで起動しないのか。 「どう」動かないのかを書きましょう。
316 名前:314 mailto:sage [2008/01/01(火) 03:20:09 ] >>315 すみません。 デモのプログラムは起動するのですが、波のサンプルの場面で、波が発生せず、真平らな板ポリ 状態になっています。 波は随時勝手に発生するプログラムのはずなのですが・・・
317 名前:311 mailto:sage [2008/01/01(火) 09:53:29 ] >>312 すいません。そしてありがとうございます 寝ぼけてて文章まとまってなかったんですが、 ふつうDirectDrawをウィンドウモードで使う場合はLPDIRECTDRAW+LPDIRECTDEVICEを1つ作って サーフェイスを必要なだけ作ってプライマリに転送で十分ですよね? ただウィンドウを複数作るならウィンドウ1つにつきLPDIRECTDRAW+LPDIRECTDEVICE1つ用意 ということでよろしいでしょうか?
318 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 10:26:32 ] あけましておめでとうございます。 こちらはManaged DirectXについての質問もOKでしょうか? Managed DirectXスレが11月で止まってしまっているので…。
319 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 10:27:03 ] >>316 確かにそのままだと動かないね 7900GTでは普通に動いてて そっちで自分用に書き直したプログラムは 8600GTでも普通に動いているのだが・・・ どこ直したのか覚えてないや
320 名前:314 mailto:sage [2008/01/01(火) 14:14:29 ] >>319 けっこう環境に左右されるみたいですね。 自前で組んでみようとしましたが挫折しました。 ありがとうございました。
321 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 16:33:49 ] >>304 お願いします
322 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 17:13:13 ] >>321 OpenGL // 行列モードに射影行列を選択 glMatrixMode(GL_PROJECTION); // 射影行列を生成 glFrustum(,,,, DirectX(固定機能パイプライン使用) //射影行列を生成 D3DXMATRIX matProj ; D3DXMatrixPerspectiveFovLH(&matproj,,,,, //デバイスに射影行列を渡す device->SetTransform(D3DTS_PROJECTION, &matProj); 頂点シェーダを使って行列変換をするなら D3DTS_PROJECTIONは使わない 直接生成した行列をエフェクトに渡すなりすればいい
323 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 17:18:30 ] あ、すまない glFrustumなら D3DXMatrixPerspectiveOffCenterLH のほうが近いか
324 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 17:20:25 ] そして、さらに連投すまそ OpneGLは右手座標系だったね D3DXMatrixPerspectiveOffCenterRH ってことで
325 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 17:45:33 ] 丁寧にありがとうございます。 つまづいたらまた質問させてください。
326 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:29:11 ] c#でMDIなフォームに対して、親フォーム、子フォーム、各コントロールを DirectXで描画しようとしてよく分からなくなっています。 SwapChainとかいうのを描画対象の分だけ作るというところまでは 調べたのですが、具体的にどういう風に書けば良いのかが分からず、解説サイトを 探しているのですが、ヒットしない状況です。 c#で、そこら辺を解説してあるサイトがありましたら、教えていただけますでしょうか。 よろしくお願いします。
327 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:04:55 ] すいません。 今、DirectX 9.0SDKを使っているのですが、 DirectX関連の書籍を購入したら、付属のCDに、DirectX SDK (Fedruary2007)が入ってました。 このバージョンをインストールした場合、9.0SDKを使ってた時に作った物が 動かなくなる可能性はあるでしょうか? Fedruary2007の方は、DirectX9に対応しているSDKのようなのですが、 何か心配なので教えてください。 両方共、殆ど同じ仕様なら良いのですが・・・
328 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:22:47 ] >>327 ほとんど同じではあるが まったく一緒ではないんで動かなくなる可能性はある メッシュやエフェクト関連で 互換性の無い変更があったので・・・・ まぁ、でもいつまでも旧バージョンに しがみついていられるわけでもないので いい機会だからさくっと修正してみるのも良いかもしれない たいした変更ではないしね
329 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:33:37 ] >>328 そうですか。 ありがとうございます。 メッシュ機能も使ってるので、ちょっと恐いですが、 ほとんど同じなら、動かなくならない事を祈って新しい方に変更してみます。
330 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 16:14:48 ] DirectX9.0cで、モニタの解像度を切り替えられるようにしたいのですが、 プログラムが実行されるPCでの利用可能な解像度を取得するには どのようにすればいいのでしょうか
331 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 16:57:25 ] >>330 // 適当 int retW[32] ; int retH[32] ; // 引数は自分の調べたいアダプタとフォーマットで int num = (IDirect3D9)->GetAdapterModeCount(D3DADAPTER_DEFAULT, D3DFMT_X8R8G8B8 ) ; for ( int i = 0 ; i < num ; i++ ){ D3DDISPLAYMODE dm ; DXUTGetD3DObject()->EnumAdapterModes ( D3DADAPTER_DEFAULT, D3DFMT_X8R8G8B8, i, &dm ) ; retW[i] = dm.Width ; retH[i] = dm.Height ; }
332 名前:330 mailto:sage [2008/01/02(水) 16:59:51 ] DXUTGetD3DObject()は忘れてくれ そこは自分の作ったIDirect3D9インターフェースで
333 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 18:35:06 ] 線分を描画する際、線分の太さを変更したいのですが可能でしょうか?
334 名前:333 mailto:sage [2008/01/02(水) 19:05:16 ] 自己破産しマスタ
335 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:27:13 ] >>331 ありがとうございます。うまくいきました
336 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:31:34 ] 3Dを回転させるのにクォータニオンを使おうと考え色々と調べたのですが思うように回転してくれません。 D3DXQuaternionRotationAxisを使う時に回転の軸を設定する必要があるようなのですが、この軸の設定がいまいち分からず・・・。 どうかこの回転の軸の設定をどうすればいいのか教えてください、お願いします。
337 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:51:54 ] >>336 Matrixでyawrollpitchから生成して、matrix to quoternionで変換したら?
338 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:52:43 ] >>336 クオータニオンでググれよ。
339 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 14:22:30 ] 640×480の画面と800×600の画面で全く同じ画面イメージで描画したいのですが スクリーン座標を変換するのをDirectXが自動でやってくれるような設定はありますか? それともバックバッファサイズを統一するとか自前で座標変換するかしかないですか?
340 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 15:33:29 ] 誰か ttp://msdn.microsoft.com/library/ja/DirectX9_c/directx/htm/idirectdrawclippergetcliplist.asp の引数の説明の解説求む(;ω;) ↓がダメなんじゃが・・・ RECT rc={0,0,640,480}; RGNDATA rgn={0}; DWORD size; if(FAILED(surface->GetClipper( &clipper )))return; if(FAILED(clipper->GetClipList( &rc ,&rgn,&size)))return; <-ここで終ってる
341 名前:330 mailto:sage [2008/01/03(木) 16:02:08 ] >>339 ビューポートの設定をきちんとすれば アス比も一緒だしまったく同じように描画されるはずだが >>340 SetしてないものをどうやってGetするんだ? てか、戻り値が何かくらいチェックして報告しろ
342 名前:340 mailto:sage [2008/01/03(木) 16:52:23 ] >>341 早速ありがとうございます。m(_ _)m戻り値は引数エラーのコードでした。 アホな発言かもしれないですけど、もしかしてプライマリサーフェイスって PCのディスプレイのサイズで作られるんですか?
343 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 17:40:37 ] >>341 レスありがとうございます。ですがさっぱりわかりません。 2Dのスプライトを同じようにしたいのですが 640×480と800×600の場合、ビューポートというのは どのように設定すればよろしいのでしょうか?
344 名前:339 343 mailto:sage [2008/01/03(木) 18:18:04 ] ちなみに今だとD3DXMatrixTransformation2Dで2D座標を取得する際に 拡大比率のX,Yの値に ( 800 pixsel / 600 pixsel ) = 1.25 を指定しています ビューポートというのを設定するとこのやり方より処理は軽くなりますか?
345 名前:339 343 mailto:sage [2008/01/03(木) 18:19:25 ] 800 / 640でしたorz
346 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 19:25:21 ] >>345 なんでそういう質問が出るのかがよくわからんが一般的に D3DVIEWPORT9 vp; vp.X = 0; vp.Y = 0; vp.Width = 640; vp.Height = 480; vp.MinZ = 0.0f; vp.MaxZ = 1.0f; (device)->SetViewport(&vp)); と設定すれば 射影行列変換後の座標を 640x480のスクリーン座標に自動変換してくれる どういう射影行列をつくってるのかは知らんが 射影行列変換後までの座標は x=-1〜1、y=-1〜1、z=0〜1となり どれらいのスクリーンに引き伸ばすのか?というのが ビューポートだと思えばいい
347 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 19:25:57 ] www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla%3Aja%3Aofficial&hs=eEN&q=%E3%83%93%E3%83%A5%E3%83%BC%E3%83%9D%E3%83%BC%E3%83%88+%E8%A8%AD%E5%AE%9A+directx&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
348 名前:339 343 mailto:sage [2008/01/03(木) 19:56:50 ] >>346 たびたびすいません。それってスプライトの座標指定を-1〜1の座標で 指定しなくてはいけないと言う解釈でいいのでしょうか? 例えば640×480のフルスクリーンの画面上で、スプライトの座標をX = 64,y = 48という 座標で指定した場合の見た目の位置と同じところに 800×600のフルスクリーン画面上でx=64,y=48というスプライト座標を指定した時に 画面上の同じあたりの位置に表示したいという事なんですが そこで示されてるようにビューポートを指定するとこのようにできるのですか?
349 名前:339 343 mailto:sage [2008/01/03(木) 20:00:53 ] ちょっと説明が足りませんでした スプライトの描画時にx=64、y=48という座標を指定した場合に 640×480の画面の場合はX=64、y=48 800×600の画面の場合はX=80、y=60の位置に描画したいという事です
350 名前:298 [2008/01/04(金) 06:27:46 ] SDKのサンプル見たんですが、やっぱり分かりません・・・ SDK Tutorial6のトラの代わりに、地面に見立てた板ポリゴンのXファイルをロードしています。 地面との当たり判定は(自機の高さ - 自機から垂直に降ろした直線とポリゴンの交点の高さ) でできると思うんですが、"自機から垂直に降ろした直線とポリゴンの交点の高さ"の求め方がさっぱり分かりません。 かなり検索したんですが、数学的な解説しかしているサイトがなくて、肝心な、自分が分からない部分が書かれているサイトが見つかりません。 ヒントか答えか参考になるサイトがあったら教えてください。
351 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 08:28:10 ] Xの読み込みをD3DXに頼らないでやるところから始めろ。 そうやって怠けて手抜きをするから途中で詰まる。
352 名前:298 mailto:sage [2008/01/04(金) 08:59:56 ] >>351 D3DXライブラリというやつですか? なんか難しそうですがやってみます。
353 名前:喜一 [2008/01/04(金) 14:12:47 ] くだらない質問なのですが・・・ DirectXをアップデートするにはどうしたらよいのでしょうか・・・
354 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 14:37:39 ] >>353 SDKでしたらこちらで www.microsoft.com/japan/msdn/directx/ ランタイム版でしたらこちらでダウンロードしてください ttp://www.microsoft.com/japan/windows/directx/downloads/default.mspx とりあえず今入っているダイレクトXをアンインストールしてから インストールがいいらしいです
355 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 14:44:04 ] あ、ランタイム版はアンインストールの必要はないっぽいです
356 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 13:59:05 ] >>339 ,343,349 D3DXMatrixOrthoOffCenterLHで射影行列を設定すればいい。 画面の左上と右下の座標値を設定するだけ。 ワールド行列とビュー行列は単位行列にする。 頂点フォーマットは未変換のもの(rhw無し)を使う。
357 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 15:14:35 ] RHWのRHって何の略ですか? LookAtRHとかのRHとは別物ですよね?
358 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 15:29:44 ] reciprocal of homogeneous
359 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 15:48:52 ] レイプ変態わいせつの略です
360 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:09:49 ] システムメモリー上のサーフェイスに直接アクセスするときは Lockしなくていいってほんと?いきなりddsd.lpSurfaceにアクセスできる?
361 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 19:05:53 ] DirectX SDKをインストールしたんですけどインストールしたバスの場所が分かりません 一応{D¥Program}にインストールしたつもりですが{DIRECTX9SDK}が見つかりません {Redist}{Samples}{Utilities}{Developer Runtime}{Documentation}{Extras}{Include}{Lib}はあるんですけど プログラムの追加と削除には登録されてるみたいなんですけど肝心のバスが分かりません バスの調べかたなど知ってる方がいたら教えてください
362 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 19:48:45 ] VCを使ってたら知る必要もないけど別ので作るのかな SDKはあくまで金槌や釘などと同じく道具だから本体は無い。 重要なのはIncludeフォルダとLibフォルダで、まぁ説明書と目次みたいなものか。 IncludeフォルダとLibフォルダが分かっていれば、それぞれのパスを登録するだけでOK
363 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 19:57:14 ] レスありがとうございます もう1つ質問なんですけど、VC++で使うにはサブシステムのバス通さなきゃいけないと思うんですけど(ネットや書籍で書いてた) ですがdxsdk_november2007では勝手に登録してくれるんですか? インクルードファイルに{Include}が登録されてあったり ライブラリファイルには{Lib\x86}が登録されてるんです ちなみにインストール前は登録されてなかったです これはどういうことなのでしょか?この上に新しく登録しなきゃいけない?それとも自動で行われてるからやらなくていい? 分かる方いたら教えてください
364 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 20:05:16 ] 別に説明書や目次が重複しても問題ないだろ、無駄なだけで。
365 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 20:17:16 ] なるほどじゃぁ登録します ありがとうございました
366 名前:デフォルトの名無しさん [2008/01/05(土) 20:41:02 ] VisualStudio2003 Spoke VersionのMSDNライブラリにはVisualBasic以外のDirectXの解説を インストールできますか?VisualBasicしか検索でてこないので・・・ お願いします。
367 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:39:46 ] ビルドは正常終了するのにデバックだとエラーが出るんですけどどうしてなんでしょうか? エラー文は以下の通りです ------ ビルド開始: プロジェクト: MuscatBoy, 構成: Debug Win32 ------ コンパイルしています... StageMenu.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Stage4.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Stage3.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Stage2.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Stage1.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Ranking.cpp
368 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:40:19 ] D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Option.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory MyGameLib.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory コードを生成中... ビルドログは "file://d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\BuildLog.htm" に保存されました。 MuscatBoy - エラー 8、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== よろしくお願いします
369 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:46:35 ] ビルド自体失敗してるやんw
370 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:55:46 ] 見間違いしてましたビルドでも失敗してました ですがこれサンプルなので自分では一切さわってないものなんですけど・・・ サンプル自体糞ということですか?
371 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:56:01 ] >>368 SDkNovember2007から DirectMusicをサポートしなくなった
372 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 22:05:32 ] てことはAugust 2007 DirectX SDKをDLしないといけないんですね 助かりましたありがとうございました
373 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 00:07:52 ] DirectMusicなくなっちゃったのか 音の再生はMusicしか使ってないと言うのに
374 名前:デフォルトの名無しさん [2008/01/06(日) 11:57:29 ] 一昨日最近アップされた(?)DirectX9.0C(4.09.0000.0904)ってやつに したんだけど、次の日からパソコンが立ち上がらなくなり(黒い画面で 左上に文字カーソルが点滅のまま)仕方ないので、F8で前回正常にっての 選んでから起動させたんだけど、今日完全に起動しなくなった・・・ 人によっては、最悪なケースになるのかな?
375 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:28:09 ] DirectX3位までは、ドライバまで置き換えられることがあって、 その結果起動しなくなったって話がたまにあったよね。
376 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:34:53 ] DirectX「3位」ってなんだろうと思った
377 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:36:26 ] d:\ゲーム製作案追加\ warota(w
378 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:42:03 ] >>374 ぶっちゃけDirectXのせいじゃないんじゃね? ランタイム入れなおしたなら 再起動求められたはずだしそのときは正常起動したんだろ? 他になにかやらかしてないかよく思い出せ あと一昨日アップされたやつなんてあったっけ?
379 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:45:00 ] >d:\ゲーム製作案追加\ ワロタw
380 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:03:39 ] >>360 スルーされてるけど、知らない??
381 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:30:37 ] 昔やねうらおがそんなこと言ってた希ガス。 www.sun-inet.or.jp/~yaneurao/intensive/diw1.html
382 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:44:49 ] >>380 おまえは何を言ってるんだ?とか思われてる予感。 DirectX7のDirectDrawのヘルプを見る限り、 そんな保証はどこにもされていない。 ただし、現実問題としてはできるらしい、と。 非Lock状態だからといって、わざわざアドレスを動かすような理由も無いし。 ちなみに>>381 のサイトは既に6年以上も前の記事だから現状は不明。 仮にLockしたところで、パフォーマンスへの影響は無いに等しい気がする。
383 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:33:36 ] DirectMusicなくなったのかよ DirectShowでMP3とかしか流せなくなったのか?
384 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:21:16 ] >>381-382 禿しくサンクス >>382 そんなこと言ったって資料は出てこないし余りにも未開の地過ぎて右も左も分からんのだよ・・・
385 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:04:35 ] DirectX9のサイトとか普通にあるけど
386 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:07:13 ] てか それこそ自分で試してみれば良いんでね?
387 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:14:08 ] 所詮、現在のグラフィックカードは、IntelかAMDかnVidiaしかないも同然だから、 3種類試せばおkじゃね。
388 名前:367 mailto:sage [2008/01/06(日) 21:19:00 ] August 2007 DirectX SDKをインストールしたのですがまたエラーがでました 分かる方いたら教えてください 'MuscatBoy.exe': 'D:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\MuscatBoy.exe' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。 'MuscatBoy.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\user32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\gdi32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\ole32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\advapi32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\rpcrt4.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\msvcrt.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\d3d9.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\d3d8thk.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\version.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\winmm.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\d3dx9_35.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\dinput8.dll' を読み込みました。シンボルが読み込まれていません。 プログラム '[4068] MuscatBoy.exe: ネイティブ' はコード 0 (0x0) で終了しました。
389 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:21:34 ] 別にエラーなんか出てないだろ。 デバッグ実行してみたけど、シンボル情報がない、というInfoだけ。 最後は、MuscatBoyが終了した、ってだけ。
390 名前:367 mailto:sage [2008/01/06(日) 21:25:23 ] そうだったんですか デバック後アプリ出てこなかったのでエラーだと思ってました ありがとうございました
391 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:23:26 ] >390 悪いことは言わんからツクールでも使っとけ。
392 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:42:35 ] バンプマップでメカのモールドを表現しているんですが、これだと環境光だけの陰の部分は溝が 出てこず、のっぺらりんとしてしまいます。 これの対応策としては、テクスチャで描いた溝と組み合わせる、くらいでしょうか? 他に良い方法があるようでしたらご教示ください。
393 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:43:50 ] >>391 いや、最初はわけわからんだろ?
394 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:44:59 ] ピクセルシェーダからスカラ値を出力 -> 入力したいんですが、 レンダリングターゲットのビット深度が最高16bit x 2だったので それを32bit x 1にする変換を組み込みました。 // ピクセルシェーダ出力 vOutColor.x = sSrcColor * 65536.0f; vOutColor.y = sSrcColor * 65536.0f * 65536.0f; vOutColor = floor(vOutColor) / 65536.0f; vOutColor = frac(vOutColor); ↑この出力を↓この入力に // ピクセルシェーダ入力 sInColor = vSrcColor.x; sInColor += vSrcColor.y / 65536.0f; しかしこれだと、ノイズが乗って正しく処理できないのか画像にゴミが出ます。 普通に16bit x 1でおこなった場合はゴミは出ません。 シェーダの精度の問題かと思い、65536.0fではなく256.0fでやっても同様でした。 せっかく高精度にしたのに、逆の結果になって哀しいんですが 何でだと思いますか? GPUはラデオン9700です。 >>392 バンプマップが光の入射ベクトルと法線ベクトルの差で 陰影をつけるテクニックなら、無指向の環境光で 陰影がつかないのはそれで正しい結果だと思うけど。 対策としては、ディレクショナルライトに変えるか 環境光に擬似的なライトの位置や方向を設定してみては?
395 名前:デフォルトの名無しさん [2008/01/07(月) 00:59:35 ] 参考書についてきたアニメーション入りのXファイルはちゃんと動くのだが、 どっかから拾ってきたXファイル(アニメ入り)が動かない(表示はされる)。 現在は再帰でフレーム走査して云々って処理してるんだけど、 これは拾ってきたXファイルが悪いのだろうか? ちなみにXファイルをダブルクリックして起動するソフトで見るとメチャクチャ。
396 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 01:46:41 ] >>395 Xファイルのフォーマットに癖があるからw 少なくとも俺は、どのフォーマット(Xファイルの方言みたいなもんw)にも 対応したXファイル読み込み→表示ってのは見たことない 書き込み→読み込みも同様 ちなみに ・メッシュのみ ・フレームとメッシュ混合 ・アニメーション+アニメーション対応フレーム+メッシュ ・アニメーション+アニメーション対応フレーム+メッシュ+フレーム(アニメーション非対応) ・ワンスキン ・ワンスキン+アニメーション ・スキンメッシュ+アニメーション+フレーム(アニメーション非対応)+メッシュ ・なんだかよくわからん名前でモデルのインスタンスを共用してるやつ(イミフw読めたのみたことないw) ・他多数 等、すべてに対応しようとすると組み合わせが鬼 結論:Xファイルは考えるだけ無駄(考えるな感じろ) 補足 まあ、どっかの入門サイトでそいつができるって言った方法や内容以外の用途で使わないのが頭のいい使い方 そうすると応用が利かないし、ツール上で1つばっかりモデル作ってはいおしまいなんてありえないから 実際はXファイルなんて使ってなんとかしようとすると「ああ、こんなことなら違う方法でやっときゃよかった」ってなるんだよね ま、アニメーション使わなきゃ余裕だし、結構使えるから自分ができる範囲でなんとかしなさいな おしまい
397 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 01:58:07 ] >>394 その式は 0.0≦sSrcColor<1.0 ならいいけど、 sSrcColor=1.0 の場合 多分 0.0 になっちゃうわね。(frac(1.0)=0.0) vOutColor = frac(vOutColor); を vOutColor.y = frac(vOutColor.y); (上位側(x)をfracしない) にしてもダメかしら。
398 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 02:23:52 ] >>397 直りました! まさにそれでした。 ありがとうございました。
399 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 02:58:12 ] >>394 それで本当に精度がよくなってるか、確認した方がいいかと。 俺は以前ピクセルシェーダで1/640を計算させただけで精度が悪くて 使い物にならなかったよ。
400 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 09:39:25 ] クライアント領域全体をキャプチャして.jpgなどの画像として保存できる関数ってありますか?
401 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:02:13 ] ありません
402 名前:デフォルトの名無しさん [2008/01/07(月) 13:17:11 ] >>396 レスサンクス。やはりフォーマットの問題だったか。 どっかでフォーマットに注意すべし!って聞いたことあったのでもしや・・・と思ったがやはり。 まぁ、注意するだけで何もできないのだけどw つまり、アニメしなかったらグラフィッカーに文句言えばおkってことですね。
403 名前:K田 [2008/01/07(月) 13:36:38 ] FortranをC言語に直すことが出来なくて… やってくれ☆
404 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:22:46 ] Direct3Dのついて質問です。 デバイス初期化の際にHWNDが必要ということは、複数のウィンドウが開かれるアプリケーションの場合 ウィンドウごとにデバイス初期化が必要ですよね? ということはそのデバイスを通じてロードされるテクスチャもウィンドウ毎にロードする必要があるのでしょうか? 例えばAというPNGファイルをロードしたテクスチャを、ウインドウAでもウインドウBでも使いたい場合、A用B用と@別個にロードするのでしょうか? VRAMもったいないなぁという気分なのですが…)
405 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:55:00 ] >>404 まずはFAQを全部読むんだ ttp://msdn.microsoft.com/library/ja/jpdndxgen/htm/directx9devfaq.asp
406 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 16:16:10 ] >>405 >1 つの Direct3D デバイスのみを使う。複数のターゲットにレンダリングする必要がある場合は、SetRenderTarget を使います これですね ありがとうございます。 昔作ったSwapChain管理クラスひっぱりだします(何のために作ったのかを失念してましたわ…)
407 名前:374 [2008/01/07(月) 17:51:32 ] >378 すいません、一昨日というのは4ゲーマーを見た時でした。 で、インストール完了後は再起動を求められなかったのでその日は そのままパソコンを落としたと・・・ で、次の日に起動したらその症状が出てたという訳です(^^;
408 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 18:04:43 ] >>402 データを追ってどこに問題があるのか確認するのがプログラマの仕事だろ。 使えないなら自分でまともなエクスポータを書いてグラフィッカーに渡
409 名前:392 mailto:sage [2008/01/07(月) 18:59:03 ] >>394 >陰影がつかないのはそれで正しい結果だと思うけど。 それを承知の上での質問です。 >環境光に擬似的なライトの位置や方向を設定してみては? なるほど! ありがとうございました。
410 名前:304 mailto:sage [2008/01/07(月) 21:49:45 ] 今まで、 // 射影行列の初期化 D3DXMatrixIdentity(&m_proj); D3DXMatrixPerspectiveFovLH(&m_proj, D3DXToRadian(45.0f),//カメラの画角 aspect, //アスペクト比 1.0f, //Nearプレーン 1000.0f); //Farプレーン pD3DDevice->SetTransform(D3DTS_PROJECTION, &m_proj); と参考書のサンプル通りにしていたところを、>>322-324 さんのを参考に D3DXMatrixIdentity(&m_proj); D3DXMatrixPerspectiveOffCenterLH(&m_proj, -CLIENT_WIDTH * 0.5f, CLIENT_WIDTH * 0.5f, -CLIENT_HEIGHT * 0.5f, CLIENT_HEIGHT * 0.5f, 1.0f, 1000.0f); pD3DDevice->SetTransform(D3DTS_PROJECTION, &m_proj); に変更しました。 すると、Xファイルを読み込んでCGを描画していたのですが、表示されなくなってしまいました。 何が原因なのでしょうか?
411 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 22:20:14 ] >>410 OffCenter の引数をちゃんとカメラ座標系で指定しているか?
412 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 23:19:34 ] シェーダ解説本を見ていると、アプリケーションからシェーダ変数を設定する際にハンドルを介して 行うものがありますが、直接"(シェーダ変数名)"で指定するのに対し、どういった利点があるのでしょうか?
413 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 23:27:33 ] >>412 パフォーマンスが上がる ハンドルは固定なので 一番最初に一度だけ取得するだけで良い
414 名前:412 mailto:sage [2008/01/07(月) 23:31:05 ] >>413 なるほど! ありがとうございました!
415 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:32:52 ] C言語でコンパイルすると○○(ファイル名).OBJが開けませんと出るんですが、 原因は何でしょうか?
416 名前:415 mailto:sage [2008/01/08(火) 00:33:48 ] すみません、誤爆しました。
417 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:47:05 ] 設定されているパスにそのOBJがないからです
418 名前:410 mailto:sage [2008/01/08(火) 17:13:47 ] すいません、これを忘れていました。 #define CLIENT_WIDTH 770 #define CLIENT_HEIGHT 480 >>411 DirectXは左手座標系ですよね。 -CLIENT_WIDTH * 0.5f = -335 CLIENT_WIDTH * 0.5f = 335 -CLIENT_HEIGHT * 0.5f = -240 CLIENT_HEIGHT * 0.5f = 240 になるので、特におかしくない気がするのですが…。
419 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 17:37:23 ] >>418 glFrustumも D3DXMatrixPerspectiveOffCenterLHも クライアントサイズを指定するものじゃないぜ OpenGLの知識があって OpenGLのプログラムをDirectXに移植するとかで こんな面倒なことしてるんじゃないのか??
420 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:18:19 ] そもそもDirectXに座標系など無い。 決めているのはプログラマ自身でDirectXは何の関係もない。
421 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:39:36 ] 使ってるモデリングソフトにあわせると吉 そうでなくても吉
422 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:21:10 ] 目的がよくわからんな 2Dと同じ座標感覚にしたくて ニアクリップ面を画面サイズに合わせて 適正な画角になるようにカメラを設置するってことなのか?
423 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:50:11 ] 2Dゲーなら大事だけど3Dゲーではたいして大事ではない
424 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:14:47 ] ファーストフードにはあるけどコンビニにはない。 auにはあるけどdocomoにはない。
425 名前:410 mailto:sage [2008/01/08(火) 23:29:33 ] すいません、実は>>234 も私なのですが、目的は「斜め投影変換」です。 OpenGLの知識は全然ありません。 OpenGLなら↓のURLのように、glFrustumを用いれば実現できると聞いたので、DirectXでglFrustumを実装しようとしていました。 (ttp://www.vsl.gifu-u.ac.jp/techinfo/view/index.html)
426 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:54:37 ] 行列変換理解しろ。
427 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:57:46 ] 無理じゃねぇかなぁ
428 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 13:28:35 ] glFrustumもD3DXMatrixPerspective*****も あくまで透視変換をするための行列を生成するものだから どういじろうと物体が歪んだりはしない 簡単に言うと カメラの近くにある物を大きく遠くにある物を小さく描画するためのもの もし行列変換でやるなら その斜め投影変換とやら専用の行列を生成する必要がある てか斜めにしたいだけなら 適当な板にレンダリングして頂点を移動するだけでいい気もするんだが そもそもなんでそんなことしたいわけ?
429 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 15:55:45 ] >>425 411,419が何を言ってるのか理解できるまで、もっと勉強しる。 410のパラメータのD3DXMatrixPerspectiveFovLHで得られた行列と D3DXMatrixPerspectiveOffCenterLHで得られた行列を見比べるだけでも 何が間違っているのかなんとなく分かるだろう。 D3DXMatrixPerspectiveOffCenterLHに何を与えれば、元の行列と同じ行列が 得られるのか考えてみろ。
430 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:22:50 ] DirectX9.0cなのですが、 DirectMusicで、今現在再生しているセグメントの曲の再生が 終了したかどうかというのを調べるにはどうすればいいのでしょうか 再生終了していればそのセグメントを開放し、そこを別の曲に差し替えたいのですが 肝心の終了したかどうかの判別の仕方がわかりません 知っている方いたら教えてください。よろしくお願いします
431 名前:430 mailto:sage [2008/01/10(木) 21:50:25 ] 自己解決しました
432 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:06:25 ] 自己じゃねえだろ マルチな上に嘘まで書くのかよ
433 名前:430 mailto:sage [2008/01/11(金) 00:58:35 ] >>432 あなたがマルチとおっしゃっているのは外部サイトの話ですか? そこを見ればわかりますが、自分で解決していますよ。 それ以外の方法も教えてもらうことができましたけど。 それに、このスレッドのテンプレには外部で質問してはいけないなどと書いてないですし。 色々なサイトを利用して、できる限りの情報を集める事がそんなにいけない事なのでしょうか? どのスレでも同じルールだと決め付けるのはやめましょう。
434 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:06:08 ] >>433 一般的な常識として、複数箇所に同じ質問を投げるのは避けるべきです。
435 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:06:33 ] >>430 >>432 じゃないが、マルチと分っててやってるなら尚更だが、 そういうのはいけない事。どのスレでも・・・・とかのLvじゃなくて、ネットでは原則的なぐらいのルール。
436 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:09:59 ] ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88 www.ippo.ne.jp/g/53.html e-words.jp/w/E3839EE383ABE38381E3839DE382B9E38388.html ここらにも書いてあるが、ネット創世記からある基本的なマナー違反。 マルチポストはスレや板のルールとか以前の問題。
437 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:10:24 ] 心がせまいなぁ 俺ルールをネット原則とかもうね
438 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:13:07 ] そうそう、「俺様ルール」を持ち出して、マルチを正当化するなんてどうかしているよね。
439 名前:430 mailto:sage [2008/01/11(金) 01:20:38 ] >>436 はあ。ネット原則なのかどうかはともかく、嫌う人も多いのだということですね こちらで答えてくれる人が早くいらっしゃれば、外部で質問する事もなかったのですが… これからはなるべく気をつけて書き込む掲示板を選ぶ事といたします。 ご忠告どうもありがとうございました
440 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:22:32 ] 訳 : 使えねー掲示板だな。もうこねーよヽ(`Д´)ノ
441 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:25:30 ] いいんじゃねーの別に。マルチ嫌うって感覚はよくわからんよ しょせん掲示板なんて使い捨てなんだしさ
442 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:26:00 ] ネチケットもしらねえのか
443 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:28:11 ] ネチケットわきまえてるような人種はここにはいないんじゃないかな
444 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:36:07 ] ま、向こうの解答者は間違ってるけどな IsPlayingはスピーカーで音が鳴ってるかどうかを判断するものだから Playした直後でも鳴ってないという結果になる場合がある 結局の所、メッセージ拾う方が確実に終了を検知できるんだよ
445 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:45:16 ] これか。糞仕様すぎる ttp://msdn.microsoft.com/library/ja/directx9_c/directx/htm/idirectmusicperformance8isplaying.asp?frame=true
446 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 02:15:20 ] 所詮MSですから
447 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 02:34:32 ] ネチケットとかもう死語じゃね? 掲示板であろうとログが残り、そのログは将来同じような問題を抱えた人間にとって有益なものとなりうる。 複数サイトでの同様の質問は検索を困難にさせ、解決方法を見つけにくくなる。 そうなればまた同じ質問をすることになる。ネットの世界であろうとリソースは有限なので無駄であることに変わりはない。 とかキモイこと書いてみましたw ぶっちゃけ回答する側の人間はいろんなサイトを回っていることが多く、マルチは実際問題よく見かける。 解決したならその方法や、今回の場合であれば解決した側のサイトのアドレスでも張ってくれれば多少はよかったかな?
448 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:12:44 ] むしろ複数サイトに書いてあったほうがみつけやすくていいよ
449 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:16:00 ] 何も答えもしない相手に解決方法書く馬鹿がどこにいるんだよ
450 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:50:47 ] 一箇所にしかない答えってのは結局、他の可能性を潰してるだけだと思うんだ その答えが真である保証だってどこにもないんだから 一箇所にしかない答えより、複数の答えがある方がずっといい
451 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 04:02:03 ] ぶっちゃけそんなの気にする奴はたいしていない 短気な奴の方が声が大きいのはネットもリアルも同じと言うだけの話
452 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 07:13:46 ] 俺は2ちゃん以外みてないからマルチOKだよ マルチが嫌な人は2穴責めが嫌な人だと思う
453 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 10:30:38 ] これはひどい自演ですね。
454 名前:454 mailto:sage [2008/01/11(金) 10:37:00 ] 自己解決しました
455 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 11:04:12 ] カスラックみたいな事言うなよ コピーワンスなんて馬鹿馬鹿しいものが導入されたせいで 後世に文化を繋ぐことが困難になってしまったというのに
456 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 11:18:57 ] カスラックは好かんけどコピーワンスと文化云々は関係ねーだろ(w
457 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 11:44:31 ] 関係あるだろ マイナー番組を録ったメディアが劣化したら取り返しが利かなくなるんだから
458 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 12:16:58 ] >>452 ケツの穴のちいさい奴だな
459 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 13:07:00 ] 俺はマルチよりあおいちゃんの方が好きだな
460 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 13:19:03 ] なんでDirectX関連以外の話題だと盛り上がるんだよw
461 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 00:18:54 ] DirectXゲームグラフィックスプログラミングVer.2.1Vistaのサンプルで //カメラのパラメータ設定 // ビューポートの取得 D3DVIEWPORT9 vp; if(FAILED(pD3DDevice->GetViewport(&vp))) { return; } // アスペクト比の計算 float aspect; aspect = (float)vp.Width / (float)vp.Height; (以下略) とあるのですが、 vp.Widthとvp.Heightを見てみると0と770になっていました。 vp.Widthが0になっているせいでaspectが正常に取得できません。 なぜ0になっているのでしょうか?
462 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 00:28:18 ] >>460 俺がよく燃える燃料を投下してしまったからorz
463 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 03:34:32 ] >>461 SetViewportしてないからじゃ ちゃんと設定してるかい?
464 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 17:48:14 ] direct Showの解説してるサイト知ってる方居たら教えてください。 VC++6.0です。
465 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 17:56:30 ] Direct Show 解説で検索
466 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 19:15:18 ] >>465 お前に聞いてない。
467 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:05:43 ] DirectShow で解説、だよなあ。
468 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:09:50 ] 解説じゃなくて検索だった。
469 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:23:03 ] これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人
470 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:45:04 ] >>468 お前に聞いてない。
471 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 21:41:06 ] >>463 セットしないといけないんですね。 サンプルに見当たらなかったので追加してみました。 //カメラのパラメータ設定 // ビューポートの取得 D3DVIEWPORT9 vp; if(FAILED(pD3DDevice->SetViewport(&vp))){ return; } if(FAILED(pD3DDevice->GetViewport(&vp))) { return; } // アスペクト比の計算 float aspect; aspect = (float)vp.Width / (float)vp.Height; (以下略) すると、 Direct3D9: (ERROR) :Viewport width or height is zero or negative というエラーが延々とでてきてしまいました。 もしかしてSetViewportの使い方間違ってます?
472 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 21:48:49 ] SetViewportは自分でビューポートのサイズを指定するんだYO・・・
473 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 22:26:41 ] もはや頭が悪いとか言うレベルじゃないぞ。
474 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 22:37:02 ] DirectXを理解していないとかC++を理解していないとかじゃなく プログラミング自体を理解していないんだな
475 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 23:10:35 ] ワロタ(w エラーメッセージくらい読めよ
476 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 03:23:18 ] そんなエラーメッセージ出してくれるのか 親切だなw
477 名前:デフォルトの名無しさん [2008/01/13(日) 06:35:13 ] VC++2005ExpressEdition DirectX 9.0を使用しています。 Game.h Game.cpp Input.h Input.cppというファイルで入力によって値を変えようとしてるんですけど、Game.h内で class Game{ <略> privete: struct AIRPLANE{ FLOAT v; FLOAT roll; FLOAT pitch; }airplane; } と構造体を宣言して、Input.cpp内で構造体の値を入力によって変えたいんですがうまくいきません。 error C2061: 構文エラー : 識別子 'AIRPLANE' とエラーが出てしまいます。Input.cppの実際に値を変えようとしているところは #include "Input.h" <略> void Input::GetInput_Game(AIRPLANE airplane){ if(KEY_Z == TRUE){ airplane.v += 0.001f; } でInput.hのクラスでは "Game.h"をincludeして void GetInput_Game(AIRPLANE airplane); としています。キー入力はうまくいくのですが、構造体の受け渡しがうまくいきません。includeのやりかたが悪いのでしょうか?
478 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 07:23:11 ] ひょっとしてそれはギャグでいっt
479 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 09:49:30 ] . ィ .._ .......、._ _ /:/l! :~""''.>゙' "~ ,、、''‐'、| _ ゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':, ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ " .!-'",/ `'-‐'') /\ `/ でノ-〈 .-''~ >'゙:: ‐'"゙./ ヽ.,' ~ / //::::: ', / ,:'゙
480 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 09:57:14 ] >>477 君それ、DirectX全く関係ないから。 DirectXに手を出す前に、とりあえず君はコンソールアプリでも作って クラスと構造体、引数の受け渡しの勉強をしなおせ // 構造体定義 typedef struct { FLOAT v; FLOAT roll; FLOAT pitch; } AIRPLANE; // クラスメンバに構造体を加える class Game { private: AIRPLANE airplane; (略) }; void Input::GetInput_Game( Game *game ) { if( KEY_Z == TRUE ) { game->airplane.v += 0.001f; } } どういう動作をさせるつもりだか知らんが、だいたいこんな感じか
481 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 10:15:02 ] 志村ぁ、属性属性!
482 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 11:19:15 ] ああすまんwprivete→privateだけ気になってて間違えた privateじゃなくてpublicねw
483 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 15:25:11 ] ありがとうございます。 上手くいきました。
484 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:44:37 ] DirectX SDK を使いたいんだけど、インストールの仕方がいまいちわからんのです。 いろいろ試したところ以下の操作でビルドできるようになったけど、これって正しい? 1. DirectX 9.0b SDK をダウンロードして c:\dx90bsdk に展開する 2. DirectX SDK - (November 2007) をダウンロードして c:dx90bsdk に上書きコピーする 3. インクルードパスに c:\dx90bsdk\Include を追加する アドバイスあればお願いします。
485 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:50:40 ] 普通に実行すればインストーラーが勝手にやってくれるだろ 頭にウジが涌いているのか?
486 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:54:33 ] >>484 1はいらない 2はアップグレードじゃないので単体で動作する むしろ、前のバージョンのSDKは抜くべき 3はその動作だけじゃ足りないはず わからなければ入門書を買ってきたほうがいい 時間とお金を考えたら1人で考えるのは無駄かもわからんね 本は自分で立ち読みして探せ 致命的なのは1と2 なんでこんなことした? 普通に最新のSDKをダウンロードしてこい アップグレードキットはない
487 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:03:11 ] >485 まず DirectX 9.0b SDK をインストールしてビルドを試みたところ、最近のコードをビルドできなかった。 で、DirectX SDK - (November 2007) をダウンロードして上書きコピーしたらとりあえずビルドできた。 「そんなことしなくても○○をDLして入れればおk」とかアドバイスがあれば知りたいなと思って聞いてみた。 スマン>485
488 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:10:20 ] >>486 アドバイスありがとう。明日、本屋にいってみるよ。
489 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:30:40 ] ばーか
490 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:07:33 ] >>487 >ダウンロードして上書きコピーしたら これ駄目 レジストリとか環境変数とかなんも考えないのか? ファイルだけ書き加えて動くもんなんてそうそうないから 動いた→OK は全体の構造を把握してない限りありえない 一度アンインストールしてもう一度インストールしなおせ その状態で進めるとまた問題が起こったときに何が原因かさっぱりわからなくなるぞ
491 名前:デフォルトの名無しさん [2008/01/13(日) 19:16:51 ] DirectX9.0c以上ってどれをダウンロードしたらいいんですかね? いつも確認したら8.0になってるんですよ・・・
492 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:22:45 ] Windows95はDirectX8.0aまでの対応だよ。
493 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:38:56 ] そうだ まずOSのバージョンの確認からだな たまに古いの使ってる分際で開発なんてしようと思うキチガイがいるから閉口する とりあえずXPにしろよな つか、もっというと金がない奴はゲーム開発なんてやろうと思うな 色々楽をしようとするたびに出費がかさむ職業だぞw なんでもケチるとなんにもできない上になんにもわからない だからなんのゲームもできない 入門書のこともそう 読めばわかるようなことだけど自分で調べるとなるとひと月ふた月平気で過ぎていく なんにも金を出さないと2年たっても3年たってもいつまでたってもゲームなんかできない
494 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:45:34 ] 5000円の参考書買って役に立たなくても 「はずれか、チッ」としか思わなくなるようでないとだめ
495 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:56:55 ] 古い環境での動作、古い環境での開発が求められる場合もあるだろ まあガキの遊び程度だったら新OSでやった方が色々と楽だが あと、別に今時本がなくったって検索ワードを使いこなす技量があれば さほど情報に困ることはない もちろん本があるにこしたことはないけどね 楽をしようとするたびに出費がかさむというのには同意 馬鹿は大人しく金を使った方がいい
496 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:00:35 ] VC++2005の本を買ったけど、.NETフレームワーク開発が主体だと気づいて 結局ほとんど使ってない俺
497 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:21:23 ] >>493 は言い過ぎかもしれんが、俺も専門書にかかる出費はけちるべきではないと思う。
498 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:25:59 ] この分野はプログラミングの中でもニッチな方だから、 Web常に情報の蓄積がなく、本にしか書いてない基礎的情報も多い。
499 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:26:18 ] >>495 ていうか、調べてもいいけど該当する情報を見つけるまでかなりかかる場合もあるしね お前が本がなくてもなんてのは本を十分みたり、たくさんの人と話す機会があって何かを学んだいま だからこそいえることだろ? なくてもいいというにもたくさん本をみたうえでないとなくてもいいといえないわけだから そういう情報なんだよね必要なのって あるものごとを決める平均値みたいなもの、最適な判断材料は糞も糞なりに全部みないと 最後の解は得られない たくさんの選択肢を判断できるだけの情報力があればあとは時代が変わるごとの 差分値だけで済む こうなってしまっている状態の人間を基準にしてもしょうがない はじめはなんでも買ってなんでも吸収する気でないととても普通にプログラムが作れるレベルまで届かない 低賃金の割りに意外とつらいと思うぜ
500 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:56:42 ] ごめん。俺本買ったことないけど、使いこなせてるや。
501 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:03:39 ] 金出して買う程の書籍とかないよな。 ネットで十分。
502 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:04:50 ] まあ初心者レベルの情報だったら買うほどのこともないだろう 本屋に通えるだけの行動力があればいい
503 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:10:22 ] >>500 わかってるつもりで実はわかってない ってのはよくある ゲーム系から業務系にいったときにちょっとだけ苦労した 実務の正確さがちょっと足りなったかな 精度を高めるためにちょっとした苦行がいった でもそれだけだったけどw
504 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:12:43 ] ゲーム系は速さ重視だからな 業務系だとどうでもいいような決まりが多そうだ
505 名前:484 mailto:sage [2008/01/13(日) 23:35:48 ] 484です。 個人サイトとか MSDN とかを見て Visual Studio 2008 Express Edition で DirectX SDK のサンプルをビルドして実行できるようになった。 特に >>486 のコメントが参考になったよ。どもです。 ところで、DirectX (特に3D) プログラミングをするのにおすすめの本とかある? ネットで十分っていうコメントもあるけど。 ちなみにスキルは win32 API プログラミングはペゾルト本で一通りやってて、 ベクトル・行列の計算は苦にならない感じ(予習したから)。
506 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:38:51 ] すすめられる程の本は無い。 ネットでOK。 DirectXに特化した本はロクなのない。
507 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:41:35 ] >>505 1冊も買わないか 全部買って良いとこ取りするかのどっちかしかない 1冊あればOK的な本はない
508 名前:484 mailto:sage [2008/01/14(月) 00:53:51 ] >>506 >>507 そうか。しばらく DirectX SDK のサンプルと API リファレンスでがんばってみる。
509 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:47:22 ] >>508 一冊も買わないなんて効率悪いだけだと思うぜ俺は 細かい技術が足りてないくせにできると思ってる奴のいうことだと思う 俺のこれまでの経験でいうとネットなんてざっとしか載ってない おおざっぱに知るだけ知って知った気でいる分にはそれでもいいけど はじめはいろんな本を読んでまず技術の土壌を固めるべき そっちのが速い いらないとか言ってる奴は自分は過去に他の分野の本を読んで細かい技術を身につけてる場合が多い そういう奴は新人とか育てるのものっすごい下手なのであまり信用しないほうがいい これまで自分が出会った人とかちょっとの間でも教え請うた人の存在とかすっかり頭から抜けてる 馬鹿で恩知らずな奴なのでもうこういう奴が技術的に伸びることはもうない 本を読むことは人を知ることでもある ネットでは薄い 色んな人の色んな考えを吸収するには本をたくさん読む必要がある プログラム構成がめちゃくちゃ下手糞な奴とかいるけど アイディアが浮かばないとか素質がないんじゃなくて単純なスキル不足である場合がほとんど グローバル変数・関数使いまくりのままとか糞なソースばっかり書いて何年たってもグローバル変数を使う初心者のままとか結構ザラw
510 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:12:43 ] >509 それじゃ、一冊本のタイトルあげてみ?
511 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:19:24 ] まあ本買うやつなんて旧世代の人間だけだな。
512 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:23:01 ] >>510 誰向けの?
513 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:23:06 ] 本だったら電車の中とか布団の中とか喫茶店でも読めるだろ
514 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:29:22 ] DirectX SDK のサンプルってどうやってみれるの?
515 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:29:44 ] >512 俺に聞かんでも自分で良書と思うもんあげればおk。
516 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:39:21 ] >>514 DirectX Sample Viewer
517 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:40:32 ] 俺のオススメ Game Programming Gems 1-6 日本語版 (単行本) ゲームプログラミングのための3Dグラフィックス数学 (単行本(ソフトカバー)) 難しいので初心者にはオススメできないけど 絶版になる前には買っておいてほしいと思う 初心者にいいと思ったのは irectX ゲームグラフィックス プログラミング Ver. 2.1 Vista [NextCreator] (NEXT CREATOR) (大型本) ゲームエフェクトマニアックス (C MAGAZINE) (大型本) がおもしろいと思った 小さいプログラムを組みながら覚えるといいと思う 読んでないけどなんかいいかなと思った本は アクションゲームプログラミング (大型本) ホントに初心者がアクションゲーム作れるようになるかどうかやってみてくれw
518 名前:484 mailto:sage [2008/01/14(月) 03:46:42 ] >>512 たしかに自分が win32 API プログラミングを調べていたころを思い出すと ペゾルト本を読まなければ理解に時間がかったかも。 一度理解すれば API リファレンスでなんとかなるけど 道しるべとして本を頼るのも手だな。
519 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:03:11 ] >>509 おちつけ 何か嫌なことでもあったか?
520 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:09:23 ] >>509 の社内人間関係を綴った本が出版されたら買う(w
521 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:02:00 ] >>509 は将来会社を引っ張っていく貴重な存在。
522 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:08:48 ] 俺も一冊では足らず、DirectXでゲーム制作する本を四冊くらい買ったかな しかしどうしても本では理解できず 最終的にネットの情報に助けられた事もあるのも確かだな 国内のサイトじゃなかったけど
523 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:23:21 ] Managed DirectXでお勧めの入門書ってある? 洋書で黒い表紙の本がなかなか良かったんだけど、 和書だと見つからないんだよトニー
524 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:33:57 ] >>523 ないと思う。自分もさらっと調べてみた事あるけど XNA以上に日本じゃ通らないような感じうけるしねぇ。 きっと和訳やその他の場合でも出版で十分なリターンが見込めない領域と思われてる そう邪推するぐらいにはManagedはないねぇ。
525 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:43:21 ] C++/CLIでMDXしたいよぅ
526 名前:484 mailto:sage [2008/01/14(月) 14:46:55 ] 大きめの本屋2件まわって「マスタリングDirectXプログラミング」を買ってきた。 ttp://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0DirectX%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E6%A9%8B%E5%8F%A3-%E3%82%86%E3%81%86%E3%81%99%E3%81%91/dp/4797340258 立ち読みした感想 DirectX 関連本は工学社の緑色の本がいっぱいあったがどれも内容は微妙だった。 「DirectX 9プログラミング入門」は DirectX SDK のサンプルプログラムを載せて、ほんの少しコメントを足しただけのひどい本だった。 前書きにだまされて思わず買ってしまうところだった。 ttp://www.amazon.co.jp/DirectX-9%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-Windows-2000-XP%E7%89%88/dp/4886487262/ref=sr_1_13?ie=UTF8&s=books&qid=1200288761&sr=1-13 他にも何冊か読んだけど、あんまりいい本ないな。 ネットだけで十分っていう人はひどい本つかまされたのかな。
527 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:02:52 ] それなら、「ネットだけで十分」じゃなく、「本は使えない、ネットの方がマシ」ってなるだろ 先に国語の教科書買った方がよかったんじゃない?
528 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:22:41 ] 工学者のDirectXの本はヘルプをなぞるようにできてるだけだけど 色んな要素がつながってない初心者には全体が見渡せていいと思う 俺は超オススメ ただ、緑っぽい外装で中身が違う類似品があるので中身は見て買わないとw
529 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:50:52 ] >>523 ManagedってUnmanagedとどう違うの? 関数名やクラス名が違うだけであんまり変わらないと思うんだけど。
530 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:14:43 ] .NETかそうでないか
531 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:18:42 ] >>516 ありがとうございます
532 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:21:13 ] >>517 Game Programming Gemsはなかなか絶版にならないよ
533 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:23:10 ] >>517 初心者用の2Dアクションゲーム本ならソフトバンクから出してるよ
534 名前:533 mailto:sage [2008/01/14(月) 17:26:44 ] あっ出てたw
535 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:17:53 ] >>533 うーん、ただ2Dで満足してほしくないな 3Dを知ってる人間が作る2Dゲームのほうが圧倒的に出来がいいからw
536 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:45:14 ] >>535 初心者本ね
537 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:03:29 ] 3Dを知ってるのと2Dゲームの出来は別に関係ないよ エフェクトに3Dを使う事もあるだろうけど、それは純粋な2Dゲーではないから もっとも、DirectX自体が2Dを3Dの一部とする考え方なので 2Dゲーを作るにも3Dの知識が少しは必要になる
538 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:13:47 ] >>537 全然わかってないな 見た目は2Dでもゲームの空間を3Dにする技術のことを言ってるんだよ 表現次第でグラがいくら2Dでもゲームの空間を3Dにすることは可能 3Dの機能なんて理解してて当たり前
539 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:32:33 ] だからそれは見た目2Dなだけの3Dゲーだっての
540 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:33:25 ] タクティクスオウガみたいなのを想定しているのか?
541 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:35:27 ] >>538 が2Dゲーだと思ってるのは3次元上にビルボードを貼り付けた 3Dゲーの事を言ってるんだろ
542 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:41:14 ] レイフォースが使ってる表現なんかのことじゃないの?
543 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:46:57 ] まあFFなんかでも2Dの美麗マップ上を3D空間座標で キャラが移動してたりするからな それを2Dゲーと見るか3Dゲーと見るかは人それぞれ
544 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:04:59 ] >>543 そうそうそういうことそういうこと 高低差とか奥行きとかあるマップとか理解してもらえるといいと思う 螺旋階段とかw
545 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:05:57 ] ま、一般的には3Dゲーって言うけれども
546 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:18:54 ] >>545 2Dゲーっていうんじゃない? だって見た目3D機能使ってないように見えるんだよ? 内部の演算まで見通して「あ、これ3Dだ」っていえないと思うんだよね 2Dでうまくやってるかもしれないし
547 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:20:34 ] あらかじめレンダリングしたデータを 2D で持ってるだけっしょ。 z-order などを工夫して立体っぽく見せてるだけで。
548 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:29:45 ] 本当に重要なのは2Dか3Dかではなく、回転有りか無しかだけどな。 回転無しの3Dは全然難しくない。
549 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:40:41 ] 正確には、回転と移動の組み合わせが難しい。 思い通りに座標点を制御するのはプログラムそのものだけじゃなく、 最低でも高三以上の線形代数の知識が必要。
550 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:24:40 ] Release()し忘れたDirectxTextureなどを検出する方法ってありますか
551 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:33:32 ] CComPtrでも使っとけ
552 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:45:45 ] >>517 アクションゲームプログラミング (大型本)持ってるけど玄人以外にはいいと思う ページ構成は糞だけど
553 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:52:11 ] >>547 3Dを表現した2Dの絵に当たり判定(地形なども含む)を合わせるときなんかは どうしても内部は3Dでもったほうが楽だ フラグとか利用して根性で2Dでも表現できるっちゃできるけど、 開発が長引いたときに地獄みると思うw
554 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:00:34 ] 回転を一切使わない3Dって成り立つのか?
555 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:02:55 ] >>554 何の話だよw カメラ固定なら拡大縮小だけでいけるんじゃね?w
556 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:10:59 ] スマブラみたいに基本を2Dで、モデルを3Dでっていうのは成り立つ。 そういうのはあんまし線形代数の知識はいらん。
557 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:03:41 ] >>556 GCで出たのは結構小技が冴える出来だったけどな 板ポリレーザーなんだけどカメラをぐるぐるまわしてもちゃんとレーザーに見える・・・みたいな
558 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:37:58 ] >>554 ジャンプできる2Dアクションゲームは大抵、中身は回転を一切使わない3Dだよ。 古い例だとサークとか。
559 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:52:33 ] VRシステムは回転をサポートしていません。
560 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:59:20 ] パースペクティブシャドウマップで質問です。 スポットライトの場合、 matrix4x4 toShadowSpace = cameraView * cameraProj * lightView * lightProj; のようにするのが一般的だと思いますが、このlightProjの作り方がわかりません。 cameraの射影空間では、スポットライトのコーンがひしゃげてしまい ワールド空間のように、コーンから一意に射影行列を求める訳にはいきません。 現在はひしゃげたコーンから近似的に射影行列を作っていますが、 満足のいく精度ではありません。世の中一般ではどうするのが普通なんでしょうか?
561 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:09:00 ] LPDIRECT3DTEXTURE9 pTexture; と宣言していて、デストラクタで pTexture->Release(); と解放しようとすると 0x004897d1 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0xcccccccc を読み込み中にアクセス違反が発生しました。 とエラーが出てしまいます。 初期化では D3DXCreateTextureFromFile(pD3DDevice,"sample.bmp",&pTexture) としています。 環境はdirectx9.0 , Visual C++ 2005です。 解放の仕方が悪いのでしょうか?
562 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:10:17 ] ロード失敗したのに解放しようとしてるとか
563 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:21:09 ] >562 そう思って if ( pTexture != NULL ) { pTexture->Release(); } としてみたんですが、それでもエラーが出てしまいます。
564 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:23:54 ] NULLで初期化してる?
565 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:30:11 ] >564 やってないことに気づいて if(FAILED(D3DXCreateTextureFromFile(pD3DDevice,"select_back.bmp",&pTexture))){ pTexture = NULL; return E_FAIL; } としてみましたが、やはりエラーが出てしまいます。
566 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:38:02 ] if ( pTexture != NULL ) { pTexture->Release(); pTexture = NULL; } 次はこれだ! ・・・なーんか違うような気もするが・・・w
567 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:39:19 ] なんかたくさん聞かなきゃいけないけど そもそもD3DDeviceは取得できてるの? それとテクスチャロードして、それ使って表示できてる?
568 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:43:14 ] 当然アドレスは調べたんだろうな。
569 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:46:55 ] >567 すいません、初期化やる場所が悪かったみたいで、コンストラクタ内でやったらか解決しました。 ありがとうございます。
570 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:07:06 ] } catch (...) {
571 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:31:47 ] 変数の初期化は、その変数を最初に作ったときに必ずするべきだ クラスのメンバ変数なら全てコンストラクタで初期化すべし
572 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 07:25:37 ] >>569 はぁ? しばらく悩みそうだなお前・・・w
573 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 19:55:28 ] Win32APIはある程度書けるけど、DirectXはまったく知らないって状態なんだけど どの本買って勉強すればいい?
574 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 19:55:57 ] ネットで十分
575 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:20:53 ] そもそも何をしたいのかすら説明するのを面倒くさがる、 その必要性を鑑みることの出来ない人間が何をやっても無駄。
576 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:48:54 ] >>575 氏ね
577 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:32:46 ] 反論できずに罵倒しか出てこない場合、図星だったってことだ
578 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:45:24 ] >>573 人生論(トルストイ著)
579 名前:デフォルトの名無しさん [2008/01/17(木) 18:34:42 ] DirectMusicが 2007November からなくなってしまいましたが、代替手段はどうしていますか? やっぱりDirectSoundでゴリゴリ書くしかないのでしょうか……
580 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 23:31:32 ] www.4gamer.net/specials/tooearlytogetvista/003/tooearlytogetvista_003.shtml
581 名前:579 [2008/01/18(金) 18:39:32 ] >>580 情報ありがとうございます まだ混沌としているみたいですね。落ち着くまで古いバージョンのSDK使うことにしました
582 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:30:02 ] SDIで開発してるんですが、各コントロールにリアルタイムで動くグラフを書きたいんですが、 SwapChainであってるんですか? またその後の方法もわからんです・・・
583 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 07:26:10 ] スレ違いの予感 グラフ描くだけならGDIで事足りるだろ
584 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 01:20:27 ] 統合シェーダ型GPUって、DirectX9.0でも動的にVS、PSの振り分けしますよね?
585 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 06:33:59 ] >>584 ドライバーの設計次第。
586 名前:584 mailto:sage [2008/01/20(日) 10:02:27 ] >>585 ありがとうございました!
587 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 10:34:34 ] >>573 本が好きなら本屋で自分好みのDirectX本を探せ あと、どうでもいいコメントはスルーしろ
588 名前:デフォルトの名無しさん [2008/01/20(日) 21:08:22 ] DirectXを使ってWindowsゲームを作ろうとしてます。 買った教則本ではDirectX 9bを使ってましたが、 Microsoftのサイトに行くと、 9とか10とか数字のバージョンが書いてなくて、 DirectX SDK (Novemeber 2007)というのがありました。 これでいいんでしょうか?
589 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 21:24:57 ] 当然C++は理解してるんだろうな?
590 名前:588 mailto:sage [2008/01/20(日) 21:29:48 ] >>589 俺あてでしょうか? 大丈夫です。CとC++は1ヶ月くらい勉強しました。
591 名前:588 mailto:sage [2008/01/20(日) 21:41:07 ] Novemeber 2007をインストールしてみたら、 教則本で使ってる<d3dx9.h>ってのが入ってたので、 9も使えるっぽい感じでした。
592 名前:588 mailto:sage [2008/01/20(日) 21:58:32 ] と思ったら"d3dx9dt.lib"と"dplayx.lib"がないです。。。 前者は"d3dx9d.lib"で代用できるっぽいですが、後者はないんでしょうか。
593 名前:588 mailto:sage [2008/01/20(日) 22:27:22 ] つまずきました。。。InitD3d(hWnd)ができません。 エラー「'InitD3d': 識別子は、引数依存の照合を使用しても見つかりません。」 #include <d3dx9.h>はできてるのに、なんで?
594 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:38:59 ] >>588 www.microsoft.com/downloads/results.aspx?freetext=DirectX%20SDK&DisplayEnglishAlso=true&sortCriteria=date&displaylang=ja まず必要なバージョンを調べて入れろ。 分からなきゃ教則本と同じバージョンを入れろ。 教則本を一通り終えるまでここには書き込むな。
595 名前:588 mailto:sage [2008/01/20(日) 22:39:58 ] <d3dx9.h>に入ってるのかと思ったら、 InitD3dは自前の関数だったようです。。。
596 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:50:10 ] また今度な。いちいちお前のレポでスレ消費したくない
597 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:29:11 ] >>595 気持ちは分かるがんばれ
598 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:53:46 ] >>588 ここの住人は辛口だが、これくらいで挫折するなよ。 それからはじめから全部理解しようとするな。 まず本に書いてあるとおりに開発環境を整えて、 DirectX SDKのサンプルコードをビルドして実行しろ。自力で。
599 名前:デフォルトの名無しさん [2008/01/21(月) 00:28:08 ] >>593 全然C/C++理解してねーだろw
600 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:57:46 ] >>599 上げんなクソガキ
601 名前:588 mailto:sage [2008/01/21(月) 02:20:31 ] 初心者質問スレなんだからいいじゃん。。。 なんとか2Dのスプライト描画ができました。
602 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:48:25 ] お前のチャットルームじゃねーんだよ甘えんな糞ガキ
603 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:12:59 ] はたしてクソガキに見えるレスをしているのはどちらだろうか。
604 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:48:21 ] >>603 ズバリあなたです。
605 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 04:16:20 ] お前らクソガキクソガキ書きたいだけちゃうんかとクソガキが
606 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 05:29:49 ] >>601 分からないなら参考書と同じSDKを入れるのが一番いいと思うぞ