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


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

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



1 名前:デフォルトの名無しさん mailto:ライシンマハケン [2008/07/17(木) 13:50:04 ]
1 名前:デフォルトの名無しさん[sage] 投稿日:2008/04/09(水) 09:55:56
※回答する人も、質問する人も必ず読んでください

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

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

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

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

152 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 17:32:14 ]
まぁゲーム内容次第だべ。
CoD4の手榴弾みたいなリアルな爆発が欲しい時と
GCのゼルダみたいなアニメ調のが欲しい時では話が違うんだし。

153 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 17:39:46 ]
大抵モデリングツールからの出力をそのままだしゃいいのに
くっだらないイレギュラー想定して発言を潰す作戦ですか?

154 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 17:58:19 ]
それらのやり方にパーティクルイリュージョンほどの使い勝手があるとは思えないんだけど

155 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 18:26:19 ]
>>151
パーティクルやったこと無いんじゃない?

156 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:42:54 ]
>>155
あるある
うちのモデリングツールのプラグインに吐き出す奴あるもん

テクスチャアニメーションで粒子を表現するタイプと
頂点シェーダで吐き出してくれるタイプがあるよ

どっちもモデルのアニメーション扱いでいけるようになってる

157 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:47:42 ]
手間がかからず実装できるとかじゃなくて会社にあるツール自慢を初心者スレでされても・・・

158 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:57:35 ]
市販のツールを使うのが一番簡単なわけだが

159 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:58:00 ]
それぞれの環境を試したこと無い人達が自分達の方が楽とかいうのはどうなの?
2Dやってる人は、モデルデータからエフェクト作ってみなよ
3Dやってる人は、パーティクルイリュージョンとか使ってみなよ

160 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:02:56 ]
>>159
ないならないで仕様を固定すればやりようはいかようにもある
ただ、その方法を挙げても別のイレギュラー的例を挙げて
そういう案を潰すことばっかりさっきからしてるじゃん

それじゃなんにも進まんと思うのよね
だから2Dで全部アニメーション・・・みたいな馬鹿な選択肢を選んじゃうわけでさ

もっと現実的な話を考えたらぶっちゃけ3Dしか道はないのは誰の目にも明らかで
2Dゲーがなくなっちゃった理由はまさにメモリ使用量に対する表現力の貧弱さなので
あってこんなところ問題じゃないように思うんだけどどう?



161 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:08:54 ]
だからこういう問題にぶち当たる前にするべきなのは技術的な話じゃなくて
あくまでも仕様の固定化なんだよね

ってのはもうずいぶん前に学習した
どんな開発であっても汎用ツールを作ってはならない

まずこういう問題にぶちあたってしまったら
その時点ですでにゲームオーバーな状態にあるわけで手遅れなんだよね
プログラマとしての腕を見せる前にこういう問題を起こしてしまうプログラマってのは
社会人としてすでに駄目な場合が多い

作るときにたくさん疑問がでて細かい警告をいくつも見つけてたのにも関わらず
誰にも相談しないで勝手に想定して勝手に自爆してしまっているんだよね

って初心者スレで過去の自分を振り返って語ってるテスト

162 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:13:17 ]
>>160
いや勝手に色々と決め付けてその案を潰そうとしてるのはお前の方だと思うんだ
それに対して2Dって選択肢は間違いでもないだろって話であって
今回のだって圧縮のやりようで許容範囲でしょ

163 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:16:37 ]
時間も金も無限にあるわけじゃないんだから、必ずしも毎回ベスト目指せるような環境とは限らん
あーこれ駄目だよな、とか思いながら騙し騙しやっていくもんじゃないだろうか?

164 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:22:47 ]
今時ならGPGPUでデータのリアルタイム解凍しながら描画とか出来るしな。

165 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:10:27 ]
>>156
テクスチャアニメーションで粒子を表現って普通のパラパラアニメじゃないの?
頂点シェーダではき出すって、頂点シェーダのプログラムをはき出すの?


166 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:12:12 ]
>>164
GPU 周りが GPGPU を使えるほど余裕があるようなシチュエーションってそんなにあるか?

167 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:08:26 ]
>>166
3Dゲームだとぶっちゃけない。
ただ2Dでパラパラアニメするって言ってるんだから
殆どGPU使わないような2Dゲーなのかと思っただけ。

168 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 01:30:50 ]
>>162
>今回のだって圧縮のやりようで許容範囲でしょ
じゃ、やれば?
ただ、3Dだったらもっとよくなったかもねw

169 名前:64 mailto:sage [2008/08/04(月) 03:41:04 ]
ものすごい議論が進んでしまっているようで
なんだか割り込んでしまう形になってしまうのですが、一応報告を…

あ、ちなみに今回のは学校の友達と一緒に作っているようなレベルで
高価な機材やソフトとかも全然無い状況なのです。
なので締切りも無く、時間が限られてるわけでもなかったりします。

なので、とりあえず3Dでやってみることにしました。
今までDirectDrawしか触ってなかったもので、3Dには正直疎いのですが
これを機に勉強してみることにしました。

圧縮やフレーム数の削減なども考えたのですが、
これを機に3Dにも手を出してみることにします。
(アニメ調のものもあるので、表現しきれるかはわかりませんが…)

相談に乗ってくださってありがとうございました!

170 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 14:37:05 ]
お互い相手の良い所が見えてない生き物が自己主張してるだけなので
この話題はこの後もグダグダ続く。
適当に教わったことにして話題を切り上げた>>64は優秀。



171 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:20:29 ]
切り上げたのに余計な蛇足つけんでも(笑)

172 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 14:56:26 ]
directXで背景が3Dの2DSTGを作ろうと思ってるんですが。

DXライブラリの様にクライアント領域左上が(0,0)で座標の管理がしたいんですが
どういった関数郡を使えば良いんでしょうか。

DXライブラリとdirectXの両方で使おうとおもってDXライブラリの設定にしたら
directXでプログラムしたところがエラー吐いてどうすればいいのか。

DXライブラリで出来るということは元のdirectXで出来ると考えて良いんですよね?

どなたか助言頂けると幸いです。

173 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:15:01 ]
3D描画も左上(0,0)にしたいのか?
2D描画のみでいいなら楽だが

174 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:19:47 ]
レスありがとうございます。

3Dの部分を描画した後2D部分を描画すれば問題なさそうなので
2D部分のみでも良い方法があったら是非教えて頂きたいです。

175 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:28:45 ]
関数群ってよりかカメラの設定かな。
DirectXならD3DXMatrixOrthoOffCenterLHを使うと、
物体を遠くに置いても小さくならない。座標を2D画面の様に使える。
詳しく知らないけどDXライブラリで出来ることはDirectXでできると考えて問題いと思うよ。
ただ、共存はどうだろう?俺がライブラリ作者なら勝手に内部数値変えといて後でバグ報告されるとたまらんから、
非推奨、自己責任でってするけど。

176 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:29:33 ]
射影行列変換に
D3DXMatrixOrthoLHを使う(引数wとhはウインドウサイズ)
座標変換済み頂点の板ポリで2D描画する

177 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:31:09 ]
DXライブラリは使ったことがないので知らんが、
3D座標上の特定の奥行きをスクリーン座標に合わせるのであれば、
奥行きと視野角から行列を逆算すればいい。

178 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:57:53 ]
おお、こんなにレスが、、ありがとうございます。

カメラの
D3DXMatrixLookAtLH を D3DXMatrixOrthoOffCenterLHに

射影変換の
D3DXMatrixPerspectiveFovLH を D3DXMatrixOrthoLHにでいいんでしょうか?

とりあえずやってみたら板ポリゴンも何も表示されなくなってしまいました。

179 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:01:55 ]
とりあえず該当箇所は現状こんな感じでプログラムしてました。

//ビューマトリックスの設定
VOID ViewMatrix(LPDIRECT3DDEVICE9 theDevice) {
D3DVIEWPORT9 vp;
if(FAILED(theDevice->GetViewport(&vp))) {
return;
}

// アスペクト比の計算
float aspect;
aspect = (float)vp.Width / (float)vp.Height;

// 初期化
D3DXMatrixIdentity(&m_proj);
// 射影マトリックスを作成
D3DXMatrixPerspectiveFovLH(&m_proj,
D3DXToRadian(45.0f), // カメラの画角
aspect, // アスペクト比
1.0f, // nearプレーン
1000.0f); // farプレーン
//ここにD3DXMatrixOrthoLH(&m_proj,640,480,0,0);?
// マトリックスをレンダリングパイプラインに設定
theDevice->SetTransform(D3DTS_PROJECTION, &m_proj);
}

180 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:02:26 ]
//カメラの設定
VOID Camera(LPDIRECT3DDEVICE9 theDevice) {
D3DXMatrixIdentity(&m_view);
D3DXMatrixLookAtLH(&m_view, &D3DXVECTOR3(0.0f, 0.0f, -50.0f),
&D3DXVECTOR3(0.0f, 0.0f, 0.0f),
&D3DXVECTOR3(0.0f, 1.0f, 0.0f));
//ここにD3DXMatrixOrthoOffCenterLH(&m_view,0,640,0,480,0,0);?
theDevice->SetTransform(D3DTS_VIEW, &m_view);
}



181 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:22:53 ]
D3DXMatrixLookAtLHは変えなくていい
D3DXMatrixOrthoLHにnearプレーンとfarプレーンが設定されてない
D3DXMatrixOrthoLH(&m_proj,640,480,1,1000);

182 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:42:05 ]
出来ました、この場合だと中心が0.0になるんですね。
でもこれでかなり理想に近い状態になりました。

本当にありがとうございました、皆様に追いつけるよう頑張ります、、、

183 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:51:47 ]
だから座標変換済み頂点を使えと
D3DFVF_XYZRHWか
D3DDECLUSAGE_POSITIONTでぐぐれ


184 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 15:13:11 ]
WinXPで(D3D10を使用しないで)、最新GPUのリソースをフルに使うには
どういう選択肢がある?
nVidiaならCUDA?
ATiは?

185 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 16:16:13 ]
directXのカメラの原点を一時的に移動するにはどうしたらいいでしょうか。
(0,0,0)にある原点を(30,0,0)に移動して描画した後また(0,0,0)に戻したりしたいのですが。

186 名前:185 mailto:sage [2008/08/06(水) 16:23:08 ]
言葉で上手く表せないので絵にしてみました。
ttp://hishou.ddo.jp/~bbs/up/img/up084.jpg

187 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:08:10 ]
文字通りカメラの原点を移動して戻せばいいんじゃね?

188 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:41:47 ]
そのやり方がわからなかったんですけど、うんこしてる間に自己解決しました。

189 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:19:27 ]
>>184
ビデオカード毎に全部作る気概があるの?
そうでないならシェーダーでよくね?

190 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 07:08:44 ]
GPUの性能をフルに引き出すのが目的なのか、
何らかの目的のためにGPU性能を引き出したいのか・・



191 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 07:42:46 ]
GPUの性能なんて、フルに引き出したら発熱量が増えるだけじゃん。

192 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:55:42 ]
ちょっと疑問なんですが。

winapiのタイマーで10mscに1回WM_TIMERを送ってrenderを呼んでるんですが
10mscの間にrenderの処理が終わらなかったら処理はどうなるんでしょうか?

処理ののコマ抜けみたいなのが起きたりするんじゃないかと不安なんですが。
変数ループで1から100の間の50ループ目だけ飛んだり。

ちなみにリフレッシュレートはD3DPRESENT_RATE_DEFAULTで固定してます。
これってリフレッシュレートに合わせて描画してると考えて良いんですよね?

だとすると尚更メッセージループとの誤差が生じるんでは内科と心配なのです。

193 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 01:07:52 ]
処理し終わってから次のWM_TIMERが来る

194 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:32:27 ]
タイマーが10msに一度やってくるとでも思ってるのだろうか

195 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:00:49 ]
サンタが街にやってきた

196 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:25:47 ]
CとC++の勉強が一通り終わったのでDirectXのグラフィックについて勉強しようと思うのですが
WIN32APIを極めないで勉強するのは無謀ですか?
少しだけ勉強したのでWIN32APIの基礎ならわかります。

197 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:29:35 ]
>>196
極めてる人はそういないと思うよ
いつまでたってもヘルプ見ながら書いている俺


198 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:31:02 ]
窓開いてHelloWorld出せる程度でとりあえずは十分

199 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 12:37:35 ]
>>197 >>198
なるほど〜。
C言語に比べて覚えることが多すぎてちょっとびっくりしていましたw
アドバイスありがとうございました!

200 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:45:56 ]
>>199
そりゃぁあんた、「日常会話を英語でする」のと「代数幾何を英語で学ぶ」のとででは必要な知識が桁違いに決まっているだろ。



201 名前:デフォルトの名無しさん [2008/08/09(土) 14:56:11 ]
独自フォーマットの3Dモデルデータを描画しようとしています。
1つのメッシュで2つ以上の物体が離れて存在する場合、
D3DPT_TRIANGLESTRIPの設定で1回で描画するのは無理なのでしょうか。
エラーが出るわけでは無いのですが、物体が離れているメッシュを描画すると1つの三角形が橋渡しのように表示されます。
D3DPT_TRIANGLELISTだと必要な頂点数がかなり増えるため使用は控えたいです。

Xファイルでは1つのメッシュをDrawSubsetで描画できていますし、頂点の並び方に法則があったりでもするのでしょうか。


202 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:57:30 ]
そうなるように頂点データを構築すればいい。以上。

203 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:58:42 ]
ちなみにDrawSubset()は中でD3DPT_TRIANGLELISTを使ってDrawIndexedPrimitive()を呼んでいる。

204 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:10:29 ]
縮退三角形でググってみ。

205 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:26:52 ]
>D3DPT_TRIANGLELISTだと必要な頂点数がかなり増えるため使用は控えたいです。
なんでインデックスを使わずに、効率の悪い方法を選ぶんだ?

206 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:12:50 ]
インデックスにしてもストリップのほうが3分の2から半分ぐらいになるから自前ならストリップにするほうがいいけどね。
別に数kb増えたところでどうってことはないけど物量で勝負するアプリなら恩恵は受けられるんじゃないかな。

207 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:16:05 ]
nVIDIA先生も言ってるがキャッシュ効率を考えたら最速はリストだろう。

208 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:17:57 ]
いやTRIANGLELISTと比べてってことでしょ
どうでもいい話だが。


209 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:24:47 ]
速度や効率を考えたらどう考えてもストリップの出番はない

210 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:32:57 ]
確かにな
踊り終わるまで待ってるのダルイ・・・・



211 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 10:34:21 ]
あれ。インディックスのストリップってないんだっけ?

212 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 11:29:33 ]
あるけどインデックス使うならリスト使った方がいいだろ。

213 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 11:43:18 ]
場合によりけりだけど複数描画するならリストで1回ならストリップのほうがいいかな。
検証用の単純なものであればリストが有利だけど
かなり組みあがっているアプリの所々ストリップに直したらCPU/GPU負荷が平均で5%ほど下がった。

214 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 11:59:39 ]
自作のスキンメッシュデータをインデックスのストリップとリストに相互変換するプログラムを組んでみたが、
リストの方が確実にFPSが上昇した。

215 名前:デフォルトの名無しさん [2008/08/10(日) 12:01:25 ]
名前が緑になるんですが 青にはどうすればなれますか?

216 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 12:04:18 ]
光の波長を変える

217 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:52:13 ]
>>213,214
モデルの形状も影響するんじゃなかろうか。
ストリップをぶつ切りにする必要のある形状だと当然効果は薄いし、
なるべく法線の近いもの同士でストリップを繋ぐと、
陰面消去の時に効率が上がる場合がある。
メッシュでどこまでやってくれているか解らないけど、
ストリップを繋ぐアルゴリズムって奥が深いらしい。

218 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:03:06 ]
奥が深いというより本気で最適化しようとするとロジックが複雑になるというだけの話。
そんな状況でメリットが全く見えない。

219 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:06:13 ]
縮退なしで書けるなんて状況まずないからな。
いちいち反転するからCPUでコリジョンとる時とか面倒だし。

220 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:12:37 ]
そもそもモデリングデータをストリップで吐き出すデータ形式を見たことがない。
データを読み込んだ後にわざわざストリップに変換しているライブラリを見たことがない。

ちまたで見かけるのは平面を書くだけの単純なサンプルで、
インデックスを使わずにストリップのみで構成している、
まともに組むときには書かないようなダメソースぐらい。



221 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:00:24 ]
半透明とかストリップだときつそうだし、いろいろ細かい部分が面倒。
UVの割れとかも考えると、効率的にもそんなに変わらない気がする。
のっぺりテクスチャ無しの球でテストしてるときとは違うし。

222 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:28:46 ]
インデックスリストはGPUの頂点キャッシュアルゴリズム依存という問題はあるが、
淘汰されて4社しか残ってない今となってはどうでもいいな。

223 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 19:46:57 ]
>>222
GPUの頂点キャッシュアルゴリズム依存度よりも、
ユーザーの財布依存度の方が高いから。

224 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 03:36:47 ]
バックバッファについて教えてください。
1.アプリ毎に専用のバックバッファを持つんですか?
2.窓モードのバックバッファのウィンドウ外の領域は何も描画されていないんですか?窓サイズ変更時にバックバッファサイズも変更される?
3.窓モードで、ディスプレイに表示されている画像は全てのバックバッファを重ねたものと言うことですか?


225 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 04:45:59 ]
ちょっと描画するくらいなら既存のバックバッファ使った方が良い?
新しいバックバッファを追加するコストが知りたい

226 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 08:08:29 ]
効率なんて実装方法によって子となるんだから、自分で作って最適解を見つけろよ。
知りたいなら試せ。

227 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 11:10:25 ]
>>224
1.そうだ
2.そうだ
3.違う 1つだけだ

>>225
そうだ
バックバッファいじらないならデフォのまま使うんだ

228 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:07:36 ]
>>224
アプリ毎に持ちます

バックバッファの大きさは任意です。窓の大きさとは関連しません。
まぁデフォルトの窓の大きさ(たとえばゲームなら640x480とかね)と一致させるのが一般的。

窓の大きさを変えるたびにバックバッファの大きさを変えるのはあまりないんじゃないかね
窓が大きくなったら、バックバッファから窓への転送時に拡大する

ディスプレイも1つバックバッファを持っている。
アプリが自分の窓へ描画=ディスプレイのバックバッファへの描画

229 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:25:22 ]
ツールとかでドラッグで大きさ自在に変えるような場合は
デスクトップと同じサイズで作って窓の大きさ分を左上に描画して使ってるな。
サイズが変わるたびに作り直すのは流石に無茶。

230 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 01:37:02 ]
スタート画面にクリックしたらそれぞれのシーンへ飛ぶボタンを表示させたいのですが
何か良い方法は無いでしょうか?



231 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 01:49:16 ]
スタート画面をクリックする前はボタンを描画しないで、
スタート画面をクリックした後はボタンを描画すればよい

232 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:29:06 ]
スレの主旨から言ってDirectXで、という話だと思うけど
DXUTが一番楽なのでは。
後はイルリヒトとかコンポーネントっぽいのが入ってた気がする。
ダイアログを置いてオーナードローでDirectX描画っつー手もあるけど
多分、面倒臭いと思う。

233 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 05:45:47 ]
質問です

スペースキーを押したらゲーム本体が始まる様にしたいのですが
実行するとキーの状態を取得せずにいきなりゲーム本体が始まってしまいます
どうすれば最初にスタート画面を表示し続けれるのでしょうか?

スタート画面処理
{
  if ( GetAsyncKeyState(VK_SPACE) & 0x8000 ){
スタート画面を描画する
}
}

while(1){
if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
〜略〜
}else{
スタート画面処理
ゲーム本体
Sleep(1);
}
}

234 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 08:14:20 ]
何と言う糞設計

DirectX関係ないし

235 名前:233 mailto:sage [2008/08/19(火) 10:23:26 ]
>>234
は?黙れ

236 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 10:27:09 ]
いやでもDirectX以前の話。
そこまでひどいとどこから説明していいのか途方にくれるわ。

237 名前:233 mailto:sage [2008/08/19(火) 10:33:45 ]
なんだよ つかえねーな

238 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 11:11:24 ]
 if ( GetAsyncKeyState(VK_SPACE) & 0x8000 ) なの?

239 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 19:26:21 ]
アドバイスのしようがないほどのソースは久しぶりに見た。
まずはメインループを書ける様になってからだ。

240 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 20:02:05 ]
「DirectXゲームグラフィックスプログラミング」の他にDirectXの基礎事項を勉強できるおすすめの本はありますか?



241 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:49:17 ]
if ( (GetAsyncKeyState(VK_SPACE) & 0x8000) == 0 ) でイインジャネ?

242 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 09:59:44 ]
入力待ちしないものでいくら判断したって押されてなけりゃそのまま通過するだけだろうが。

243 名前:デフォルトの名無しさん [2008/08/20(水) 15:43:01 ]
if (GetAsyncKeyState(VK_SPACE) & 0x8000)
else if ( (GetAsyncKeyState(VK_SPACE) & 0x8000) == 0 )

244 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 20:19:13 ]
ひどいソースわろた

245 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 21:57:09 ]
常にスペース押しとけばいつか動くさ

246 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:32:29 ]
DirectShowの質問です。

ムービーの動画をテクスチャに移して加工した上で表示させたいと思い、
ネット上のサンプルを読み漁ってとりあえず組んでみたのですが
以下の疑問点が発生しました。
どなたかわかる方が居ましたら、答えていただければありがたいです。

1. ムービーファイルの画像を「1枚ずつ」「任意のタイミングで」取得する方法はありますか?
 現在のコードでは、DirectDrawに再生させておいて
 描画時にテクスチャを取得して再生する、という構造になっています。
 おそらく別のスレッドで再生させているのだとは思いますが
 このシステムでは、負荷でメインスレッドのFPSが落ちた場合などに
 当然ながら同期のズレが発生してしまいます。
 (動画とメインループのフレームの比率が変化してしまうため)
 アプリ側から任意のタイミングでフレームを進めることはできますでしょうか?
 
2. 実際に再生させるルーチンまでは作れたのですが
  動画ファイルの読み込みに250msほど時間がかかってしまいます。
  特にIGraphBuilderのRenderFileメソッドが非常に重く、
  ここだけで200ms持って行かれてしまいます。
  これはムービーファイルを再生する上で回避できない時間なのでしょうか?
  ちなみに、ムービー形式はサンプルに沿ってwmvを使用しています。

DirectShowというと、マイナーでネット上のサンプルも少ないというイメージで
触っている人が少ないかもしれないかと思うのですが、わかる方が居ましたら
よろしくお願いいたします。

247 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:34:11 ]
ここまで書いてふと思ったのですが、
DirectShowなどに頼らずに自分で動画をデコードするような
コードを書いたほうが早いのでしょうか…
再生する形式はwmvなりmpegなり1形式に絞れるので。

248 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 10:01:06 ]
ム板かマ板にDirectShowと戦うスレがあったはず
DirectShowがDirectXから切り離されてひさしいので
そっちで聞いたほうがいいかと

249 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 12:36:26 ]
ありがとうございます。

この板にDirectShowと戦うスレ Part 4というスレがあったので
そちらで再度質問してみることにします。

250 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 17:50:09 ]
テクスチャフィルタをポイントに設定するにはどうすれば良いでしょうか?
現状はバイリニアのかかったような少しぼけた画像が
表示されてしまいます。
SetSamplerStateでポイントサンプリングに設定しても変わりませんでした



251 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 20:40:46 ]
交差している半透明のポリゴンを正しく表示するにはどうしたら良いでしょうか?

252 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:11:17 ]
交線でポリゴンを切り分ければ良し






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

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

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