【C++】 DirectX初心者質問スレ Part21 【C】at TECH
【C++】 DirectX初心者質問スレ Part21 【C】 - 暇つぶし2ch369:デフォルトの名無しさん
09/01/31 18:40:31
>>366
ただのBitBltじゃん

370:デフォルトの名無しさん
09/01/31 18:45:50
既に描画したポリゴンでできるのかと聞かれても、よくわからない。
D3DFVF_XYZRHWを使って作った頂点バッファだったら簡単にできると思う。

>>369
どういうこと?話が見えないんだけれども

371:368
09/01/31 18:50:16
>>370

レスありがとうございます

とりあえずやってみます><

372:371
09/01/31 20:13:11
タイトル画面を表示させようと思い試しに作ってみました

URLリンク(appleloader.bbsnow.net)

上の画像は512*512のテクスチャをD3DFVF_XYZRHWを使って作ったポリゴンに貼り付けて
表示させたやつです

下の画像は1024*768のテクスチャを・・・

512*512のほうは正常に描画されるのですが1024*768のほうは変になってしまいます

これはDirectXが2のべき乗の大きさのテクスチャしかサポート?していないからですか?
他に理由あったら指摘お願いします

373:デフォルトの名無しさん
09/01/31 20:17:52
なんで1024×1024で試してみてから質問しないのですか?

374:デフォルトの名無しさん
09/01/31 20:23:01
>>373

1024*1024で貼り付けてUVで調整したら解決しました

お手数掛けて申し訳ありません

375:デフォルトの名無しさん
09/01/31 20:23:34
テクスチャの画像はどうやって作ってるの?
それのために呼び出したAPIを全部調べたの?

376:デフォルトの名無しさん
09/01/31 20:30:33
D3DXCreateTextureFromFileEx です

API調べてませんでした

次から調べてから質問します 申し訳ございません

377:デフォルトの名無しさん
09/01/31 22:02:43
DirectXに、次はねぇ・・・

378:デフォルトの名無しさん
09/01/31 23:09:12
if(diks[DIK_UP] & 0x80) {
m_dir = FOR;
Sleep(500);
}
DirectInputでキーボードから入力値を取得しています
Sleep()を抜くととてつもない速さでカーソルが移動してしまいます
Sleep()を使うとほかの処理も止まってしまうので
他の処理をとめないで同じようなことできる方法ありませんか?

379:デフォルトの名無しさん
09/01/31 23:50:11
押しっ放しじゃなくて
押した瞬間だけ検出するようにしろよ

380:デフォルトの名無しさん
09/02/01 01:24:16
>>378
マルチ

381:デフォルトの名無しさん
09/02/01 02:41:44
D3DPRESENT_PARAMETERSのPresentationIntervalをD3DPRESENT_INTERVAL_ONE
にするとリフレッシュレートに勝手にあわせてPresentが行われまする。
普通1フレーム当たり1/60秒になるので、待たせたい秒数になるように
フレーム数をカウントして、一定数ごとにカーソルを移動とかじゃだめ?
間抜けな回答してたらどうしよう・・・。

382:デフォルトの名無しさん
09/02/01 04:11:24
>>381
SDKのサンプルみろ
それが一番速い
設定選べるようになってるサンプルあるだろ?

383:デフォルトの名無しさん
09/02/01 04:13:23
> 普通1フレーム当たり1/60秒になるので、

とはかぎらない。

384:デフォルトの名無しさん
09/02/01 04:16:10
まあ、だいたい液晶だからなるっちゃなるなw

385:デフォルトの名無しさん
09/02/01 04:17:04
よくいるよね、一般的な例の話をしてるのに特殊な例を持ち出してこれは違う!って言う奴。
そんなことは百も承知だってのに。 そんなに自分が物知りだってひけらかしたいのかね。

386:デフォルトの名無しさん
09/02/01 04:29:04
URLリンク(www-06.ibm.com)


387:デフォルトの名無しさん
09/02/01 04:30:52
>>386
>>385を読めばそれが反論になってないことは理解できるだろ、馬鹿?

388:デフォルトの名無しさん
09/02/01 04:49:27
お前らよくこんなカス共の質問に回答してやれるなw

389:デフォルトの名無しさん
09/02/01 04:52:54
そもそもマルチだしな。

390:デフォルトの名無しさん
09/02/01 07:07:06
60にすると具合悪い事はままある

391:デフォルトの名無しさん
09/02/01 14:17:41
V-Syncって普通自前でやるのかな?

392:デフォルトの名無しさん
09/02/01 16:07:32
>>382の言ってるサンプルがどれかわかんなかったw
よく調べたらうちのはディスプレイモードによってリフレッシュ
レートが56~75の間で4種類くらいあるから、フレーム数決め打ち
だと環境によって変わっちゃうなあ。>>386は50Hzだったし。
QueryPerformanceCounterとかからミリ秒算出して、前のカーソル
移動時の時間と比べて一定時間たったら再実行とか。だめ?だめ?

393:デフォルトの名無しさん
09/02/01 16:09:49
液晶でも最近のフルHDのTVにつなぐとデフォが24Hzになったりするしな。

394:デフォルトの名無しさん
09/02/01 16:24:32
QueryPerformance系使うくらいならtimeGetTime()の方が制約が少なくてらくだけどね
どうせミリ秒単位を扱うわけだし

395:デフォルトの名無しさん
09/02/01 16:30:29
DirectXのVSyみそなんかリフレッシュレートっぽい
時間でウェイトかけてるだけだから。
ゲーム機の実Vクロックでループ回すのとはわけが違う。

396:デフォルトの名無しさん
09/02/01 17:32:20
>>395
タイマでウェイトかけるのはウインドウモードのときだけだよ。

397:デフォルトの名無しさん
09/02/01 17:37:00
>>392
>サンプルがどれかわかんなかったw
全部見ろよ

398:デフォルトの名無しさん
09/02/01 17:38:53
サンプル連呼されても初心者にはわからんものだよ
頭の固い奴にはそれがわからんのです

399:デフォルトの名無しさん
09/02/01 17:39:41
ゲームで複数のXFileを読み込むときのロード時間が気になっているのですが
これを高速化したりするのは可能でしょうか?

ネットで調べたところ、一度DirectXの「Xファイル読み込み関数」で
ロードしておいたメッシュデータをバイナリで保存して、次回起動時に
そのデータを直接読み込むという手段を取られていた方がいるのですが
具体的にどうやるのでしょうか?また、本当に早くなるのでしょうか?

D3DXLoadMeshHierarchyFromXなどのXファイルロードルーチンはそのマシン
で描画が早くなるようにロードしたメッシュを最適化しているという
話を聞いたことがあるので、このやり方で本当にロードが早くなるのか
心配です・・・。

どなたかXFILEのロードの高速化について詳しい人がいたらアドバイスを
お願いします。

400:デフォルトの名無しさん
09/02/01 21:36:01
どれだけ速くなるかは知らないけど
頂点バッファとインデックスバッファ、あと属性テーブルみたいなの取得すればいいじゃん

401:デフォルトの名無しさん
09/02/02 04:57:21
>400
ありがとうございます、階層化されたメッシュの場合にかなり面倒そうですが
今度の週末にでも一度組んでみようと思います。

402:デフォルトの名無しさん
09/02/02 23:55:43
>>401
最近その問題(遅い)にぶちあたったが、遅いのはアニメーションのロードだった
アニメーションのロードだけ自前でやるのお勧め
メッシュのロードはそこそこに早かったよ

403:デフォルトの名無しさん
09/02/03 00:21:39
カメラの回転での質問です。

横回転は問題ないのですが、縦回転すると90度を超えると
急に視界が反転してしまいます。

90度になったらD3DXMatrixLookAtLHのpUpを逆方向にすると
縦回転だけする場合は良いのですが、
少しでも縦回転した状態で横回転すると、視点がぐるぐる
変に回ってしまいます。
どうすれば良いでしょうか?

404:403
09/02/03 00:32:03
すいません
横回転が加わっている状態で縦回転すると、でした。
横回転はどの場合でも普通に回転してくれます。

405:デフォルトの名無しさん
09/02/03 01:12:25
まわす順番がおかしいんじゃねーの?
とりあえずその部分のコード貼れや


406:デフォルトの名無しさん
09/02/03 02:39:51
D3DXMatrixLookAtLHの引数で回転するんじゃなくて
注視点を原点とするカメラのローカル姿勢を回転させて
そこからビュー行列を逆算すればおk

407:403
09/02/03 06:23:07
>>406
すいません具体的にどのようにすれば良いでしょうか?
今現在は

D3DXMatrixRotationX(&mat, g_CameraAngle.x);
D3DXVec3TransformCoord(&g_Camera.vecEyePt, &g_Camera.vecEyePt, &mat);

という感じでカメラの座標を変換してから

D3DXMatrixLookAtLH(&matView, &vecEyePt, &vecLookatPt, &vecUpVec);
pDevice->SetTransform(D3DTS_VIEW, &matView);

でカメラ位置を変更しています。

408:デフォルトの名無しさん
09/02/03 11:04:16
// カメラの初期姿勢(視点(0,0,-10)、注視点(0,0,0)の場合)(変更しないで保持する)
const D3DXVECTOR4 vecEyePt(0,0,-10,1) ;
const D3DXVECTOR4 vecLookatPt(0,0,0,1) ;
const D3DXVECTOR4 vecUpVec(0,1,0,0) ;//ここだけw成分が0であることに注意(回転のみ反映)

// 初期姿勢からどれくらい移動したいかの行列
// 回転だけでなく拡大縮小移動なども合成できる
D3DXMatrixRotationY(&mat, g_CameraAngle.y);

D3DXVECTOR4 Eye, Look, Up
D3DXVec4Transform ( &Eye, &vecEyePt, &mat ) ;
D3DXVec4Transform ( &Look,&vecLookatPt, &mat ) ;
D3DXVec4Transform ( &Up, &vecUpVec, &mat ) ;

D3DXMatrixLookAtLH(&matView, (D3DXVECTOR3*)&Eye, (D3DXVECTOR3*)&Look, (D3DXVECTOR3*)&Up);


もうちょっとスマートなやり方あるけどそれは少し考えればわかるよね

409:デフォルトの名無しさん
09/02/03 18:17:31
最初はスマートなやりかたより理解しやすさを追求すればいいじゃない

UpVectorが0成分だと気づかなくて
3日くらい悩んでたのを思い出した

410:デフォルトの名無しさん
09/02/03 19:00:34
>402
ありがとうございます、時間が取れたのでアニメーションの書き出しを
試してみたのですが、アニメーションコントローラにアニメーションデータの
実体が見当たりません。

アニメーションデータの実体とサイズはどうやって取得したら
宜しいのでしょうか?

411:デフォルトの名無しさん
09/02/03 20:59:38
>>410
sizeof()じゃだめ?

412:デフォルトの名無しさん
09/02/04 05:07:11
Xファイルを読み込むためのD3DXLoadMeshHierarchyFromX関数にて
LPD3DXANIMATIONCONTROLLERというアニメーションコントローラに
値を入れてアニメーションを管理しているんですが、どうもこの
LPD3DXANIMATIONCONTROLLERに実体が無いというかsizeofしても
4の値しか返ってこないんですが・・・。

413:デフォルトの名無しさん
09/02/04 05:20:33
C/C++の基礎を勉強したらどうかね?

414:デフォルトの名無しさん
09/02/04 08:22:41
DirectXの前のCの本読んだほうがいいなコレは。

415:412
09/02/04 09:57:16
日頃の勉強不足を晒してしまい申し訳ございませんでした。
DirectXでゲームを何本か作った事はあるのですが、DirectX側で
保持しているアニメデータを直接いじった経験が無く、ネットで色々
調べてみたのですが、どうにもお手上げな状態です。

アニメデータ等が読み込まれているメモリ配列部分がどこにあるのか
皆目見当がつかないのです。
なにかアドバイス等もらえないでしょうか・・・?

416:デフォルトの名無しさん
09/02/04 11:47:54
>>415
頭に LP がついているのは、ポインタだ。
ポインタは(32bitOSなら)4バイトで当然。
あと、アニメーションコントローラーの内部が確保したメモリーに直接アクセスする手段はない。
AnimationSetを取得したり、そこからさらにAnimationを取得したりという間接的な手段でアクセスするべし

あと、AnimationControllerをいじるのはやめたほうがいいぜ。
メモリーリーク含め、バグが多すぎる。
例えば時間0の情報を書き換えると、アニメーションが正常に行われなくなる。
取得したAnimationSetを、他のコントローラーにセットしてもまともに再生されない。
Animationを削除してから追加すると、メモリーリークする。などなど

417:デフォルトの名無しさん
09/02/04 12:40:57
ウィンドウの左端を画面外に移動させると画像も画面外から描画されることを期待していたのですが
画面端から表示されてしまいます。
画面外に移動させてもクライアント座標の(0, 0)から描画させるにはどうすればいいのですか?

// これだとウィンドウの左端が画面外に出たときに(0, 0)から描画されない
LPDIRECT3DDEVICE9 pD3Ddev;
pD3Ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0);
pD3Ddev->BeginScene();
Draw();
D3Ddev->EndScene();
if( FAILED(pD3Ddev->Present(NULL, NULL, m_hWnd, NULL)) )
{
pD3Ddev->Reset(&g_pDirectX->d3dpp);
}



418:デフォルトの名無しさん
09/02/04 17:24:28
つーかアニメデータなんて自分用の形に吐き出して自分で管理クラスつくれよ

419:デフォルトの毛無しさん
09/02/04 19:49:35
>>417
Presentの引数を全部NULLにするとか。

ごめん、勘で言った。

420:デフォルトの名無しさん
09/02/04 21:46:56
>>417
ウィンドウサイズを変える毎にクライアント領域のサイズに合わせてデバイスを作り直す

421:デフォルトの名無しさん
09/02/04 21:51:39
デスクトップ領域からウィンドウが外れたときの話だと思うが

422:デフォルトの名無しさん
09/02/04 21:56:26
無知発見。

423:デフォルトの名無しさん
09/02/04 22:51:27
>>417
そのソースコピペ?
コピペじゃないならコピペにしてくれ。
他にも書き写しのときにミスがありそう。

ああ、あと、俺の環境では画面からはみ出しても普通にクライアント座標の端っこから描画されるぞ。
はみ出した部分は画面外だから当然見えない。
<環境>
WindowsXP Home Edition SP2
DirectX 9.0c (4.09.0000.0904)
DirectX SDK Novemver 2007
こんぱいら BCC 5.5

424:デフォルトの名無しさん
09/02/04 22:57:09
だからクライアントサイズとデバイスサイズが合ってないとそうなるんだよ

425:403
09/02/04 23:06:07
>>408
とても参考になりました
わかりやすいコメントまでつけてくださって
本当にありがとうございます

426:デフォルトの名無しさん
09/02/05 07:31:39
DirectinputのDIK_LEFTとかを引数で渡したい場合は

どうやるんですか?

intなら

foo(int i);

foo(??? DIK)

427:デフォルトの名無しさん
09/02/05 07:45:17
BYTEでいいんじゃね?
>Dinput.h に定義されているキーボード デバイス定数は、キーボード デバイスの
>データ パケット (256 バイト配列) 内でのオフセットを表す。

428:デフォルトの名無しさん
09/02/05 07:52:20
ありがとうございます><

429:412
09/02/05 08:21:42
>416
丁寧な解説ありがとうございました。
自前でアニメーションの仕様を0から組むのはあまりにも敷居が高いですし
メモリリークなどが発生してしまうようではどうも面倒の方が多そうですね。

430:デフォルトの名無しさん
09/02/05 15:04:07
現在頂点カラー(0xFFFFFFFF)で描画しているテクスチャを
頂点カラー(0xFF000000)に変更して全く同じように描画、
つまり、テクスチャのポリゴンとの合成方法を加算合成にしたいのですが、
どの設定メソッドを使用すればいいのでしょうか?
ピクセルシェーダを自作すべきなのでしょうか?

431:デフォルトの名無しさん
09/02/05 18:58:25
DirectInputやDirectSoundについて質問です

ゲームループをタイトルとゲームで分けています

タイトルが呼ばれたらインプットデバイス・サウンドデバイスを作る
ゲームが呼ばれたらタイトルを破棄してゲームでインプットデバイス・サウンドデバイスを作る

というやり方でいいでしょうか?

432:デフォルトの名無しさん
09/02/05 19:51:35
>>430
デバイス->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );// 合成元1(テクスチャ)
デバイス->SetTextureStageState( 0,D3DTSS_COLORARG2, D3DTA_DIFFUSE );// 合成元2(頂点カラー)
デバイス->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_ADD );// 合成方法(加算)

433:デフォルトの名無しさん
09/02/05 19:55:41
>>431
タイトルとゲームでウインドウ遷移したりするの?
しないならデバイス作り直さなくてもよくね?
別に作り直ししちゃいけないわけでもないし
そのやりかたでもいいんじゃね?

シーンごとにリソース解放するってならわかるけど
デバイスを無理して作り直す必要はないとは思うけどね

434:デフォルトの名無しさん
09/02/05 20:21:31
>>433

ありがとうございます

435:430
09/02/06 13:53:26
>>432
ありがとうございました

436:デフォルトの名無しさん
09/02/06 16:01:00
最近3Dの勉強を始めた者ですが、質問です。

人間モデルがあったとして、手に別のモデルをくっ付けたい場合は、その座標等を取得する関数のような
モノがあるのでしょうか?

いまいちその辺のスタンダードな取得方法がわからなくて迷走してます。
3Dモデルのノード?に名前をつけれるのでその名前から取得したりするのかなぁと思ったりしてるんですが
どうなんでしょう?

ググッて調べても検索ワードがまずいせいか、その辺がまったくわからなくて…Orz

437:デフォルトの名無しさん
09/02/06 16:06:28
ボーンの座標計算を自前で行えば自由自在

438:デフォルトの名無しさん
09/02/06 16:07:26
一発で座標を取得できるような便利関数は無い
しかし、どんな方法であれアニメーションをさせている限り
ボーンが今現在どんな姿勢をしているかは取得できるはずなので
自力で目的のボーンの変換行列を探せばOk

439:436
09/02/06 16:31:55
>>437
>>438
なるほど、モデルじゃなくボーンの方を何らかの方法で調べて
目的の行列が見つかりさえすれば座標が取得できるわけですね。

もやもやした感じが少し晴れました。
その方向で調べてみます。
ありがとうございました。

440:デフォルトの名無しさん
09/02/06 16:48:29
深度バッファの取得方法がよく分からないんだけど
もしかして2回レンダリングするの?

441:デフォルトの名無しさん
09/02/06 22:08:55
direct X ではベクトルの始点、終点を与えて矢印を引くことできないんだ。。。

(x,y,z)成分が与えられていれば、θ=arctan(y/x)、φ=arctan(z/sqrt(x^2+y^2)
から角度が求められるから、x-Fileで作成した例えばy方向の矢印を順次回転
させて(x,y,z)方向に向ければいいんだろけど(しかし、これもx≒0のときθの
精度が悪くなるからarcsinやarccosに切り替えたり、θが第何象限にあるかを
判定する必要があるから、そう簡単ではない)。

それよりもわからないのは、剛体の3次元運動の角速度は、普通、剛体に固定
された回転座標系ξηζ上で成分表示されている。これをもとに角速度ベクトル、
角運動量ベクトルをワールド座標系上で矢印表示するにはどうしたらいいんだ?

directXの回転変換マトリックスってベクトルを回転してるのか、それとも座標系
を回転してるのか?マトリックスの内容と表示を照らし合わせて確認すればいいが
面倒クセェ。


442:デフォルトの名無しさん
09/02/06 22:34:26
>>440
深度バッファをシェーダで利用したりするのは、DirectX10以降でないとダメ。
それ以前はNVIDIAが独自拡張で別のことに使っていた関係で使えない。

だから9では、MRTで深度値を別のテクスチャに描画して使う。

>>441
なんでいちいちθを求めるんだ。
方向ベクトルがあれば、そこから直接回転行列作ればいいだろう。
ちゃんとベクトルの勉強してたら暗算でできるレベル。

443:デフォルトの名無しさん
09/02/06 22:51:54
>>442

わかってない。もういい

444:デフォルトの名無しさん
09/02/06 23:09:43
>>443
質問文が長すぎる
簡潔にこれがわからないって最初に書け詳細がその後だ

445:デフォルトの名無しさん
09/02/07 00:56:22
正直、何が聞きたいのかさっぱり分からないけど
ベクトルからその向きになるような回転行列を作りたいって話なら
ここを参考にすればいいと思うよ

URLリンク(marupeke296.com)

446:デフォルトの名無しさん
09/02/07 07:25:07
>>444

お前はひっこんでろ

>>446

ありがとう。

directXには任意の軸方向回りに、ある角度だけ回転した場合の
回転行列を求める関数がある。

なので、X-Fileで作成した初期方向のベクトルaと希望の方向の
ベクトルbの外積を求めれば、必要な情報が得られることは紹介
してくれたサイトを見ないでも、しばらくしてわかった。

あとは、World座標系と剛体に固定された座標系の間の座標変換行列
が必要だけど、これはベクトルの回転変換行列と要素が一致するだろう。
(そうあってほしい)


447:デフォルトの名無しさん
09/02/07 08:20:06
>>446
直接 ~が知りたい って文章かけないわけ?

448:デフォルトの名無しさん
09/02/07 15:57:37
もういいから放置しておけよ
こいつが必要なのはDierctXの知識じゃなく日本語の知識だ

449:デフォルトの名無しさん
09/02/07 16:49:31
>>447

馬鹿は相手しないね。悪いけど。

>>448

馬鹿がもういっぴき。臭ぇーちんぽが、死ね。



450:デフォルトの名無しさん
09/02/07 16:58:13
考えるまでもなくベクトルの回転も座標の回転も同マトリックスでできるだろ。
座標の回転なんて基底ベクトルの回転に等しい。

451:デフォルトの名無しさん
09/02/07 17:06:21
数学がわからんだけじゃないか
DirectX関係ねぇ

452:デフォルトの名無しさん
09/02/07 17:18:49
ふぁーーっ。

>>450

おお!、あんた、なかなk筋のいい回答してるよ。

良くできましたね! 皆さんでほめてあげましょう(校長先生のお話)w。


>>451

相変わらず馬鹿だな。お前に言われるのは、100年早い。
死ね、臭ぇーーー腐れチンポが。






まだ、書いていいぞ。あっははは。






やーい、腐れチンポ、あははは




453:デフォルトの名無しさん
09/02/07 17:58:32
DirctXってかシェーダーの質問なんです

URLリンク(game.watch.impress.co.jp)
↑みたいにライティング結果をメッシュのテクスチャに焼きこんで
それを出力させたいんですが、どうすればいいんでしょうか?

454:デフォルトの名無しさん
09/02/07 22:55:54
見た瞬間、グロかとおもた。

455:デフォルトの名無しさん
09/02/07 22:58:12
ビビタ

456:デフォルトの名無しさん
09/02/08 01:45:47
>>453
UV座標をスクリーン座標にしてレンダーターゲットに描画するとか?
URLリンク(www1.axfc.net)
でもテクスチャの使いまわし(特に左右対称の場合とか)があると
うまくいかないのよね。

457:デフォルトの名無しさん
09/02/08 04:05:10
>>453
モデリングソフトで真正面・真横・真上・真下から
レンダリングした絵をテクスチャにして平行投影で貼ればよかろ?

458:デフォルトの名無しさん
09/02/08 04:06:46
ってCGワールドに載ってたw

459:デフォルトの名無しさん
09/02/08 16:19:04
ゲームのDVDから画像データを抜き出すことってできるんですか?


460:デフォルトの名無しさん
09/02/08 16:24:09
できるよ

GetModuleDds(Disk code);

461:デフォルトの名無しさん
09/02/08 16:25:43
>>459
ゲーム実行中にVRAMコピーすれば余裕
でもそんなこと頑張ってもたかが知れてるぞ

462:デフォルトの名無しさん
09/02/08 16:47:30
>>461
専門がそっちなんで最初はそれを作ってたんですが、XBOXを3台ほど壊してしまって
少しぐらい難しくても経済的にソフトでやろうと思ったんですが、予想以上にファイルがどうなってるのかわからず困ってます
アドバイスお願いします。


463:デフォルトの名無しさん
09/02/08 17:31:16
スレチ

464:デフォルトの名無しさん
09/02/08 17:46:12
該当しそうなスレはことごとく餓鬼の巣窟でまったく話にならないんです。
本気で取りだしたいのでゲームに埋め込むときのノウハウががわかっている方がいるであろうこのスレを選びました。
3Dデータの本質がわかっているこのスレでお願いします!

465:デフォルトの名無しさん
09/02/08 17:52:42
スレリンク(prog板)


466:デフォルトの名無しさん
09/02/08 18:06:42
それらしいスレにはわかる人はいないんですよ


467:デフォルトの名無しさん
09/02/08 18:07:47
俺はわからないけど、とりあえず夜まで待てば?

468:デフォルトの名無しさん
09/02/08 18:17:12
データだけ取り出せればいいの?
画像フォーマットの解析は自分でやるんだよね?

469:デフォルトの名無しさん
09/02/08 18:26:14
暗号化されているのか、対応ソフトがあれば見れるのか
そもそも3Dデータであろう部分は判別できるのかとか
ゲームを作る時のデータ扱いの常識と、あとは自分で調べていけるような流れを教えてもらえるとうれしいです


470:デフォルトの名無しさん
09/02/08 18:30:33
スレチだっつってんだろ死ね

471:デフォルトの名無しさん
09/02/08 18:31:00
XBOXは覗いたことないけど普通は独自で解析できないようにしてるんじゃないのか?
もし見れたらMADゲームとかで好きにキャラとか動かして遊べるからそうとう盛り上がってるはずだけど
ぐぐっても出てこない、きびしいんじゃないだろうか

472:デフォルトの名無しさん
09/02/08 18:38:46
DirectX関係ないだろアホか

473:デフォルトの名無しさん
09/02/08 18:41:32
単なるbyteの配列を抜き出してどういうフォーマットのデータがどう並んでいるかなんて判別不可能に近い。
ましてやXBOXなんてUMAだからシステムメモリとビデオメモリが共有だろ。
どこに何があるのかすら分からないだろ。

474:デフォルトの名無しさん
09/02/08 18:45:32
まったく関係なくもないな
同じような道だし
DirectXを使ったPCゲームで3Dモデルをどう使ってるかから調べればいいんじゃないのか?
XBOXはPCゲームを移植しやすいように作ってあるらしいから共通点がみつかるかも

475:デフォルトの名無しさん
09/02/08 18:54:57
俺も知りたいからあげ

476:デフォルトの名無しさん
09/02/08 19:01:56
そんなもんゲームによりけりだろ

477:ボコボコにしてやんよ ◆BokoBoko7c
09/02/08 19:31:23 BE:1083996656-2BP(2537)
氏ね

478:デフォルトの名無しさん
09/02/08 20:19:06
>>471
VRAMに展開された状態なんだから圧縮も糞もないだろ
開発環境あったら普通にみれるじゃん

479:デフォルトの名無しさん
09/02/08 20:47:04
VRAMってもしかしてメモリチップのことじゃなかった?

480:デフォルトの名無しさん
09/02/08 20:53:17
質問者はDVDからっていってるからファイル解析じゃないの
というかVRAM覗ける様にする方がしんどくね?

481:デフォルトの名無しさん
09/02/08 21:08:52
D3DX10CreateEffectFromFile()で失敗します。
FXファイルはあります。この場合失敗する理由をどうやって調べればよいですか?
よろしくお願いします。


482:デフォルトの名無しさん
09/02/08 21:12:11
481です。
D3DX10CreateEffectFromFile()からはE_FAILが返ってきてました。


483:デフォルトの名無しさん
09/02/08 21:33:39
481です。
自己解決しました。
fxc.exeでFXファイルをコンパイルしてみたところコンパイルできなかったので
FXファイルを再度チェックしたところ、書き方の間違いが見つかりました。
それを修正したら動作しました。
ありがとうございました。


484:デフォルトの名無しさん
09/02/08 21:34:03
fxc使う!

485:デフォルトの名無しさん
09/02/08 21:34:58
orz

486:デフォルトの名無しさん
09/02/09 02:49:37
まずは圧縮(パッキング含)されてそうならそのアルゴリズムを解析する。
たいていLZ法やハフマン法とかなんで、あとはつじつまが合いそうな
データ並びを調べ、展開ツールを自作する。

それが終わったらデータ一つ一つのフォーマット解析だ。
単純そうなデータがあればそれを解析サンプルとして使う。

ピクセルカラーやパレットがどう入ってるかあたりを付けながら、
確認可能な画像フォーマットに変換してみる。

ここまで読んでわからない奴には無理だから諦めなさい。

487:デフォルトの名無しさん
09/02/09 03:19:16
HLSLの質問です

サチュレーションをシェーダで実装したいのですが
参考になるサイトや書籍、調べるきっかけになる単語があれば教えてください。
よろしくお願いします。

488:デフォルトの名無しさん
09/02/09 03:24:06
>>487
もっと詳しくかいて
何をどう飽和させたいのかがさっぱり意味不明

489:デフォルトの名無しさん
09/02/09 03:49:45
すみません、
実装したい現象は2つあります。

URLリンク(game.watch.impress.co.jp)
での炎で起こるサチュレーション
他のモデルに光が浸食する現象です


夜中に車のライトを直視して、光の針が四方に突き出るような現象

よろしくお願いします

490:デフォルトの名無しさん
09/02/09 05:00:05
①はHDRを中心に検索をかけ、ある程度自己解決
②は、擬似HDRで実装したゲームでの表現があることから糸口発見

もし参考になるサイト、書籍を知っている方、
アドバイスをいただける方がいらっしゃれば情報をください。
よろしくお願いします。

491:デフォルトの名無しさん
09/02/09 13:13:40
シェーダプログラミングブックのクロスフィルタ

492:デフォルトの名無しさん
09/02/09 18:01:19
質問です。
3Dキャラクタを表示するとともに、仕込んであるボーンも表示するビュワーを作ったところ、疑問がでました。
3DキャラはXファイルを読み込んでいます。

Direct3Dだと、どうやらボーンは「ボーンの長さ + そのボーンの先での変換行列」という形で情報を持っているようです。
ですが、通常3Dソフトだと「そのボーンの根本での変換行列 + ボーンの長さ」という形が一般的だと思うのです。

たしかにDirect3Dの形式だと、「末端のボーンには長さ要らないんだけどなー」という点において有利な気はします。
が、直感的には後者のほうがずっとわかりやすいと思います。

また、ボーン名を表示する機能もつけてあるのですが、Direct3Dの仕様に合わせると「1つ上の階層のボーン名」を表示しないと、人間の直感からは1つずれた名前になってしまいました。

私が思ってる「一般的」は、もしかしてズレてるのでしょうか?
Xファイルしかファイルフォーマットを勉強したことないのですが、他の形式がどうなっているのか知っている方がいらっしゃいましたらコメントいただきたいと思います。
よろしくお願いします。

493:デフォルトの名無しさん
09/02/09 18:51:18
Xファイルなんか使うな

494:デフォルトの名無しさん
09/02/09 20:03:59
Xfile使うなって言ってるやつは何つかってんだよ
誰が何使おうが好きなようにすればいいじゃない

495:デフォルトの名無しさん
09/02/09 20:10:29
>>494
調べればわかるけどXファイルは面倒臭い
逆に聞き返すが何のツールでXFile出そうとしてんの?

5万だしてXSI買ったほうがナンボか楽

496:デフォルトの名無しさん
09/02/09 20:27:42
modとかならmaxかmaya行くと良いよ

497:デフォルトの名無しさん
09/02/09 20:32:28
>>496
maxとmayaってゲームで使えるモデルが出力できる環境整えると
いくらぐらいになんの?
mayaがタダになったような気がするけど
プラグインまで使えるバージョンだっけ?

498:デフォルトの名無しさん
09/02/09 20:39:31
いきなり初心者に5万出せってのはどうなんだよw

499:デフォルトの名無しさん
09/02/09 20:44:05
>>498
オラァ!さっさとジャンプしてみろ!
チャリチャリなるだろチャリチャリィィィィィィィィィ!

500:デフォルトの名無しさん
09/02/10 00:58:34
>>499
夜中に声出して笑っちまったw

501:デフォルトの名無しさん
09/02/10 07:11:33
チャリチャリなるような財布に5万はないだろ

502:デフォルトの名無しさん
09/02/10 07:13:21
ウォレットチェーンに違いない

503:デフォルトの名無しさん
09/02/10 10:14:00
DirectXシェーダプログラミングとかいう本読んでるんですが、
これ、DirectXほとんど関係なくないですか?シェーダって思いっきり別言語じゃないですか
DirectXでGPUを操作するものは用意されてないんですか?
今後はシェーダのスレに言った方がいいんでしょうか?そもそもシェーダのスレはあるんですか?

504:デフォルトの名無しさん
09/02/10 10:20:37
>>503
お前はDirectXを何だと思ってるんだ

シェーダのスレはあるかと思いきや意外と見あたらないな。
別にここでいいと思うが。

505:デフォルトの名無しさん
09/02/10 10:29:09
まじこのHLVSとかいうの覚えなきゃいけないんですか?

506:デフォルトの名無しさん
09/02/10 10:35:21
HLSLだよ何で間違えるw

覚えたくないならDirect3D9以前を使うこと。
Direct3D10では必須。 基本的な機能だけならコピペでもなんとかなるが。

507:417
09/02/10 10:37:56
返信遅れてすみません。
>424さんの言うとおりクライアントサイズをデバイスサイズが違うことが原因でした。
ありがとうございました!

508:デフォルトの名無しさん
09/02/10 15:35:53
HLSLってかなり楽しいと思うんだが
正直、DirectXとか機能覚えるだけで全然楽しくないけど
シェーダは、この表現はそういう処理になってたのか、とか
そういうのがあって楽しいよな

509:デフォルトの名無しさん
09/02/10 20:43:00
SIZE構造体とか、RECT構造体とか、こういうのって使いますか?
本のサンプル見てるとやたら使ってるんですが、全部覚えないとだめ?


510:デフォルトの名無しさん
09/02/10 20:54:57
>>509
関数の引数で決まってるので使わざるを得ない


511:デフォルトの名無しさん
09/02/10 20:59:09
>>509
なんで覚えるんだよ
必要なとき調べりゃいいだろ
まさか暗記でもする気か?
無駄だぞ無駄

512:デフォルトの名無しさん
09/02/10 21:10:16
DirectXシェーダプログラミング読もうかと思ったんですが、この本の内容ってDirectX10
でも使えますか?

513:デフォルトの名無しさん
09/02/10 21:59:54
特にDirectXAPI側の形式が変わってしまっているが、やってることは同じ。
そのままコピペで使えるのかという質問なら否。

514:デフォルトの名無しさん
09/02/10 22:57:42
>>513
ありがとうございます。
そのままコピペできるような本は日本語ではないですか?
なければ英語でもいいので教えてください。


515:デフォルトの名無しさん
09/02/10 23:20:06
なんでコピペにこだわるんだろうか・・・
初心者の前に人間ですらないのだろうか?

516:デフォルトの名無しさん
09/02/10 23:21:13
コピペ君って本当に馬鹿なんだなって聞こえた気がした

517:デフォルトの名無しさん
09/02/10 23:38:44
コピペして動かせた方が勉強するにしても役立つのは明らかだからな

518:デフォルトの名無しさん
09/02/11 00:01:10
だったらSDKのサンプルでもみろよw
ていうか
ソースが本に書いてあってもそのソースの解説が載ってる
本は正直みたことねぇな
っていうかそんなことしたらページがいくらあっても足りない
ただ、載ってるだけだw

519:デフォルトの名無しさん
09/02/11 00:18:16
だって分からないんス。
SV_POSITIONとか言われてもぜんぜんピンとこない。
だれかがソースを目の前で書きながら分かりやすく解説しつつ、
手取り足取り教えてくれたらいいのに。シェーダのプログラムのやり方を
解説した実況中継DVDとかないですかね。


520:デフォルトの名無しさん
09/02/11 03:15:58
シェーダの流れに便乗して質問なんですが
tex2Dprojって、MSDNに微分係数付きのテクスチャ座標という説明しかなくてよくわかりません
デプスシャドウなどで深度値を比較するときに使われてるみたいですが
普通のtex2Dと何が違うんですか?

521:デフォルトの名無しさん
09/02/11 07:27:22
>>519
ピンとこないと駄目なんだ?w

522:デフォルトの名無しさん
09/02/11 07:43:23
>>519
ピンとこないとダメなら自分でピンとくる3Dエンジンを作るよろし。

523:デフォルトの名無しさん
09/02/11 08:52:21
>>520
微分は、tex2Dgradの方じゃ?
tex2Dprojは、xyをwで割って
サンプリングする座標を求めるもの
tex2Dproj( xy, t ) ≒ tex2D( xy / t )

シャドウマップではサンプリングに射影変換が
必要なケースがあるので、こいつが使われる。

524:デフォルトの名無しさん
09/02/11 09:03:50
↑間違ってる、正しくは↓
tex2Dproj( s, xyzw ) ≒ tex2D( s, xyzw / w )


525:デフォルトの名無しさん
09/02/11 14:18:26
よく分からないけど、wで割るっていうのは
スクリーン座標をビュー座標にしてるってことですか?

526:デフォルトの名無しさん
09/02/11 20:17:20
そんなわけねーじゃん

527:デフォルトの名無しさん
09/02/11 20:39:30
俺の頭じゃ理解できない
詳しく教えて下さい

528:デフォルトの名無しさん
09/02/11 20:57:54
だってビューってみたかんじからして
Y座標逆っぽいじゃん

529:デフォルトの名無しさん
09/02/11 21:32:48
すみません、なんか勘違いしてたみたいです
wで割ると射影空間上のX座標Y座標が-1から1の間に収まるっていう感じであってますか?

530:デフォルトの名無しさん
09/02/11 22:30:21
>>525
同次クリップ空間からビュー座標にしてるんじゃね?

531:デフォルトの名無しさん
09/02/11 23:46:32
独習デザインパターンC++は役に立った

532:デフォルトの名無しさん
09/02/12 11:22:52
>529
ここ見るといいよー

そもそも「w」って何なのか?
URLリンク(marupeke296.com)


533:デフォルトの名無しさん
09/02/12 20:02:33
288*256の画像ファイルを読み込んで、24け32の範囲を
貼り付けると横が伸びるんですけどなんか方法はないですか?

534:デフォルトの名無しさん
09/02/12 20:07:11
どうやって画像を読み込んで、どうやって表示してるのか言わないとわからない。

535:デフォルトの名無しさん
09/02/12 20:46:41
256*256にしとけ

536:デフォルトの名無しさん
09/02/12 20:47:37
「288*256の画像ファイルを読み込んで」の時点で
テクスチャが512x256になってるって落ちじゃ?
D3DXCreateTextureFromFileで読み込むとそうなる
D3DXCreateTextureFromFileExでちゃんと幅と高さを指定してつくれ

537:デフォルトの名無しさん
09/02/13 05:34:17
Maneged DirectXってDirectShowだけじゃなくてDirectMusicも含まれてないんですか?
VS2008なんですけど、ヘルプを組み込むにはどうすればいいんでしょうか
DirectXをインストールして入ってなければあきらめるしかないですか?
今はchmを直接開いてるんです

538:デフォルトの名無しさん
09/02/13 07:26:26
スレ違い

539:デフォルトの名無しさん
09/02/13 07:34:32
うほ

540:デフォルトの名無しさん
09/02/13 20:19:51
アルファブレンディングとZバッファの関係で躓いています。

使用バージョン DirectX 8.0 (d3d8.h d3dx8.h)
VS2008 VC++

最背面 背景 > 半透明オブジェクト 最前面
のように描画されてて半透明オブジェクトの中身は TLVertex で
000
010
000

0は完全透明、もしくは半透明だと思ってください。
1は完全不透明です。

で、この半透明オブジェクトの背面に新たに TLVertexのオブジェクトを描画したくて、
0の部分はこの新たなオブジェクトと普通の半透明処理をして
1の部分は描画を破棄するなどして背面にあるように見せかけたいのです。

仕様として描画の順番を入れ替えることができないのでZソート法などを使うことができないのですが、
多少結果が食い違ってもかまわないのでどうにか背面にあるように見せる方法はないでしょうか?

541:デフォルトの名無しさん
09/02/13 20:29:13
>>540
半透明はZソートしない限り不可能。
完全に透明なら、Zテストを使えばいい。

542:デフォルトの名無しさん
09/02/13 20:41:58
URLリンク(img.2ch.net)
フルオリジナルだから実現できた!綾波レイが頼んだラーメンを完全再現。

・エヴァテイストで全てをデザイン
・オリジナルATフィールドナルト入り
・「ロンギヌスの槍」蓋シール
販売価格 5,250円(税込)

メーカー 日清食品
発売日 09年03月下旬
原作名 新世紀エヴァンゲリオン
コピーライト (C)GAINAX・カラー
日清食品株式会社製


URLリンク(www.amiami.com)
URLリンク(www.amiami.com)

543:デフォルトの名無しさん
09/02/13 21:49:16
>>541
現状完全透明でも描画できていないので半透明については保留にしておいて
Zテストについて色々調べてみます。
ありがとうございました

544:デフォルトの名無しさん
09/02/13 23:26:03
>>543
ごめん、Zテストじゃなくてアルファテストの間違い。

545:デフォルトの名無しさん
09/02/14 00:32:49
DirectXで画面(800*600)の任意の場所にドット絵を表示させたいのですが
どうしてもアンチエイリアスがかかったようにぼけてしまいます。

//プロジェクション行列
D3DXMatrixOrthoLH(
 &ProjectionMatrix,
 400,
 300,
 0,
 100
);

//キャラクターのマトリックス
D3DXMATRIX mat;
D3DXMatrixIdentity(&mat);//現在は原点

mat * ProjectionMatrix を掛け合わせた行列で
シェーダーでキャラクターの頂点を変換しているのですがうまくいきません。
ご教授お願いします><


546:デフォルトの名無しさん
09/02/14 00:37:05
シェーダを使わずにレンダリングしたら正常ってことだよな

547:デフォルトの名無しさん
09/02/14 00:37:29
>>545
デバイス->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT );
デバイス->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
デバイス->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );

548:デフォルトの名無しさん
09/02/14 00:58:05
>>546
シェーダーに頼り切ってるのでシェーダー使わない方法が今一わかってません…

>>547
DirectXにテクスチャを送らなく
シェーダーにテクスチャを送っていたので
//普通のテクスチャ用
//普通のテクスチャ用
sampler2D NormalSmp = sampler_state {
Texture = NormalTex;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = CLAMP;
AddressV = CLAMP;
};
     ↓

sampler2D NormalSmp = sampler_state {
Texture = NormalTex;
MipFilter = POINT;
MinFilter = POINT;
MagFilter = POINT;
AddressU = CLAMP;
AddressV = CLAMP;
};
にしたらきちんとうつりました

ありがとうございます。

549:デフォルトの名無しさん
09/02/14 14:42:57
D3DXをつかわずにPNGとかの画像を読み込んで
テクスチャーを作るにはどうするですか?

550:デフォルトの名無しさん
09/02/14 14:47:07
CreateTextureで必要なサイズのテクスチャを作って
そのテクスチャをLockRectして画像から読み取った色情報を書き込めばOK
ただしその画像フォーマットがどのように色情報を格納しているかの知識が必要

551:デフォルトの名無しさん
09/02/14 19:05:21
DirectXは△ポリゴンしかサポートしてないと聞いたのですが
□ポリゴンが混ざっているXファイルが読み込めました

調べたのですがサポートしていないとは不具合があっても対処しませんということでいいのですか?

552:デフォルトの名無しさん
09/02/14 19:09:30
それモデラーがXファイル出力するときに3角形にしてるだけだろ

553:デフォルトの名無しさん
09/02/14 20:13:46
てかほっとくと普通に5角形とか6角形とかまざってね?>Xファイル
モデラーで三角形分割しないと駄目だろ

554:デフォルトの名無しさん
09/02/14 20:14:56
D3DX使うと読むときに全部三角分割してるよ

555:デフォルトの名無しさん
09/02/14 20:26:38
>>554
どんな感じで?w(←絶対にデザイナに責任取らせたほうがいいと思うw)

556:デフォルトの名無しさん
09/02/14 20:29:00
自動で三角形分割やらせて
ウンコみたいなUVの設定とか変な分割のされ方したぐらいで
プログラマに怒りをぶつけるようなデザイナの尻には浣腸しかない

557:デフォルトの名無しさん
09/02/14 20:31:46
どんな感じも何も四角形を三角形二つに分解したって、
表示結果は全く変わらないんだが、
責任とか訳のわからないことを言い出す>>555って、
どれだけ頭が悪いんだろう?

558:デフォルトの名無しさん
09/02/14 20:33:22
三角形->四角形 非可逆
四角形->三角形 可逆

559:デフォルトの名無しさん
09/02/14 20:39:38
>>558
すごいな
どの三角形とどの三角形で四角形を形成してたのかわかるのか?
面積0とかはないとしても難しいな

560:デフォルトの名無しさん
09/02/14 20:45:27
よく読め

561:デフォルトの名無しさん
09/02/14 20:45:56
ランドスケープ(格子状モデル)みたいなのイメージしてみたけど結構難しいな
同一平面で辺がくっついてたらとか考えたけどサルの浅知恵だった

562:デフォルトの名無しさん
09/02/14 20:47:17
UVぶっちぎれね?

563:デフォルトの名無しさん
09/02/14 20:49:33
>>560
死んでくる

564:デフォルトの名無しさん
09/02/14 21:09:18
>>557
四角は平面だとでも、思ってんのか?お前

ただ556の浣腸は正しい

565:デフォルトの名無しさん
09/02/14 21:20:49
>>564
出力されたデータを検証したことがないだろ。
平面じゃなければ、すでにエクスポート段階でデータが欠損していることになるが、
そんな間抜けな実装をしているエクスポータを挙げてみろよ。


566:デフォルトの名無しさん
09/02/14 21:27:41
平面じゃない場合は四角形ではない。
四角形なら必ず平面。

567:デフォルトの名無しさん
09/02/14 23:08:44
危険生物を萌え絵で擬人化した『萌え萌え有毒生物図鑑』が発売に

 『有毒生物の世界を、萌えながら学ぶビジュアル図鑑』という
萌え萌え有毒生物図鑑が12日に発売になり、
とら1号店・メロン秋葉原店で見かけた。表紙イラストは中村博文氏。
イーグルパブリッシングの2月新刊案内 では『有毒生物達を擬人化イラストと共に大紹介』などとし、
とら1号店のPOPは『ヒトデがロリっぽくて・・・ハァハァ』とかだった。

表紙:URLリンク(node3.img3.akibablog.net)

オニヒトデ:URLリンク(node3.img3.akibablog.net)
アカエイ:URLリンク(node3.img3.akibablog.net)
キングコブラ:URLリンク(node3.img3.akibablog.net)
マムシ:URLリンク(node3.img3.akibablog.net)
蚊:URLリンク(node3.img3.akibablog.net)
ブラリナトガリネズミ:URLリンク(node3.img3.akibablog.net)
デスストーカー:URLリンク(node3.img3.akibablog.net)
ピトフーイ:URLリンク(node3.img3.akibablog.net)
オオスズメバチ:URLリンク(node3.img3.akibablog.net)
ドクツルタケ:URLリンク(node3.img3.akibablog.net)

568:デフォルトの名無しさん
09/02/14 23:12:54
蚊以外いらん

569:デフォルトの名無しさん
09/02/14 23:20:08
キングコブラと蚊はいいセンスしてんなw

570:デフォルトの名無しさん
09/02/14 23:27:01
蚊のやつ、上半身と下半身が分離してるように見えてならない

571:デフォルトの名無しさん
09/02/14 23:28:51
こんなの人間の女の子に猫耳つけて猫ですってレベルと変わらないじゃん

572:デフォルトの名無しさん
09/02/14 23:46:06
マムシハァハァ

…ふぅ

573:デフォルトの名無しさん
09/02/15 00:02:21
俺もマムシ一択だな

574:デフォルトの名無しさん
09/02/15 00:08:37
DirectX関係ないぞ

575:デフォルトの名無しさん
09/02/15 00:15:35
そのコピペそこらじゅうに張ってあるぞ
そのあとのトークとセットで

576:デフォルトの名無しさん
09/02/15 00:17:01
>>567->>571
までコピペワロタ

577:デフォルトの名無しさん
09/02/15 10:09:05
>>565
お前様はfbxいじった事はあるの?
てか、もし師範様なら、割られた三角で取得する方法教えて下さい・・・

578:デフォルトの名無しさん
09/02/15 10:17:41
>>577
FBXなら普通にメッシュのクラスにTriangle化するメソッドあるだろ・・・

579:デフォルトの名無しさん
09/02/15 13:28:20
DirectX9でMFCのViewに表示させる場合、CreateDeviceのhWndはViewのm_hWndじゃだめなんでしょうか?
コンパイルできるんですが、そのあとの描画でデバイスのClearで止まるんです

580:デフォルトの名無しさん
09/02/15 13:42:39
ClearでとまるならZバッファないのにZクリアーしてるとか
ステンシルないのにステンシルクリアーしてるとかだろ。

581:デフォルトの名無しさん
09/02/15 14:21:13
HRESULTいくつよ?

582:デフォルトの名無しさん
09/02/15 14:34:22
戻り値までいきません。ハンドルされていない例外でストップするんです。

class CView : public CView{
CXView::CXView()
{
  pDirectX9 = new CDirectX9();
  pDirectX9->InitD3D(this->m_hWnd);
}
void CView::OnDraw(CDC* /*pDC*/)
{
  CXDoc* pDoc = GetDocument();
  ASSERT_VALID(pDoc);
  if (!pDoc)
   return;

  g_pD3DDev->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
}
}


583:デフォルトの名無しさん
09/02/15 14:40:07
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pD3DDev ) ) ) {
return E_FAIL;
}

これが失敗してます。
CViewのハンドルはm_hWndで問題ないですか?

584:デフォルトの名無しさん
09/02/15 14:49:14
これってソースそのままコピペ?
class CView : public CViewでいいのか?

585:デフォルトの名無しさん
09/02/15 14:50:52
class CXView : public CViewでしたすいません

586:デフォルトの名無しさん
09/02/15 14:57:30
g_pD3DDevがNULLってこたぁないよな

587:デフォルトの名無しさん
09/02/15 14:58:31
デバイスの生成でミスってんならそこでちゃんとエラーだせよ・・・。
パラメーターがどっかしらおかしいんか、ウィンドウハンドルがNULLじゃなきゃ失敗しねえ。

588:デフォルトの名無しさん
09/02/15 15:06:44
CreateDeviceの戻り値は-2005530516です。
最新版のSDKでdxerr9.libからMAX_ERROR_TEXT_LENってなくなってないですよね?
これdefinいくつかわかりませんか?エラー関数コンパイルできなくなってエラーコード調べられなくなりました

589:デフォルトの名無しさん
09/02/15 15:14:44
失敗してんじゃん
d3dppがおかしんじゃね

590:デフォルトの名無しさん
09/02/15 15:26:01
D3DERR_INVALIDCALLでしょ。
d3dppの内容は?

591:デフォルトの名無しさん
09/02/15 15:28:35
thx
これです

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = d3ddm.Format;

592:デフォルトの名無しさん
09/02/15 15:29:57
とりあえず
CViewのコンストラクタ内ではまだm_hWndはNULLであることをお伝えしておく

593:デフォルトの名無しさん
09/02/15 15:32:31
そこ手打ちみたいで怪しいから無視してたわ・・・

594:デフォルトの名無しさん
09/02/15 15:34:02
つーかDirectXをまずデバッグモードにしろや。
それでコンソールにエラー内容全部表示されるようになるだろ。

595:デフォルトの名無しさん
09/02/15 15:38:20
うおーできた!!!
ありがとう。
まじありがとう!!!

596:デフォルトの名無しさん
09/02/15 16:04:27
>>595
解決したらどんなエラーだったかを示すのがスジ。

597:デフォルトの名無しさん
09/02/15 16:07:55
まあOnCreateあたりでCreateDeviceしたんだろうけど。

598:デフォルトの名無しさん
09/02/15 16:25:44
CViewのコンストラクタ内でハンドルを渡したら中身がNULLだったので
InitUpdateの中でやったら解決しました。

599:デフォルトの名無しさん
09/02/15 20:08:59
DXTRACE_ERR()をやたら使ってるソースがあるんですが、これって意味あるんでしょうか?
なんにも有効そうなログとかだしてくれないんですが、、、

600:デフォルトの名無しさん
09/02/15 21:06:28
それこそ使い方による

601:デフォルトの名無しさん
09/02/15 22:25:28
Xファイルのアニメーションを切り替えるサンプルコードどっかにない?
SDKのは長すぎて解読不能だたよ

602:デフォルトの名無しさん
09/02/15 22:26:55
まるぺけ

603:デフォルトの名無しさん
09/02/15 22:51:23
まるぺけは自作関数使ってるじゃん
わかりづらいよ

604:デフォルトの名無しさん
09/02/15 22:58:31
まるぺけって結構有名なんだな。
参考にしたのオレだけかと思ってたよ。


605:デフォルトの名無しさん
09/02/15 23:08:31
分かりやすいサンプル=SDK付属のサンプルだと思うんだ

606:デフォルトの名無しさん
09/02/15 23:42:46
それはお前だけ(笑)

607:デフォルトの名無しさん
09/02/15 23:46:29
Xファイルの読み込みってめたくそむずかしくないですか?
VBだと読み込みと描画で2行でかけるのに・・・やばくないですか?Cとかいって
自分が見てる解説サイトがわかりずらいだけなのかな

608:デフォルトの名無しさん
09/02/15 23:58:08
VS2008なんですが、プロジェクト新規作成にDirectXウィザードが無いんですが
どうすればいいと思いますか?

609:デフォルトの名無しさん
09/02/16 00:23:16
あきらめればいいと思います

610:デフォルトの名無しさん
09/02/16 02:40:41
エンプティープロジェクト
シンプルサンプル

611:デフォルトの名無しさん
09/02/16 05:27:05
D3DCAPS9の中身を埋めてくれる関数は何ですか?

612:デフォルトの名無しさん
09/02/16 05:34:21
GetDeviceCapsがありました

613:デフォルトの名無しさん
09/02/16 15:40:06
質問です
レンダリングターゲットとして生成したテクスチャーは、マルチサンプリングが無効になってしまうようなのですが
これは「2倍の大きさで描画して、表示する際に50%縮小すればアンチエイリアシングかかるじゃん」というやり方をしろということなのでしょうか?

それとも何かしら設定があるんでしょうか?

614:デフォルトの名無しさん
09/02/16 18:14:42
質問です

1.レンダリングターゲットのサーフェイスを変えて描画
2.深度バッファはそのままでレンダリングターゲットを元に戻しす
3.深度値の書き込みOFFで画面サイズのスプライトにさっき描画した内容をテクスチャとして描画
4.深度値の書き込みONにして適当にオブジェクトを描画

このときに、サーフェイスのサイズが正方形だとうまくいくんですが
640x480とか、横に長かったりするとスプライトに描画したときにピクセルが微妙にずれてしまいます。
たぶんサンプリングの問題だと思うんですが、
最後のオブジェクトを描画するときに最初の深度バッファをそのまま使いたいので
ずれてしまうと、何もないのに隠れてたり、その逆が起きたりしてしまいます。
ピクセルがずれるのは1ピクセル程度ですが。
どうすればいいのでしょうか?

615:デフォルトの名無しさん
09/02/16 18:44:13
DirectXにスプライトなど無い。

616:デフォルトの名無しさん
09/02/16 23:18:06
DirectSoundを使って音楽を再生しようとしているのですが
wav形式は再生できたのにmid形式をデバッグなしで再生しようとすると失敗します。
(デバッグありなら再生可能で、デバッグしてなくてもたまに鳴り出す)
これはいったい何が原因なんでしょうか。

617:デフォルトの名無しさん
09/02/16 23:21:46
デバッグありだと再生できる方が超常現象だろう

618:616
09/02/16 23:53:52
訂正
DirectSoundじゃなくてDirectMusicでした。

619:デフォルトの名無しさん
09/02/17 01:47:47
初期化で
hr = D3DXCreateTextureFromFile( m_pD3DDev, _T("earth.bmp"), &m_pTexture );
の後、
m_pD3DDev->SetTexture(0, m_pTexture);
を描画start,endの間に追加したんですが
四角形の色が変わるだけで絵が表示されません、どこが原因なんでしょうか

620:デフォルトの名無しさん
09/02/17 02:16:28
uvがちゃんと設定されてないんじゃ?

621:デフォルトの名無しさん
09/02/17 02:45:58
どこかおかしいところありますか?

typedef struct {
  float x, y, z, rhw; //スクリーン座標での位置
  DWORD color; //頂点色
  float tu, tv;
} CUSTOMVERTEX;

CUSTOMVERTEX vertices[] = {
  // x y z rhw color (赤 緑 青 α)
  {50.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0xff, 0xff, 0xff, 0xff), 0, 0},
 {250.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0x00, 0x00, 0x00, 0xff), 1, 0},
  {50.0f, 250.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0xff, 0xff, 0xff, 0xff), 0, 1},
  {250.0f, 250.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0x00, 0x00, 0x00, 0xff), 1, 1}
};

622:デフォルトの名無しさん
09/02/17 03:30:26
SetFVF で D3DFVF_TEX1 入れ忘れてるんだろう

623:デフォルトの名無しさん
09/02/17 03:41:27
m_pD3DDev->SetFVF(D3DFVF_CUSTOMVERTEX);

これですか?
コメントアウトしてもだめでした

624:デフォルトの名無しさん
09/02/17 03:43:29
D3DFVF_XYZ
だけにしたんですがそれでもだめでした

625:デフォルトの名無しさん
09/02/17 03:47:59
わかりました
D3DFVF_XYZ

D3DFVF_XYZRHW
にしたら表示されました
ありがとうです!


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch