■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

【C++】 DirectX初心者質問スレ 【C++】
251 名前:デフォルトの名無しさん :04/09/26 16:10:01
>>249
ハードウェアT&Lと激しく混同なさってますyo...

252 名前:デフォルトの名無しさん :04/09/26 16:10:39
アセンボラ

253 名前:デフォルトの名無しさん :04/09/26 16:13:44
ハードウェアT&Lの機能をさして
そのソフトエミュをさして

D3Dで
Vector * Matrix が出来るか…
スゲーな。

254 名前:デフォルトの名無しさん :04/09/26 16:17:44
>>247
>>249

わたくしめの、
スキニングアニメーションのプログラムで
vector * matrix
をD3Dがやってくるようにしたいのですが

何か指定の方法があるのでしょうか?
D3Dの関数が用意されているのでしょうか?
D3Dのクラスが用意されているのでしょうか?

255 名前:デフォルトの名無しさん :04/09/26 16:19:55
おれが249だったら絶対に正体を知られたくないw

256 名前:デフォルトの名無しさん :04/09/26 16:20:16
>>254
固定処理なら頂点にウエイトを設定して、
必要な行列をセットしてレンダリングするだけだが?

257 名前:デフォルトの名無しさん :04/09/26 16:24:00
>>256
それだとグラボ(GUP)で処理されてしまいます。
D3Dにやらせたいのです。

258 名前:デフォルトの名無しさん :04/09/26 16:25:08
>>256
レンダリング以外の処理は?

259 名前:デフォルトの名無しさん :04/09/26 16:27:14
>>257
つまりドライバ側に投げる処理は、D3Dではないと言いたいわけか?

260 名前:デフォルトの名無しさん :04/09/26 16:30:24
>>259
つまりSetTransformの処理を、vector * matrixと言いたいわけか?

261 名前:デフォルトの名無しさん :04/09/26 16:34:24
>>259
普通投げた時点で、計算はしてないってなるだろw
計算から処理に言葉を変えるなよw

262 名前:デフォルトの名無しさん :04/09/26 16:35:47
ドライバ側が行う処理がDirectXの仕事ではないとすると、
例えばDirectDrawでVRAM上の画像のブロック転送を行ったときも、
それがビデオカード側で処理されれば、
DirectDrawの機能ではないという屁理屈をこねたいのだろうか?

>>260
>つまりSetTransformの処理を、vector * matrixと言いたいわけか?
そこでは値を設定しているだけというのは置いておくとして、
その後に実際に演算が行われるときは、頂点*行列が行われている。

263 名前:デフォルトの名無しさん :04/09/26 16:39:13
>>262
お前はハードウェアT&Lの機能を
vector * matrixとか言ってD3Dだとほざいてるわけか?

プログラマが任意にvector * matrix使いたい場合は
どうすんるんだ?

264 名前:デフォルトの名無しさん :04/09/26 16:43:47
>>262
お前の理屈でドライバの処理がD3Dなら
ドライバに命令するプログラムで使用した
VECTORやらMATRIXのクラスなり構造体が
D3DXだとD3DXの処理だ、とはならんのか?

265 名前:デフォルトの名無しさん :04/09/26 16:52:33
算術計算の話をしている中で

>そこでは値を設定しているだけというのは置いておくとして、

置いておけないだろ…


266 名前:デフォルトの名無しさん :04/09/26 16:53:49
HW-TnLでもシェーダでもソフトエミュでも、
それ以上ユーザが低いレベルで使えるAPIが存在しない以上、
D3D内のインタフェイス上から実行されているのならD3Dの機能。
そもそもドライバ側がD3Dの機能の一部として使えるように書かれている。

>プログラマが任意にvector * matrix使いたい場合は
それは自前で計算する以外にはない。
割合的には多くないが、最適化したいのなら、アセンブラでも何でも使えばいい。
ただし少ない部分を最適化しても、全体のパフォーマンスが上がる可能性は薄い。

逆に質問するが、処理負荷の中心である、
頂点*行列のほとんどはD3D側で行うことになるわけだが、
これをどうやってアセンブラに置き換えるのか?

267 名前:デフォルトの名無しさん :04/09/26 16:55:36
>>262
ぼくのPCのグラフィックカードのドライバはnVidiaの物です。
学校のPCのはオンボードです。
ともだちのPCはATIのグラフィックカードのドライバです。

世の中に色んなDirectXがあるんですね。

…つーかCOMでも勉強しろや

268 名前:デフォルトの名無しさん :04/09/26 16:58:11
>>265
いちいち突っ込んでいるときりがないのだが。
「投入されたジョブが実行されるときだろ」
とか言っておけばいいのだろうか?

269 名前:デフォルトの名無しさん :04/09/26 16:58:31
>>267
YOUの判定負け、これ以上醜態をさらすこともなし

270 名前:デフォルトの名無しさん :04/09/26 16:59:13
>頂点*行列のほとんどはD3D側で行うことになるわけだが、
いや、いや、いや、いや、
お前のアホアフォな前提を完全肯定して話を進めるな

271 名前:デフォルトの名無しさん :04/09/26 17:01:33
>>267
HDDにも色々あるけど、ファイルの入出力はOSの機能とは言えないと?
HDDの種類だけOSがあることになるが。

272 名前:デフォルトの名無しさん :04/09/26 17:03:53
>>266
俺は、家でも、会社でも
SetTransformはワールドの制御のみで
ローカルやアニメーション処理は自前で計算してる、若しくはD3DX使う。


273 名前:デフォルトの名無しさん :04/09/26 17:06:17
>>270
頂点*行列というと意味がぼやける。
要は頂点トランスフォームは、D3D側かアプリ側
どっちが担当するんだってことだな。

274 名前:デフォルトの名無しさん :04/09/26 17:07:15
>>272
なぜ?

275 名前:デフォルトの名無しさん :04/09/26 17:08:44
各社のグラボドライバが様々あるのに
DirectXと言う物で制御出切るのは
COMと言う、DirectXではない技術を使っているから

これまでの理屈だと、COMが処理してるってならないの?

276 名前:デフォルトの名無しさん :04/09/26 17:09:58
>>275
国≒COM
日本≒DirectX

277 名前:デフォルトの名無しさん :04/09/26 17:10:15
結局負荷の高い処理がアセンブラ化出来ない隠蔽されたところに存在するわけだが
アセンブラ化の目的ってパフォーマンスを上げることじゃないの?

278 名前:デフォルトの名無しさん :04/09/26 17:11:54
>>273
頂点トランスフォーム

vector * matrix
は、全く意味が違うだろ。

279 名前:デフォルトの名無しさん :04/09/26 17:13:57
>>278
いや同じだが、何をもって違うと言いたいのだろう?

280 名前:デフォルトの名無しさん :04/09/26 17:16:43
>>279
はぁ?
算術処理と頂点トランスフォームが同じ?

何かい?DirectX使いには
vector * matrixと言う物は
ハードウェアT&Lでの頂点トランスフォームだとなるわけ?

281 名前:デフォルトの名無しさん :04/09/26 17:19:01
>>279
君さ、数学得意じゃなかったでしょ

282 名前:デフォルトの名無しさん :04/09/26 17:22:22
>ハードウェアT&L
過去の遺物のこれにこだわる理由はよく分からないが、
投入されたデータから頂点*行列の演算しないことには正常に描画出来ないんだが。
それとも頂点*行列は行われていないと?

283 名前:デフォルトの名無しさん :04/09/26 17:25:34
vector * matrix
これが描画の為の頂点計算のみだと
盲目的に考える馬鹿がいる

284 名前:デフォルトの名無しさん :04/09/26 17:27:59
>>283
もう無理しなくてもいいよ。

285 名前:デフォルトの名無しさん :04/09/26 17:27:59
>>282
>>ハードウェアT&L
>過去の遺物のこれにこだわる理由はよく分からないが、
>投入されたデータから頂点*行列の演算

これをSetTransformでやってるのが、ハードウェアT&Lじゃねーの?

286 名前:デフォルトの名無しさん :04/09/26 17:32:22
スキニングなんかのボーン毎、頂点毎に行列が違う物って
一頂点毎にSetTransformやってるの?

287 名前:デフォルトの名無しさん :04/09/26 17:37:13
>>286
まとめてセットしておけるから、
一頂点ごとにやらなければならない理由はないが?

288 名前:デフォルトの名無しさん :04/09/26 17:39:49
だから、行列がちがうんだよ?
何?まとめてセットって?

289 名前:デフォルトの名無しさん :04/09/26 17:41:10
>>288
必要な行列の数は?

290 名前:デフォルトの名無しさん :04/09/26 17:42:27
>>288
君のDirect3Dの知識はVer.5ぐらいで止まってないか?
話がまったく噛み合ってないぞ。

291 名前:デフォルトの名無しさん :04/09/26 17:44:02
>>285
シェーダなんかもあるという意味だなんだが、
そういう反応をするところなんだろうか?

292 名前:デフォルトの名無しさん :04/09/26 17:44:46
頂点数が大体4000だから、4000
256づつやれってか?

293 名前:デフォルトの名無しさん :04/09/26 17:47:48
頂点数が4000で行列も4000あるっていうと、
ええと、ここは驚くところですか?

294 名前:デフォルトの名無しさん :04/09/26 17:52:29
ウェイトが固定じゃない以上は、頂点数必要だろ

295 名前:デフォルトの名無しさん :04/09/26 17:53:26
スレタイ読もうぜ

296 名前:デフォルトの名無しさん :04/09/26 17:54:43
>頂点数が大体4000だから、4000
参りました、降参です。
オールアセンブラで最適化してください。

297 名前:デフォルトの名無しさん :04/09/26 18:04:51
頂点に匹敵するボーン数を誇るデータが、いったいどんなものなのか興味がある。
すでにスキニングが意味をなしていないと思うが。

298 名前:デフォルトの名無しさん :04/09/26 18:06:45
自前でスキニング処理した事あるやついないの?

299 名前:デフォルトの名無しさん :04/09/26 18:09:03
ボーン数の行列と
頂点にウェイトが変動でかかる以上
頂点数の行列は必要だろ

300 名前:デフォルトの名無しさん :04/09/26 18:15:20
>頂点にウェイトが変動でかかる以上
想像もつかないんだけど、
いったい何をモデリングして動かしているの?

301 名前:デフォルトの名無しさん :04/09/26 18:35:39
>>300
流体ですが何か?

302 名前:デフォルトの名無しさん :04/09/26 18:56:16
とりあえず固定で処理したいのなら、
ウエイトが異なる頂点は別頂点として扱うこと。
データが増えて嫌なら自前で処理すればいい。

303 名前:デフォルトの名無しさん :04/09/26 18:59:30
デザイナにウェイトかけて良い頂点は4つまでね、とか言ってるのかな?

理由、俺のプログラムがウェイト数4つまでしか対応してないから

304 名前:デフォルトの名無しさん :04/09/26 19:01:42
OpenGL、DirectX、C、VB、またはお手軽組み組みMFCのスレは
アセンブラの話が出ると荒れる

305 名前:デフォルトの名無しさん :04/09/26 19:01:57
アセンブラといえば昔は2D系のポストエフェクトにつかわれる
ことが多かったけど、今はシェーダで書くことも多くなったから
つかわないといけないシーンは減ったな。

かつて一番計算のコストが高かった頂点のトランスフォームも
これもシェーダをつかうからアセンブラで最適化する必要も
なくなったし。

必須というわけじゃないが読めると得することが多いので
暇なときにアセンブラの本を1冊読んで、プロセッサ固有の
最適化に関する部分はネットの情報で簡単に勉強すれば
十分だと思う。重ねて言うが読めると得することは多いが
書くことはあまりないと思う。

シェーダのアセンブラについてはピクセルシェーダ1.x系列
は命令数とかテクスチャ読み出しの依存関係とか面倒
くさいことがいろいろあるのでHLSLとかCgつかうにしても
アセンブラがわかってないと実質何もできないけど。

あと、スキニングって普通シェーダをつかってたら必然的に
書くことになると思うんだけど。そんなに難しい処理
じゃないはずなんだけど。複数の行列でトランスフォーム
した頂点を重み付けして加算するだけだろ。何か変な
勘違いをしている人がいるような。しかもほとんど頂点
シェーダで書くからアセンブラの出番ないし。


306 名前:デフォルトの名無しさん :04/09/26 19:04:06
>>286から後出しで追加要素が色々出てきたな。
なんだかもういろんなところに転げ回っている感じがする。

307 名前:デフォルトの名無しさん :04/09/26 19:04:34
DirectX9以前からやってりゃアセンブラのほうがしっくり来て早い

308 名前:デフォルトの名無しさん :04/09/26 19:05:00
>>305
発売する前に、
必須環境
DirectX9とDirectX9対応グラフィックボード

俺のプログラムが動く環境と明記してくださいね。

309 名前:デフォルトの名無しさん :04/09/26 19:07:37
>>308
そんなことをお願いしなくても、
販売する物なら動作環境ぐらい普通書くだろう。

310 名前:デフォルトの名無しさん :04/09/26 19:11:09
DirectX9フル対応ボード「のみ」
なんてものは見たことがねえなあ

いまだにGF2MXをメインに据えている俺からすれば
そんなものが出てきたらサブマシンに変えざるを得なくなって非常に困る

サブ
Athlon64 3200+
GF6800Ultra

入れ替えるのめんどくせえ
しかもメインに比べてうるせえ

311 名前:デフォルトの名無しさん :04/09/26 19:12:32
>>305
シェーダでスキニングさせた事ないだろ?
シェーダでスキニングする場合、ウエイトは1頂点に4つまでと縛りが入る。
デザイナのデータに規制をかけてるのか?

312 名前:デフォルトの名無しさん :04/09/26 19:16:44
>>305
君のプログラムだと、シェーダーが動かないと
実行されない物なんだ?

必須環境、指定のVSバージョンが動くグラボ?
王様プログラムだな。

313 名前:デフォルトの名無しさん :04/09/26 19:33:01
>シェーダでスキニングする場合、ウエイトは1頂点に4つまでと縛りが入る。
そりは固定機能の制限だ。

314 名前:デフォルトの名無しさん :04/09/26 20:04:37
ヘルプを見ては後出しで条件を出して、そのたびに墓穴を掘っているような。

315 名前:デフォルトの名無しさん :04/09/26 21:30:42
SDLスレってあった気がするんだけど
俺の気のせいだったかな
ちなみにSDLはこの板でいいの?

316 名前:デフォルトの名無しさん :04/09/26 21:31:50
>>315
これ?
SDLスレ
http://pc5.2ch.net/test/read.cgi/gamedev/1005469181/

317 名前:デフォルトの名無しさん :04/09/26 21:45:20
http://pc5.2ch.net/test/read.cgi/gamedev/1041880728/l50

318 名前:デフォルトの名無しさん :04/09/26 22:00:13
DirectX9ではなくDirectX8で組む場合
どうすればいいのでしょうか?
DX8のSDKが見つからなかったので・・

319 名前:デフォルトの名無しさん :04/09/26 22:14:05
>>318
http://www.microsoft.com/japan/msdn/directx/downloads.asp

320 名前:デフォルトの名無しさん :04/09/26 22:17:55
>>318
9SDKには8のヘッダは入ってないだろうし無理じゃね?
つうか9で組めばいいじゃん。
初めて始めるなら9でも8でも殆どかわらんよ。


321 名前:デフォルトの名無しさん :04/09/26 22:34:51
>>320
間抜けな発言をする前に、ヘッダファイルの中を覗くことをお勧めする。

322 名前:デフォルトの名無しさん :04/09/26 22:53:15
>>321
確かにオールバージョン入ってるね。
これなら9SDKでモーマンタイだな。

323 名前:デフォルトの名無しさん :04/09/26 23:24:54
>>316
情報thx
それそれ
でもム板でも昔見かけた気がするけど
やっぱ俺の気のせいだったかな

SDLって、COMと縁切れるからC++以外の言語で使いやすいんだよね
むちゃ簡単だし
適当なやつ作る程度ならこれで十分でしょ
このスレで使ってる人いないの?
まあ使ってるからって話題なんもないんだけどさ
俺自身も自作言語のテスト用途なわけよ
SDLとのインタフェースってかなり小さく出来るんだよね
Linuxでも同時に動くし
覚えることほんと少ないから
知らないでDirectX直で使ってる人いたらオススメだよ


324 名前:デフォルトの名無しさん :04/09/28 05:18:32
質問です。

DirectShowをDirect3Dのテクスチャとして表示するために四苦八苦してます。
で、DirectX9.0bSDKの日本語ヘルプが欲しいのですが、マイクロソフトの所を
探しても見つかりません。
どこにあるか教えていただけませんか?

325 名前:デフォルトの名無しさん :04/09/28 08:34:41
困ったな・・・・・・・・・・海外のBBSでもこういう質問が平気で飛び交うんだろうか?

326 名前:デフォルトの名無しさん :04/09/28 14:16:18
以前のサンプルを DirectX 9.0 SDK Update (Summer 2004) でビルドする方法
DirectX 9.0 SDK Update (Summer 2004) をインストールするとウィザードが使えないために、こ
のコラム用に作った以前の C# サンプルコードがビルドできません。今回はその対策方法を紹介します。

http://www.microsoft.com/japan/msdn/directx/default.asp

327 名前:デフォルトの名無しさん :04/09/30 01:54:18
すげー盛り上がってたようだが
落ち着いた所で何が正しいのかまとめてくれ

328 名前:デフォルトの名無しさん :04/09/30 05:54:39
遅いマシンの為の動作テストをやりたいんですが
OS全体に負荷をかけるツールってないですか?
単純にfor(;;);を実行するだけだとむらが出てしまいます。

329 名前:デフォルトの名無しさん :04/09/30 10:27:32
DirectXって何ですか?

330 名前:デフォルトの名無しさん :04/09/30 11:38:29
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=%E7%94%A8%E8%AA%9E%E3%80%80DirectX&lr=

331 名前:デフォルトの名無しさん :04/09/30 12:47:36
WinGとは違うんですか?


332 名前:デフォルトの名無しさん :04/09/30 12:53:00
WinGが何か知ってるんならわかるだろ
20年程山篭りしてたわけでもあるまい

333 名前:デフォルトの名無しさん :04/09/30 13:17:08
ネタにマジレスするみっともない馬鹿がいるのはこのスレですか?

334 名前:デフォルトの名無しさん :04/09/30 14:14:05
いえ、無知を指摘されたため、慌ててネタということにして逃げる
典型的な厨房が吠えるスレです。

335 名前:デフォルトの名無しさん :04/09/30 15:23:23
恥の上塗りをするのは自由だが、
どこをどうみたってネタにしか見えない。
なぜこんなネタにマジレスを返すのか、
馬鹿の考えることはさっぱり理解できない。

336 名前:デフォルトの名無しさん :04/09/30 17:07:00
なぜこんなに必死なんだろう。
「20年」を転がすことも思い付かずにマジレス、マジレスとお猿のように。

337 名前:デフォルトの名無しさん :04/09/30 18:14:51
どーでもいー

338 名前:デフォルトの名無しさん :04/09/30 21:11:33
DirectAudioの質問です
LoadObjectFromFileでセグメントの作成とパフォーマンスのダウンロードと再生が出来る状態で
予め読み込んでおいたデータをGetObjectでセグメントを作ろうとすると E_POINTER が返ってきます。
ナゼデスカー

BYTE *pByteSrc = new BYTE[1000];
//標準入力でロード

DMUS_OBJECTDESC desc;
ZeroMemory( &desc, sizeof(DMUS_OBJECTDESC) );
desc.dwSize = sizeof(DMUS_OBJECTDESC);
desc.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_MEMORY;
desc.guidClass = CLSID_DirectMusicSegment;
desc.pbMemData = pByteSrc;
desc.llMemLength = 1000;
g_lpLoader->GetObject( &desc, IID_IDirectMusicSegment8, (void**)g_lpSegment1 );


339 名前:デフォルトの名無しさん :04/10/01 00:32:04
質問です。
鬱だ死のうDirectXスレはどこに行ったの?

340 名前:デフォルトの名無しさん :04/10/01 03:44:54
リンク中...
d3dx9.lib(fastftoa.obj) : error LNK2001: 外部シンボル "__aulldvrm" は未解決です
Debug/dx9.exe : fatal error LNK1120: 外部参照 1 が未解決です。

MSDN(ttp://www.microsoft.com/japan/msdn/academic/Articles/DirectX/01/
のサンプルをビルドしたときに、エラーだと言われました。
どこをどうすれば良いのか教えてください。

341 名前:デフォルトの名無しさん :04/10/01 04:20:01
HRESULT EnumSurfaces(
DWORD dwFlags,
LPDDSURFACEDESC2 lpDDSD2,
LPVOID lpContext,
LPDDENUMSURFACESCALLBACK2 lpEnumSurfacesCallback
);
この関数の使い方がよくわかりません


342 名前:デフォルトの名無しさん :04/10/01 07:46:35
>>341
使い方はヘルプに書かれているとおりだが。
わからないのなら他のEnum系のSDKサンプルを参考にすればいい。

343 名前:デフォルトの名無しさん :04/10/01 17:54:59
>>339 某所の有名厨が削除依頼と聞いたが

344 名前:デフォルトの名無しさん :04/10/01 18:18:48
>>339
ゲ製作技術のスレと統合。

345 名前:デフォルトの名無しさん :04/10/01 18:41:02
>>339 こことかhttp://pc5.2ch.net/test/read.cgi/tech/1011762546/

346 名前:デフォルトの名無しさん :04/10/02 13:02:57
次回の授業までにDirectXを使ってインベーダーゲームを制作しろと
課題が出されました。しかし、全くやり方が分からないんですけど
だれか、インベーダーに関しての、情報が書いてあるサイト、
知識を持ってる人はソースコードとまでは言いませんが
誰か、知恵をお貸し下さい 長文スイマセン

347 名前:デフォルトの名無しさん :04/10/02 13:12:16
インベーダーの情報か。

名古屋打ちとか。

348 名前:デフォルトの名無しさん :04/10/02 13:16:48
高橋名人ってもっと後だっけ?

349 名前:デフォルトの名無しさん :04/10/02 13:18:16
ウェブ上でプレイできる奴があるから研究してみ
ActiveXをONにしておくこと
http://www.google.co.jp/search?q=%E3%82%A4%E3%83%B3%E3%83%99%E3%83%BC%E3%83%80%E3%82%B2%E3%83%BC%E3%83%A0&hl=ja&lr=&ie=UTF-8&start=10&sa=N

350 名前:デフォルトの名無しさん :04/10/02 13:29:37
DirectX齧ってる人間が
インベーダーもどきも自力で作れないなんて
ネタでしかないわけだが

351 名前:デフォルトの名無しさん :04/10/02 14:22:43
>>350
インベーダーゲームを知らない年齢では?

352 名前:デフォルトの名無しさん :04/10/02 14:33:39
DirectXの知識はあるとも書いてないしな、微妙

353 名前:デフォルトの名無しさん :04/10/02 15:00:16
昔のゲームは面白かった

とかいうのでやってみると
実につまらない



SFCのRPGなら今より面白いと言えるが

354 名前:デフォルトの名無しさん :04/10/02 15:44:36
スレ違いだけどちょっと俺も同意
オヤジがレゲーにノスタルジー感じてるだけじゃないかと

あと15年もすれば
「ポケモンは最高だった。今のゲームは複雑&作業プレイ」
とか言い出すやつが出てくるが出てくるだろう

355 名前:デフォルトの名無しさん :04/10/02 16:49:05
>>346
インベーダーが課題に出ててソースもある。

http://gamdev.org/up/upload.php?page=all
【初心者】課題をクリアしていくスレ【講習会】
http://pc5.2ch.net/test/read.cgi/gamedev/1086858349/

356 名前:デフォルトの名無しさん :04/10/02 17:37:45
既に今のゲームは作業プレイだ

357 名前:デフォルトの名無しさん :04/10/02 18:19:07
>356
そうじゃない意欲的な作品も稀にあるが、人目につくこともなく消えていく
絵がきれいとか広告がうまいゲームしか売れてない

>既に今のゲームは作業プレイだ
結局そんな作業ゲーが生き残ったのはユーザがそれを選択したってことなんだな

358 名前:デフォルトの名無しさん :04/10/02 19:01:45
でも初代ポケモンをプレイしてた奴ってそろそろ家庭もって子供がいてもおかしくない年だよな。

359 名前:デフォルトの名無しさん :04/10/02 19:15:01
>>358
何歳から家庭もって子供がいてもおかしくない年だと考えている?

360 名前:デフォルトの名無しさん :04/10/02 19:17:57
>>359
28歳

361 名前:デフォルトの名無しさん :04/10/02 19:35:55
バカモン

362 名前:デフォルトの名無しさん :04/10/02 20:16:13
>361
バカモンゲットだぜ

363 名前:デフォルトの名無しさん :04/10/02 20:35:58
gets()

ゲッツて言うな

364 名前:デフォルトの名無しさん :04/10/02 20:38:31
>>359
家庭を持つのが「おかしくない」のは18歳からだな。
そんなこともわからないの?

365 名前:デフォルトの名無しさん :04/10/02 20:48:10
>>364
18で家庭持ちは流石に早いよ

366 名前:デフォルトの名無しさん :04/10/02 20:50:15
>>365
早いかどうかなんて問題になっていないでしょ。
「おかしくない」のが何歳からか、という話だよ。

367 名前:デフォルトの名無しさん :04/10/02 20:50:55
>363
ハゲワラタ
テユーカマイリマスタ

368 名前:デフォルトの名無しさん :04/10/02 20:53:51
>>366
だから早いって
社会通念上おかしい

369 名前:デフォルトの名無しさん :04/10/02 20:54:56
18は最短ですな。主語が男なら

370 名前:デフォルトの名無しさん :04/10/02 21:00:11
>>369
女も今は18じゃなかったっけ?

371 名前:デフォルトの名無しさん :04/10/02 21:01:21
>>368
早いけど、社会通念上まったくおかしくないよ。
あなたが勝手におかしいと思うのは自由だけど。

372 名前:デフォルトの名無しさん :04/10/02 21:28:14
>>370
マジっすか
知らなかった…

373 名前:デフォルトの名無しさん :04/10/02 21:50:44
>>371
法律でセーフなだけだろ?
最近は高校生が妊娠したまま学校に通うのが普通なのか?

374 名前:デフォルトの名無しさん :04/10/03 00:01:22
358からの流れが微妙に面白いな。ズレてるが

375 名前:デフォルトの名無しさん :04/10/03 00:08:32
「18で結婚はおかしくはない」がいつのまにか
「高校生が妊娠したまま学校に通うのが普通」へ。

376 名前:デフォルトの名無しさん :04/10/03 15:04:00
DX9のDirectShowに含まれているDirectDrawつうのは
DX7の頃のDirectDrawと同じもんか?


377 名前:デフォルトの名無しさん :04/10/03 15:09:58
>>376
別物。
DX7のDirectDrawはDX9でもそのまま残ってる。

378 名前:デフォルトの名無しさん :04/10/03 17:46:56
>>373
何が普通か、などという話ではないんだよ。
何が「おかしくない」のかという話。
なんでそんなに頭が悪いの?

379 名前:デフォルトの名無しさん :04/10/03 21:17:54
DirectX初心者質問スレでそんな話をする奴らがおかしい。なんでそんなに頭が悪いの?


380 名前:デフォルトの名無しさん :04/10/03 21:57:54
猿真似すると、言われて凄く悔しかったんだってのがばれちゃうよ?
ま、いいけど。
他人のふりして逃げるならそれも結構。ミスを認めたく無い場合はそれも有効だしね。

↓何事も無かったかのようにスレ再開

381 名前:デフォルトの名無しさん :04/10/03 22:11:07
もう勝利宣言

382 名前:デフォルトの名無しさん :04/10/03 23:33:55
おまいら少しは鬱氏に書き込まないと即死判定でスレが落ちるよ

383 名前:デフォルトの名無しさん :04/10/04 07:18:22
>>340と同じ問題につまづいています。どうすりゃいいのこれ。

384 名前:デフォルトの名無しさん :04/10/04 08:50:08
>>383
.NETとDX9でやってる?

385 名前:デフォルトの名無しさん :04/10/04 09:59:27
directx8で3Dの座標はfloat型で扱わなければならない とあるのですが
座標表すだけならintで十分とおもうのですがなんでfloat型が採用されてるんですか?

座標のfloat型に合わせるためか
warning C4244: '=' : 'int' から 'float' に変換しました。データが失われているかもしれません
warning C4244: '=' : 'double' から 'float' に変換しました。データが失われているかもしれません

という警告が出まくります

座標に関わる計算するときに使う変数はすべてfloat型に統一しておいた方がいいのか
警告文が出てもプログラム自体は実行できるのでこのままほっといていいのか悩んでます





386 名前:デフォルトの名無しさん :04/10/04 10:01:12
意図的にやっているならキャストすればいいだろう。
ここはDirectX初心者スレであって、C言語初心者スレではない。

387 名前:デフォルトの名無しさん :04/10/04 10:13:36
>>386
すいませんでした

388 名前:梅宮 :04/10/04 10:15:20
シンボルッ(でっでー)
シンボルッ(でッでー)

外部のシン〜ボルぅぅー

389 名前:デフォルトの名無しさん :04/10/04 10:43:21
この言語はプログラム初心者にはお使いいただけません
とか言ってるところがある。

float志向



390 名前:デフォルトの名無しさん :04/10/04 10:46:46
甘いよオマエラ。
玄人は浮動小数点を捨て
固定小数点もしくは整数を選ぶ。
すなわち>>385はC言語はプロ、DXは初心者。

391 名前:デフォルトの名無しさん :04/10/04 11:27:39
警告を表示させたくないなら #pragma warning(disable:4244)

392 名前:デフォルトの名無しさん :04/10/04 12:15:33
すいませんおねがいします!
int型の配列要素p[0]〜p[99]のうち0が
格納されている要素を全て実行例のように
画面に出力するプログラムを完成させよ
p[3]=0
p[12]=0
p[85]=0
...................
#include<stdio.h>
main()
int p[100], i ;
:
(ここに配列要素に値を格納する処理があるとして
  :
この後どうなるんでしょうか??
お願いいたします




393 名前:デフォルトの名無しさん :04/10/04 12:21:01
とうとうDirectXと何の関係も無くなったが。

394 名前:デフォルトの名無しさん :04/10/04 12:22:23
>>392 宿題ぐらい自分でやれよ

395 名前:デフォルトの名無しさん :04/10/04 12:27:57
サーフェイスデバイスからGetDCを呼び出して

396 名前:デフォルトの名無しさん :04/10/04 13:23:15
>>392
とりあえずVertexBufferを作るとこから始めてみろ。
続きは誰かお願いね。

LPDIRECT3DDEVICE9pD3DDevice_;
LPDIRECT3DVERTEXBUFFER9pVertexBuffer= NULL;
try{
HRESULT hr;

_ASSERT( pD3DDevice_);
IDirect3DDevice9PtrpD3DDevice( pD3DDevice_);

vector< int > srcBuffer( 100);
//ここに配列要素に値を格納する処理があるとする。

const DWORD usage= 0;
const D3DPOOL pool= D3DPOOL_MANAGED;
const size_t elementSize= sizeof(vector< int >::value_type);

hr = pD3DDevice->CreateVertexBuffer( UINT(srcBuffer.size() * elementSize), usage, 0, pool, &pVertexBuffer, NULL);
if( FAILED(hr))throw ...;

LPVOID pVertexIn;
hr = pVertexBuffer->Lock( 0, 0, &pVertexIn, usage & D3DUSAGE_DYNAMIC ? D3DLOCK_DISCARD : 0);
if( SUCCEEDED(hr)){
::CopyMemory( pVertexIn, .srcBuffer.begin(), srcBuffer.size() * elementSize);
pVertexBuffer->Unlock();}
else throw ...;
}catch( ...){_safe_release( pVertexBuffer);throw;}

397 名前:デフォルトの名無しさん :04/10/04 14:19:59
>>392
"p","[","0"といった文字はそのまま出力できませんのでまず各文字をポリゴンに変換します。

デバイスコンテキストにアウトラインフォントを選択した後GetGlyphOutline
でアウトラインフォントの輪郭(4 次スプライン形式)が取り出せますので
それを元に変換してやればいいです。

参考ページ:
ttp://www.inet-lab.org/ted/program/prog176.html


398 名前:デフォルトの名無しさん :04/10/04 20:08:08
>>384
VC6.0とDX9SDKSummer2004でやってます
aulldvrmってなあにいい

399 名前:デフォルトの名無しさん :04/10/04 20:46:09
Summer2004はVC6.0に対応してない

400 名前:デフォルトの名無しさん :04/10/04 20:56:49
対応してなかったっけ?
たしかVC6用のも別に用意されてたような

401 名前:デフォルトの名無しさん :04/10/04 21:13:01
Extras
Extras ダウンロードには、ソフトウェア開発キットには含まれていない以下の内容が入っています。

Visual Studio 6.0 をサポートする d3dx.lib
以前のバージョンの CG ツール プラグイン
日本語ドキュメント (Summer Update 2004 の更新は反映されていません)


Date: July 28, 2004


402 名前:デフォルトの名無しさん :04/10/05 01:48:42


403 名前:デフォルトの名無しさん :04/10/05 02:03:52
>>401
どうもありがとうございます。そちらのd3dx.libにてちゃんとコンパイルが通るようになりました
Summer2004はrequires both Visual Studio .NET and the .NET framework for developmentって
書いてあったんですね・・すいませんでした見落としてました

404 名前:デフォルトの名無しさん :04/10/05 12:22:03
ポストプロセス、ポストブレンディング、ポストフィルタリング
これらの原理というか、概要が何のこっちゃか全然わかりません。
Google検索しても、「それが使われている」ことは書いてあっても
何をどうするのがポストプロセスと言うのかが書いてません。

申し訳ないですが教えてください。

405 名前:デフォルトの名無しさん :04/10/05 18:29:42
原理も何もポストプロセスって「後処理」のことだぞ。
ようするに特定の処理を指すわけじゃなくて、後で何か手を加えること
全般を指す。
ポリゴンで描画したキャラクタの額にフォトショップで「肉」と書き
加えるだけでも立派なポストプロセス。

406 名前:デフォルトの名無しさん :04/10/05 19:56:57
http://www.microsoft.com/japan/msdn/library/ja/directx9_m/directx/ref/ns/microsoft.directx.audiovideoplayback/c/audio/p/volume.asp?frame=true
このプロパティってどういう時に使うんですか?

407 名前:デフォルトの名無しさん :04/10/06 12:11:41
ゲームで言うポスト処理は
光をブルーミングするような感じにすることと思い浮かべる人もいる

良い例が3DMARK03、同05、Hitman Contracts、DeusEXIW
PixelShader1.1か2.0によりポストプロセスを行うと公言しているのがこれ

408 名前:デフォルトの名無しさん :04/10/06 15:14:21
VC++6.0 & DirectX9 2003Summerを使ってます.

DirectX9 AppWizard→Single document windowに,
ツールバーを追加しようとしても表示されません.

TBBUTTON tbb[] =
{
{0, IDB_A, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{1, IDB_B, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{2, IDB_C, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
};

LRESULT CMyD3DApplication::MsgProc(...)
{
switch( msg )
{
case WM_CREATE:
{
HINSTANCE hInst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
InitCommonControls();
CreateToolbarEx(hWnd, WS_CHILD | WS_VISIBLE, ID_TOOLBAR, 3, hInst,
IDB_BITMAP, tbb, 3, 0, 0, 16, 15, sizeof(TBBUTTON));
break;
}
...

試しにWin32 ApplicationでHelloWorldを作り同じ方法で試すとツールバーは表示されました.
直接DirectXに関係する質問ではないですが,よろしくお願いします.

409 名前:408 :04/10/07 11:10:59
自己解決しました.

410 名前:デフォルトの名無しさん :04/10/07 13:00:52
DirectInputのバッファリングデータの取得で
キーを押したらキーを離すまでの間キャラクターを移動させたいのですが

キーを押すと
押す→離す→押す
と状態の変化がなぜか3回起こってしまい

直接データでやった場合のように移動開始直後にカクついてしまいます
これはキーボード自体の仕様なんでしょうか?

411 名前:デフォルトの名無しさん :04/10/07 17:14:55
> キーを押すと
> 押す→離す→押す
> と状態の変化がなぜか3回起こってしまい

こんな現象、正常なら起こらないと思う。
キーボードが機械的に壊れてるとか、そもそもプログラムにバグがあるとか。

412 名前:デフォルトの名無しさん :04/10/07 17:32:55
フルスクリーン時にIMEの入力中文字表示が
画面の描画で上書きされてちらつくんですが、これを
なるべく少ない労力で正常に表示させる方法ってありませんか?

自分で考えた限りだと
・WM_IME_STARTCOMPOSITIONを拾って変換中の情報を全て自前で描画。
・WM_IME_STARTCOMPOSITIONで変換中文字列だけ取って、
 入力表示の幅を計算してその部分だけ画面を更新しない。

ってのを思いついたんですが、これらよりも簡単な方法ってないでしょうか?

413 名前:デフォルトの名無しさん :04/10/07 17:47:21
よくわからんけど日本語入力モードになってるんじゃないだろうか

414 名前:デフォルトの名無しさん :04/10/07 18:15:04
IMEバーやGUIなんかは自前でやるしかないだろう。
俺はやりたくないがな!

415 名前:デフォルトの名無しさん :04/10/07 18:29:44
>>413
ええ、日本語入力モードの入力中の文字を表示したいんです。

>>414
自前以外の方法はやっぱ無いんですか・・・

416 名前:デフォルトの名無しさん :04/10/07 18:49:10
>>415
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=43&vew=21
これとか参考になりませんか?

417 名前:デフォルトの名無しさん :04/10/07 19:06:58
>>416
DX9.0c夏Verから簡単に使えるようになってたんですか。それは知らなかった。
しかし、DX7使ってたんだよなorz
今から移行するよりは、このまま自前処理したほうが早いか。

418 名前:デフォルトの名無しさん :04/10/08 09:30:37
DirectX9.0のDirectShowで利用できる独自のエフェクトを作成しようと考えています。
最初は、再生するMPEGのRGB値を調整(例えば、R値を10だけ増やすとか)するエフェクトから
取り組んで生きたいと思っています。
参考になる書籍やウェブサイトをご存知の方がいらっしゃいましたら、教えて下さい。


419 名前:410 :04/10/08 18:45:07
>>411
自分のデスクトップが
PS/2のキーボードをUSBに変換するのを咬まして
(さらにUSB切り替え機もかまして)接続してるのが原因だったようです
知り合いのPCで試させてもらったらちゃんと動きました
誰かしらの参考になれば幸いです

420 名前:デフォルトの名無しさん :04/10/08 23:55:53
>>419
私の環境も同様に PS/2→USB変換をかましているのですが
やはり同じ症状が出ますね。
変換のせいだと思って間違いないと思われます。
おかげでゲームがやりづらいの何のって・・・・


421 名前:デフォルトの名無しさん :04/10/10 22:25:59
>>392
int i;
int ans[100];
int num = 0;
for (i = 0; i < 100; i++) if (p[i] == 0) ans[num++] = i;
for (i = 0; i < num; i++) printf ("p[%d] = 0\n", ans[i]);

422 名前:デフォルトの名無しさん :04/10/11 15:08:59
そのレベルもできないヤツは他の課題はどうやって乗り切ってきたのだろうか…

423 名前:デフォルトの名無しさん :04/10/11 15:11:18
周りからぱくってんじゃないの?

424 名前:421 :04/10/11 19:09:35
でも本当は1行で済むんだよね

425 名前:デフォルトの名無しさん :04/10/11 19:33:50
1行で書けるの?
改行しないだけ?

426 名前:デフォルトの名無しさん :04/10/11 19:55:18
矩形の辺上に存在する複数の点を全部使って、
矩形を構成するトライアングルを抽出したいのですが、
何か良い方法ありませんか?


427 名前:デフォルトの名無しさん :04/10/11 21:10:00
矩形って長方形(四角形)の事だけどそれでいいの?
頂点を一つずつ順番ずらして拾っていくだけかと。

428 名前:デフォルトの名無しさん :04/10/11 21:23:42
すいません
上でポストフィルタの話があったので質問させてください

http://sylphys.ddo.jp/upld2nd/game/img-box/img20041011211855.jpg
ポストフィルタあり

http://sylphys.ddo.jp/upld2nd/game/img-box/img20041011212005.jpg
ポストフィルタなし


ポストフィルタは、どのゲームでも例外なく
遠くにあるものはボケたように見え、
近づくにつれてはっきりと見えてくるような感じ、
光をボカシた感じにしてますが

これがポストフィルタなんでしょうか。
「後処理」すると、必ずこんな感じになるのですか。

そもそも後処理とは、この場合何の処理をしているから
こんなようにボケるのでしょうか。
似たような効果を示す、ブラーを用いたようには見えないのですが

429 名前:デフォルトの名無しさん :04/10/12 00:04:45
>428
距離に関係なく全体をぼかすことはできる?
あとはそれに距離(Z値)を考慮すればやりかたはいくつか思いつくんじゃないかな?

430 名前:デフォルトの名無しさん :04/10/12 08:25:22
>>428
海外サイトにソースが山ほど転がってるよ
普通に中学卒業してるのなら読める

431 名前:デフォルトの名無しさん :04/10/12 16:14:23
実行速度が速すぎてキャラの移動が早すぎるので
ウエイトかけたいんですけど簡潔で効率的なウエイトのかけ方を
教えてくださいC言語でおねがいします


432 名前:デフォルトの名無しさん :04/10/12 16:28:32
>>431
for(i = 0, i < x;i++){}
xの値を変えるだけで速度調節できるぜ

433 名前:デフォルトの名無しさん :04/10/12 16:33:48
>>432
ありがとうございます
試してみます

434 名前:デフォルトの名無しさん :04/10/12 16:35:53
>>432
BASICを思い出す

435 名前:デフォルトの名無しさん :04/10/12 17:02:52
>431
DirectXなのか?
そもそもWindowsなのか?

なんちゃって
ネタだということはお見通しなんだが

436 名前:デフォルトの名無しさん :04/10/12 17:12:37
>>432
VCなんかだと空ループは最適化で無かったことにされるので、ネタにもなってないぞ。

437 名前:デフォルトの名無しさん :04/10/12 17:15:21
なかったことにされなかったらネタにならないじゃねえか

438 名前:デフォルトの名無しさん :04/10/12 17:32:04
ネタ(?)に便乗して、質問。
そういう時タイマー(開始時間と経過時間)使って、
よく処理するんですが他に方法って有ります?

439 名前:デフォルトの名無しさん :04/10/12 17:37:58
最近どこかで同様の議論を見たが・・・どこでだったか・・・

440 名前:デフォルトの名無しさん :04/10/12 17:43:18
>>438
キー入力があるまでひたすら待て。

441 名前:デフォルトの名無しさん :04/10/12 22:58:15
>438
この辺とか
typedef enum _D3DSWAPEFFECT {
    D3DSWAPEFFECT_DISCARD = 1,
    D3DSWAPEFFECT_FLIP = 2,
    D3DSWAPEFFECT_COPY = 3,
    D3DSWAPEFFECT_FORCE_DWORD = 0xFFFFFFFF
} D3DSWAPEFFECT;


442 名前:デフォルトの名無しさん :04/10/12 23:13:46
>>428
ポストフィルタってのは特定の処理を表す言葉じゃないって言ってるだろ。
メインの処理の後にフィルタ処理をすること全般を表す言葉。
ボケるかどうかはどんなフィルタをかけたかって話。

逆にクッキリさせるフィルタをポストフィルタとして使うこともある。
CGの場合は元々ボケないから、シェープネスフィルタをかけることはまずないが。

先にフィルタをかけるプレフィルタ(プリフィルタ)というのもあるが、
3DCGではまず使わない。(クリッピングがプレフィルタとも言えるが)
身近なところだと、圧縮処理の前に圧縮率を上げる目的でプレフィルタを
使ったりする。

そのボケてるのがどんな処理をしているのかは、フィルタ処理を勉強しろ。
画像処理と呼ばれるものがほとんどフィルタ処理だから、画像処理で
調べた方がいいかも。フォトレタッチソフトで各種フィルタを試してみる
だけでも、かなり参考になる。

深度によってボケ方が変わるのは、深度情報(Z値)によってボカしの
強度を変えてるだけ。細かい話をすると深度エッジ部分に問題があったり
色々と難しい話があるが。

443 名前:デフォルトの名無しさん :04/10/13 04:52:33
DirectXで垂直同期モードにするとSleepさせても
絶対60FPS出るんですがこれはどうなってるんでしょう?

444 名前:デフォルトの名無しさん :04/10/13 09:21:15
レンダリングパイプラインに明確に依存するポスト処理よりも
メインエンジン内でフィルタリングしたほうが幾らも良いのに

見た目も少し良くなる可能性がある

445 名前:デフォルトの名無しさん :04/10/13 16:00:26
>>443
質問の意図がよく分からないが。

垂直同期にあわせつつ、60FPSより下げる方法を聞きたいのなら、
・Sleepの値を増やす
・SleepではなくGetSystemTime、GetTickCount等で経過時間を
 計って調整する

60FPS以上で動作させたいのなら、
・リフレッシュレートを上げる

意表を突いて垂直同期自体が何なのか分かってないのなら、
詳しく書くと長くなるからググろう。

446 名前:デフォルトの名無しさん :04/10/13 17:50:09
ちゅうかそもそもsleep使ったってfpsそれ程落ちんだろ
ネタですか?

447 名前:デフォルトの名無しさん :04/10/13 20:11:20
sleep(1)で1msマチだから、17よりでかいの渡せば落ちるんじゃないかな。
レンダ処理がOSからのメッセージかコールバックで動作してるとダメだろうけど。

448 名前:デフォルトの名無しさん :04/10/13 20:25:18
高橋名人か

449 名前:デフォルトの名無しさん :04/10/13 20:30:48
あのデブは今何しているんだろうなあ。

450 名前:デフォルトの名無しさん :04/10/14 17:29:35
DirectXの「AVIファイル再圧縮」ってサンプルをBorlandC++Compiler5.51でコンパイルしてみたんですが、
Error: 外部シンボル '_MEDIASUBTYPE_Avi' が未解決
Error: 外部シンボル '_FORMAT_VideoInfo' が未解決
というエラーが出てきます。
bccでは対応していないのでしょうか?
因みに、OSはWinXPでDX SDKのバージョンは
http://goldfly.ld.infoseek.co.jp/program/directx/bcc90b.html
を参考にして、DX9.0cをインストール・設定しています。
ヘッダファイルからMEDIASUBTYPE_Aviを検索してみると、uuids.hが出てきたのでインクルードしてみても同じでした…
ライブラリの追加が必要なんでしょうか…?

451 名前:デフォルトの名無しさん :04/10/15 06:51:04
「全体的なお約束の一例」
・基本的にマイクグチソフトのサンプルはVC++でないとコンパイルは難しい
 (ボーランドのでコンパイル通るサンプルがあったとしても運が良かっただけ)


その他
・「C == C++」
 ("C"としか言ってないのに勝手に"C++"に置き換える奴がいる)
・「Cのソースを書いてる == VC++で書いてる」
 (全員VC++使ってると思ってる)


会社にあるものも勝手にコピーしてきて家に持って帰ってきただけなのに
自分の金で買ったわけでもないVC++を賛美
とか

452 名前:デフォルトの名無しさん :04/10/15 10:52:56
>>451
動画処理とカメラ使ったソフトを調べてたんですが、ネットで公開されてるものが、その辺りのサンプルを参考にしてたものばかりで…
同じエラーが出てきたので、何か方法があるかと聞いてみたんですが…おとなしくVS使います
(使い勝手が慣れないので、まだ殆ど使ってないです)

453 名前:デフォルトの名無しさん :04/10/15 13:43:56
つーかエラーの内容からしてBCCのせいじゃないと思うが

454 名前:デフォルトの名無しさん :04/10/15 13:55:57
足りないGUIDを自分で定義すればいいだけの話だが、
その程度のことすら出来ないのならBCCは使わない方が無難。

455 名前:デフォルトの名無しさん :04/10/15 17:41:01
>>450
guiddef.hのなかで
DEFINE_GUID(...)が定義されてるところをよく読め。

456 名前:デフォルトの名無しさん :04/10/15 21:11:23
DirectX初心者は特にVC++.Net買え
いや、マジで
普通に買っても一万ちょっと
学生なら安く買える
金がないとか言う香具師は遊ぶ金とか食費削ってでも買え

457 名前:デフォルトの名無しさん :04/10/15 21:14:02
それじゃ勉強にはならんな

VC++使って何か作れても


「わかったつもりになってる」


だけ

458 名前:デフォルトの名無しさん :04/10/15 22:08:44
VC++買う
なにかサンプルをサクっとウィザードでつくる
ちょっと凝った事をしようとするが、MFCが使い辛くて困る
勉強する
嫌気が差す
C#に乗り換える


459 名前:デフォルトの名無しさん :04/10/15 23:40:04
>458
いいんじゃね?
その程度の香具師なら何使ってもその程度だろうから
できる香具師はBCC使ってもいいんだけど、
BCC特有の問題とかめんどいからVC++の方がいいんじゃね?

460 名前:デフォルトの名無しさん :04/10/16 05:16:22
2Dゲームの場合、DirectXを使うと本当に速くなりますか?
あまり変わらないのなら、スクリーンの解像度と色深度のみをDirectXで
変更するだけにしようかと思うのですが、どうですか?




461 名前:デフォルトの名無しさん :04/10/16 05:51:45
正直GDIのほうが早い



8bitカラーなら

462 名前:デフォルトの名無しさん :04/10/16 11:59:39
GDI使うと、Win98あたりと互換性考える必要があって面倒じゃない?


463 名前:デフォルトの名無しさん :04/10/16 12:15:18
GDIに互換性がなかったら、一般アプリは軒並み問題が発生してるな。
初心者スレとはいえ、何故こういう馬鹿が発生するんだろう?

464 名前:デフォルトの名無しさん :04/10/16 13:57:45
この人は普段から16bitを超える座標系を頻繁に扱っていたんだろう。

465 名前:デフォルトの名無しさん :04/10/16 15:02:05
>正直GDIのほうが早い

便利機能を使うGDI+なら開発は早いってことだと思ったんでね。
DirextX9.0c使えるならそっちのが開発早いと思うが。

466 名前:デフォルトの名無しさん :04/10/16 15:31:32
>460
テスト用のプログラム作って試してみれば?
もし、まだDirectX触ってないんだったらいい機会だから触ってみれ
実際使うかどうかは別として
何事も経験

467 名前:640 :04/10/17 05:51:33
>>461
スクリーンを8Bitにしたら16Bitより倍速くなりました!

>>465
開発の速さではなくて、実行速度です。
2Dゲームなので、BitBltぐらいしか使いません。

>>466
DirectXが面倒だったので、もし速くならないのならGDIでやろうと思ったのでした。

468 名前:デフォルトの名無しさん :04/10/17 14:16:19
Xfileなどのオブジェクトを読み込んで表示するとき、
例えば配置する位置を(X、Y、Z)として、
World→View→ProjectionとSetTransformして
DrawSubsetすれば簡単に表示してくれるわけですが、
このXYZが変換された後のスクリーン座標の値を
取り出したいときはどうしたらよいのでしょうか。

469 名前:デフォルトの名無しさん :04/10/17 17:49:33
激しく無駄だけど自分で変換マトリクスを掛けてみる

470 名前:デフォルトの名無しさん :04/10/17 17:52:14
無駄以前に、それ以外に方法はない。

471 名前:デフォルトの名無しさん :04/10/17 22:16:19
なんか関数ありそうじゃん
ないんだ

472 名前:デフォルトの名無しさん :04/10/17 23:16:49
関数が用意されているいないにかかわらず、計算するのは一緒だが。

473 名前:デフォルトの名無しさん :04/10/17 23:21:22
>>472


474 名前:デフォルトの名無しさん :04/10/18 00:03:51
質問良いでしょうか?

皆さん描画システムどうしてます?
(D3DFrameでいうRenderのBeginSceneとEndSceneの間)
SetRenderState SetSamplerState SetTexture SetFVF
と設定周りを色々呼び出すわけですが「呼び出し回数が少なければ少ない程早くなる」のだと思います。
最低の呼び出し回数でやろうとすると当然ツリー状態になるのですが、
確保やら解放やらでそんなに速度は変わらないのではと危惧しています。

「じゃぁ、どっちも試して速度調べろよ」と言われそうですが、他の人のシステムも知りたいので書き込みました。
よろしこです。

475 名前:468 :04/10/18 01:18:49
>>469-473
どうもすいません。普通に自分で変換行列作って掛けてみたんですが、
0.6〜とか1.5〜とかよく分からない数値が帰ってきます。
以下ソースです。とんちんかんな事をしているかもしれませんがアドバイスいただけたらと思います。
////////////////////////////////////////////////////////
D3DXMATRIX matWorld,matView,matProj;//ワールド、ビュー、プロジェクション行列
D3DXMATRIX trans;//↑3つを掛けた行列を格納
D3DXVECTOR3 v(0.0f,0.0f,0.0f);//スクリーン変換したい座標 とりあえず適当に(0.0.0)
D3DXVECTOR4 vout;//変換後の座標を格納

//ビュートランスフォーム
D3DXVECTOR3 vEyePt( 0, 10,10 );
D3DXVECTOR3 vLookatPt( 1.0f, 0.0f, 0.0f );
D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f );
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );

//プロジェクショントランスフォーム
D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.33333f, 1.0f, 100.0f );

//変換行列作成
D3DXMatrixTranslation(&matWorld, v.x, v.y, v.z);
D3DXMatrixIdentity(&matWorld);
D3DXMatrixMultiply(&trans,&matWorld,&matView) ;
D3DXMatrixMultiply(&trans,&trans,&matProj) ;

//変換。適当に表示
D3DXVec3Transform(&vout,&v,&trans);
static char str[256];
sprintf(str,"%.02f,%.02f",vout.x,vout.y);
CFont::Print(str,0,0,0xff009900);

476 名前:デフォルトの名無しさん :04/10/18 01:34:17
>>425
for (i = 0; i < 100; i++) if (p[i] == 0) printf ("p[%d] = 0\n", i);

これで1行だけど、入力・処理・出力を分けてないから気持ち悪いというわけだ
いまさらだけど

477 名前:デフォルトの名無しさん :04/10/18 02:07:10
>>475
ビュウポート行列を掛けないとスクリーン座標は求まらんと思うが?

478 名前:468 :04/10/18 02:36:57
>>477
プロジェクショントランスフォームってのはパースつけるとこまでで、
その後更にビューポート座標に投影する変換が必要ってことでしょうか?

479 名前:デフォルトの名無しさん :04/10/18 02:44:16
漏れもやったことがなかったのでためしにやってみた
ちといじってみた
    D3DXVECTOR3 v(10.0f,0.0f,0.0f);//スクリーン変換したい座標

    //ビュートランスフォーム
    D3DXVECTOR3 vEyePt( 0.0f, 0.0f,-10.0f );
    D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f );
    D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f );
    D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );

    //プロジェクショントランスフォーム
    D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/2, 1.0f, 1.0f, 100.0f );
カメラ位置が( 0.0f, 0.0f,10.0f )で( 0.0f, 0.0f, 0.0f )を向いてアスペクト比を1.0にしてみた
あと視野角45度
スクリーン変換したい座標を(10.0f,0.0f,0.0f)にすれば結果が(1.0,0.0)(右端で高さは中心)になることが予想される
    float destX = (vout.x / vout.w);
    float destY = (vout.y / vout.w);
で見事予想した値が得られたのでこれで計算方法は間違ってないはず
これにアスペクト比を含めて考慮すればいいのかな

480 名前:479 :04/10/18 02:45:53
カメラ位置が( 0.0f, 0.0f,10.0f )→カメラ位置が( 0.0f, 0.0f,-10.0f )
です

481 名前:468 :04/10/18 04:28:36
>>480
わざわざすいません。
D3DXVec3Projectっていう関数を発見したんですが、
これで一発で出せたみたいです。
でも479で説明してもらった事があんまりハッキリ理解できてないので
後で困りそうですが・・・もうちっと勉強します。
なにしろありがとうございました。

482 名前:デフォルトの名無しさん :04/10/19 13:28:03
DirectXってリフレッシュレートの変更ができない環境のほうが多いと聞いたのですが
自分が持っていない環境のできる/できないはどうやって調べたらいいですか?
それを調べる関数やプログラム、まとめサイト、メーカー資料などありましたら教えてください

483 名前:デフォルトの名無しさん :04/10/19 14:17:05
リフレッシュレートを変えたがる奴は、ビデオカードが変更可能でも、
ディスプレイ側で表示不能だったらどうするつもりなんだろう?
ディスプレイにノーシグナル警告を表示させる嫌がらせソフトでも作りたいのだろうか?

484 名前:デフォルトの名無しさん :04/10/19 14:48:23
DX9.0c October SDK を入れたのですが、101/104 キーボード+日本語 Win2K だと、
右シフト(DIK_RSHIFT)、右Ctrl(DIK_RCONTROL)、右ALT(DIK_RMENU)などが正常に検出できません…。
それぞれを押すと、0x00(未定義)、0x70(かな)、0x94(漢字)が検出されてしまいます。
自分のプログラムだけだと思ったら、SDK の DirectInput サンプルでも同じことが発生。
106/109 日本語キーボードだと問題なく検出できました。

101/104 英語キーボード使っている方、
SDK サンプルで上記キーが検出できるか実験していただけませんか?
ちなみに Win32 API の GetKeyboardState では全て問題なく検出できています。
素直にこっち使ったほうがいいのかなぁ…。

485 名前:デフォルトの名無しさん :04/10/20 16:37:23
D3DXIntersect関数は
判定をしたいメッシュ(Xfile読み込んだメッシュ)へのポインタを渡せば
勝手に当たり判定してくれるわけですが
このメッシュはD3DXMatrixTranslationで移動させたりしたとしても
移動先の位置できちんと当たり判定を取ってくれるんでしょうか?
Pickサンプルのようにマウスとの当たり判定を取ろうとしてるんですが、
どうもメッシュがワールド座標の中心(初期位置)にあるときは
そこそこ取れているみたいですが(なぜだかちょっと誤差あり)、
移動させても判定位置はついていかず、中心に残ったままになってます。

486 名前:デフォルトの名無しさん :04/10/20 16:43:21
当たり判定ぐらい自分で作れば?

487 名前:デフォルトの名無しさん :04/10/20 17:22:09
>>485
判定する線を逆に行列変換すればいけるんじゃない?

488 名前:485 :04/10/21 17:13:45
>>487
それはやってるつもりなんですが、うまくいってないっぽいんですよねぇ。
「カメラの位置座標」と「マウスのスクリーン座標をワールド座標に変換した座標」を
結んだ直線との当たり判定を取ってます。
マウス座標をワールド座標に変換するにはD3DXVEC3Unprojectを使ってます。
でもこの関数が返してくれた値がちょっとばかり変な様子です。
が、その正当性を検証する以前に、とりあえずお聞きしたいのは、
D3DIntersect関数は判定するメッシュを
D3DXMatrixTranslationで移動させたりしていたとしても
移動先の位置できちんと当たり判定を取ってくれのでしょうか?
という事であります。これが分からないもので、
どこが間違えてて思うような結果になっていないか当たりがつけられないんです。

489 名前:デフォルトの名無しさん :04/10/21 18:31:46
>>488
487さんの言っている事を理解できてないと思う。

D3DIntersectは対象のメッシュが持つ頂点座標そのままで判定する。
だから対象メッシュが別のローカル座標系に移動されているなら、当然そのままでの判定は無理。

これは判定する線も、そのローカル座標系に変換すれば簡単に解決。
具体的には対象メッシュを他の座標系に移した行列の、逆行列を使えばOK

490 名前:485 :04/10/21 18:48:16
そういうことですか。なるほど分かりました。ありがとうございます。
ちょっと試してみようと思います。

491 名前:デフォルトの名無しさん :04/10/21 21:58:26
まぁようするに同じ土俵に立てと

WORLD座標系で比べるのが一番簡単かと

492 名前:デフォルトの名無しさん :04/10/23 08:16:13
「深度情報を参照するのは しんどー」

(深度情報を参照するのはつらいです)

493 名前:デフォルトの名無しさん :04/10/23 11:30:35
ワロタ

494 名前:デフォルトの名無しさん :04/10/23 21:24:25
そんなくだらないギャグ飛ばしてるから地震が起きるんだよ。

495 名前:デフォルトの名無しさん :04/10/23 21:28:31
地震がギャグのせいだというその自信はどこから?

496 名前:デフォルトの名無しさん :04/10/23 22:20:14

 殺伐としたスレに救急車が!

          ┌┬┬┬┐
    ―――┴┴┴┴┴―――――、
   /.  ̄ ̄ ̄//. ̄ ̄| || ̄ ̄ ̄||| ̄ ||
  /.    ∧// ∧ ∧| ||      |||   ||
 [/____(゚_//[ ].゚Д゚,,) ||___|||   ||
 ||_. *  _|_| ̄ ̄ ∪|.|.       |ヽ. _| |
 lO|o―o|O゜.|二二 東|.|京 精神病院 | |
 | ∈口∋ ̄_l__l⌒l_|_____|_l⌒l_|
   ̄ ̄`ー' ̄   `ー'  `ー'    `ー'

497 名前:デフォルトの名無しさん :04/10/24 20:57:44
directx8でウインドウモードで描画する際に
デバイスコンテキストで文字を表示しようと思ったのですが
y軸方向へ数ドットずつずれて文字が表示されて困ってます
例えば
座標(0,0)にA
座標(0,10)にB
座標(0,20)にC
を表示させる場合

見た目には
座標(0,0)にA
座標(0,9)にB
座標(0,18)にC
が表示されるように見えて表示位置がずれてるんですけど
なんでこんな現象がおきるんでしょうか
X軸に対してはずれは起こらないみたいです

498 名前:デフォルトの名無しさん :04/10/24 21:02:57
DirectX8というだけでどのインタフェイスを使っているのかすら書いていないが、
Direct3Dだとすると、まずDCを扱うメソッドは存在しない。
ということはウインドウから直接DCをとっているのだろうが、
そうだとするとDirectXと全く関係ないのでスレ違い。

499 名前:デフォルトの名無しさん :04/10/24 21:22:55
>>498
directx8のDirect3Dで描画したグラフィックとのずれが生じてるのでやっぱdirectxと関係があります
Direct3Dで座標(0,50)に描画したグラフィックと
DCで座標(0,50)に描いた文字列が見た目にy軸方向に少しずつずれて表示されてます

このためにグラフィックと文字の対応があやふやになって見にくいのです

500 名前:デフォルトの名無しさん :04/10/24 21:33:37
まず描画したものをキャプチャーして、
それぞれどの座標を指定したのかコメントを添えて提出しろ。



■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.