DirectX総合スレat GAMEDEV
DirectX総合スレ - 暇つぶし2ch275:名前は開発中のものです。
04/07/19 13:06 48ZX7Scm
思いっきり勘違いしてた
修正したらうまく行ったみたい
因みにこんな感じにしてみますた
BOOL CALLBACK GetJoystickCallback(LPDIDEVICEINSTANCE lpddi,LPVOID *pvRef)
{

HRESULT hResult;
if(pDIdev1 == NULL){
hResult = pDI->CreateDeviceEx(lpddi->guidInstance, IID_IDirectInputDevice7,(void**)&pDIdev1, NULL);
if(hResult == DI_OK)returnDIENUM_CONTINUE;
elsereturnDIENUM_STOP;
}

if(pDIdev2 == NULL){
hResult = pDI->CreateDeviceEx(lpddi->guidInstance, IID_IDirectInputDevice7,(void**)&pDIdev2, NULL);
if(hResult != DI_OK)pDIdev2=NULL;
}
returnDIENUM_STOP;
}
なんか恥ずかしいコードだな・・・


>>271-272
サンクスコ

276:名前は開発中のものです。
04/07/19 13:27 54Q4/4D7
>>275
強引だな・・・・・。

277:名前は開発中のものです。
04/07/19 21:53 FkElpxEK
確かにしようもないことで荒れるけど、業務系板と比べると『しようもない』のレベルの次元が違う。


278:名前は開発中のものです。
04/07/19 21:53 FkElpxEK
確かにしようもないことで荒れるけど、業務系板と比べると『しようもない』のレベルの次元が違う。


279:名前は開発中のものです。
04/07/20 02:12 TWCqFqg5
レベルの次元

280:exciteは神
04/07/21 00:33 NW4Ruyd1
それは破滅しますが、ので、そこに、さらにある、
オペレーティング・システム・ボードと比較して、
それを確かにする方法、レベルの次元、の
「そこに、さらにある、実行する方法」異なります。

281:名前は開発中のものです。
04/07/22 22:56 5rJvB900
Forceware60シリーズリリース。
GeForce6800にDirectX9.0c(WindowsXPSP2RC2)と
Shader3.0環境は整った。

282:名前は開発中のものです。
04/07/24 19:31 P1GEgvZG
ぬるぽ

283:名前は開発中のものです。
04/07/24 19:55 PR5W0fUe
ポルンガ

284:名前は開発中のものです。
04/07/24 19:56 NIvgFQBW
アハーン

285:名前は開発中のものです。
04/07/24 23:31 fQM+YmNW
恐らく、それらはTAKOのビットを装備しており、それを焼き、沸騰させて、それが大阪と呼ばれる時、ゆで団子になるでしょう!


286:名前は開発中のものです。
04/07/25 09:28 aCl1Aoq6
今制限の多いエフェクトやHLSLでしこしこライブラリ作ってるけど
近い将来その制限も緩和されてゴミとかすんだろうな
なんだかむなし

287:名前は開発中のものです。
04/07/25 09:44 mxjAoDQK
ここはひどい日本語でつね


288:ヘルジャック
04/07/25 10:21 ovE6k6xQ
URLリンク(combatant.hp.infoseek.co.jp)

漏れが作ったんだけど ちょっとこれを改良して

289:名前は開発中のものです。
04/07/25 10:35 rIHwuKxk
>>288
ヘルジャックさ、
現在のフレームのキャラクタの位置を決定してから
マップの表示範囲を決めるようにしないか?

つまりマップの描画にはキャラクタの座標が必要になるわけだが。

290:名前は開発中のものです。
04/07/25 10:36 XPpA5MG/
誘導されてきたのですが 質問いいですか?

ビルドしてVCから実行するとHALで起動して普通に実行できるのですが、EXEファイルを
直接実行するとREFになっていますみたいなメッセージがでてその後
Geniric application error.Enable debug output for detailed information.
とメッセージがでて強制終了します。強制終了する前にプロパティをみると REFになっています。
直接起動するとなぜREFで起動するのかとメッセージの意味がよくわからないのですが教えてもらえませんか。

使用ソフトはVisual Studio AcademicでビデオカードはGeforceFX5200です。


291:ヘルジャック
04/07/25 10:38 ovE6k6xQ
主人公が画面の真ん中にくるような処理ね

あと obj.cppがスプライトやってるんだけど
y座標でソートしてからキャラを描写したいんだけど
リスト構造のソートのやり方がよくわからないから 教えて

292:名前は開発中のものです。
04/07/25 10:40 ovE6k6xQ
>>288
操作は
Alt+Enterがフルスクリーン
1キーがキャラを生成
Deleteで削除

293:名前は開発中のものです。
04/07/25 10:46 rIHwuKxk
>>290
それだけじゃわかんねぇよw

>>291
そのまえに2DなのにY座標でソートして描画すんの?

294:ヘルジャック
04/07/25 10:50 ovE6k6xQ
キャラが重なったとき
下にいるキャラの頭でそのキャラの上のキャラの足が隠れるようにしたいんだ

なんか今のはオブジェの生成した順番になってるから描写すると変な重なりに見える

295:名前は開発中のものです。
04/07/25 11:10 rIHwuKxk
>>294
ああ、そうか、とりあえずゲームの世界は構築してあるな。
Y座標が画面からみて奥行きになるわけね。

リストのソートがわからないのも問題だけど
この場合はこのリストはソートしない方がいいな。
だってこれ、スプライトのリストじゃん。Y座標のソートと関係ないよ。

必要なのは描画するときだけで、フレームごとに変わるんだから、
こういうときは、一時的に関数内でポインタの配列を作って、リストの要素のポインタ一つ一つを
用意した配列にとっちゃってそれをソートするんだ。
これで配列のソートと同じだ。

言ってること理解できるかな?
ポインタをとってポインタをソートするんだ。

296:295
04/07/25 11:18 rIHwuKxk
おっと間違え。
スプライトのリストじゃなくてオブジェクトのリストか。
まあ、それでもソートはしちゃ駄目だね。

て、いうかリストの順番に意味をもたせるのはあんまりよくないんだな。

297:名前は開発中のものです。
04/07/25 11:19 ovE6k6xQ
>>295
㌧クス
ポインタの配列を作ってそれを描写か

URLリンク(combatant.hp.infoseek.co.jp)
とりあえずBGMを付けてみた

なんだか難しそうだがやってみまつ

298:名前は開発中のものです。
04/07/25 11:29 rIHwuKxk
>>297
>なんだか難しそうだがやってみまつ
楽勝でしょ?
でも、自分で考えようとするとハマルかもw
そういうときは手順をしっかり書いて見る

1.十分な数のポインタ配列を用意。(もしくは可変配列)
2.オブジェクトリストのポインタを全部ポインタ配列にとる。
3.Y座標でソートする。
  (一番楽なソートをアルゴリズムの本をみるなり、どっかのサイトからパクッてこい。)
  (この手のものいちいち自分で作ってると日が暮れるぞw)
4.できた配列を元にして描画する。

で、終わりだ。

299:名前は開発中のものです。
04/07/25 11:33 aCl1Aoq6
>>290
そういうのは、やはり実はエラってるってケースが多い。
DXをデバッグバージョンにしてログをみるといい。


300:名前は開発中のものです。
04/07/25 11:45 rIHwuKxk
>>290,297
#include <crtdbg.h>

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF);

じゃあ、おまいら、とりあえずメモリリーク支援なw
上のヘッダをインクルードして、関数をWinMain関数がはじまってすぐのところにそのままおけ。
デバッグモードで実行してみればアウトプットウィンドウになんか出るからみてみろ。
特にヘルジャック、メモリリーク出してるぞ。

ダブルクリックで飛べないから、結構みつかりにくいな。
ひとつひとつ要素を削ってってメモリリークの有無を確認して場所を特定していくしかないな。
頑張れ。

301:名前は開発中のものです。
04/07/25 13:04 ovE6k6xQ
>>300
すぐにどこがメモリリークしているかわかったぜ

Mapで確保したメモリをfreeしていないのと
Script クラスも解放していなかったからだ

でもねタスク処理でアプリの終了時に全タスクkillはメンド

302:名前は開発中のものです。
04/07/25 13:08 z6Ypme9P
>288
DirectXとは関係ないけど、個人的志向として言いたい。
タスクの関数ポインタをvoid *で持つ意味ないだろ。 > void (*proc)(struct task_tag *);
何でもありのCスタイルとはいえ、無意味な型安全性の損失は如何なものか。
と書いたところで、君が m.minami とやらではなさそうだな。


>300
「プログラムの終了時にはどうせOSが解放するからfreeしない」
というタイプの人なんじゃないの?

303:ヘルジャック
04/07/25 13:12 ovE6k6xQ
WM_DESTROYでTaskAllKillがコールされるようにしたら
リークはでなくなったようだけど
アプリを閉じるとブレークポイントがどうのって画面がでて一時停止するようになっちゃった

それと ポインタの配列にコピーしてそれを描写にはしたけど
バブルソートがいまいちうまくいかない


304:名前は開発中のものです。
04/07/25 13:43 vVa7R8jb
お前たち、ここは DirectXスレですよ!
最近の流れの話題は、べつの適切なスレでやって欲しい

305:名前は開発中のものです。
04/07/25 13:46 cf02RjbN
まぁいいじゃね、話題も無かったし
たまにはこういうレベルの話も、ほのぼのして良い

306:名前は開発中のものです。
04/07/25 14:02 AJso40ZZ
夏休みの間くらいガンマンしてやれ。バキューン

307:名前は開発中のものです。
04/07/25 15:59 rIHwuKxk
>>303
>バブルソートがいまいちうまくいかない
だからその辺のソースパクッてこいっていっただろう。
こんなの自分で組んじゃうような効率の悪さじゃ仕事進まんよ。

たかがバブルソートでも、1から組んでたら、
動作確認してバグや抜け探すだけで、俺だって30分近くかかっちゃうよ。

バブルソートは完璧に動くのが前提ってところから開発していかなきゃ。
いつまでたってもゲームなんか完成しないよ。
URLリンク(www.google.co.jp)

308:ヘルジャック
04/07/25 16:19 ovE6k6xQ
こんな感じに実装したんだけど
なんか実行してみると重なりはおかしいまま


OBJ **obj_sort(int prio)
{
OBJ *ObjList[OBJ_MAX];// オブジェワーク

OBJ *o = ObjTop;
OBJ **OA = ObjList;

//オブジェのリストを取る
while (o != NULL) {
*OA=o;
OA++;
// リストを進めます
o = o->next;
}

//ソート部分

return BubbleSort(ObjList);
}


309:ヘルジャック
04/07/25 16:19 ovE6k6xQ

OBJ **BubbleSort(OBJ **o)
{
OBJ *temp;

// ソーティング(Y座標にてソート)
for (int i = 0; i < ObjCnt - 1; i++) {
int sort = 0;

for (int j = 0; j < ObjCnt - i - 1; j++) {
if (o[j]->obj_y > o[j + 1]->obj_y) {
temp = o[j];
o[j] = o[j + 1];
o[j + 1] = temp;
sort++;
}
}

if (sort == 0) break;
}

return o;
}


310:ヘルジャック
04/07/25 16:20 ovE6k6xQ
void obj_draw(TASK *t)

int x0 = map_x >> 8; // マップのどの位置を表示するか決める
int y0 = map_y >> 8;
int x1 =((map_x & 0xff) >> 3) & 31; // スクロールのあまり
int y1 =((map_y & 0xff) >> 3) & 31;

int x,y;
int s=0;
// オブジェ描写
OBJ *o = ObjTop;
OBJ **a;


a=obj_sort(0);

while (o != NULL) {
o=a[s];
s++;

if (o->stat==NOW_USE)
{
x=*o->obj_x+o->dx-(32*x0)-x1;y=*o->obj_y+o->dy-(32*y0)-y1;
if(x<640&&y<480&&y+o->h>0&&x+o->w>0)//見えない部分まで描写しない
DD_DrawBitmap(x,y, Bitmap[o->tex_no],o->xx,o->yy,(o->xx+o->w),(o->yy+o->h),o->Trans);
}
// リストを進めます
//o = o->next;
if(s>=ObjCnt)o=NULL;
}
}

311:名前は開発中のものです。
04/07/25 16:36 cH8/Nm1o
>OBJ *ObjList[OBJ_MAX];// オブジェワーク

obj_sort関数は最終的にこの配列へのポインタを返してるようだが、
この配列はスタック上に取られてるからobj_sort関数から帰ったときにはもう無いぞ。

とりあえず↓にしてみなさい
static OBJ *ObjList[OBJ_MAX];

312:ヘルジャック
04/07/25 16:44 ovE6k6xQ
かーっ
なんでうごかないのか!
とりあえずソートの昇順 降順 を入れ替えて見たら

OBJ **BubbleSort(OBJ **o)の

if (o[j]->obj_y > o[j + 1]->obj_y) {

if (o[j]->obj_y < o[j + 1]->obj_y) {

主人公が手前に表示されるようになっているからポインタの内容は失われていないみたい

OBJ **BubbleSort(OBJ **o)
がおかしいのか


313:ヘルジャック
04/07/25 16:47 ovE6k6xQ
URLリンク(combatant.hp.infoseek.co.jp)
のobj.cppにバブルソートを実装してくださるとうれしい

314:ヘルジャック
04/07/25 17:14 ovE6k6xQ
if (o[j]->obj_y > o[j + 1]->obj_y) {

原因が分かりました
えーと

if (*o[j]->obj_y > *o[j + 1]->obj_y) {

にすると改善

つまり今までは *がなかったために obj_yのポインタのアドレスでソートしていたのでした.


315:名前は開発中のものです。
04/07/25 18:18 ovE6k6xQ
URLリンク(combatant.hp.infoseek.co.jp)


316:名前は開発中のものです。
04/07/25 22:01 rIHwuKxk
>>315
おおー。できてんじゃん。
一日で大した進歩だと思うよ。いやマジで。

317:ヘルジャック
04/07/25 23:07 ovE6k6xQ
>>316
てへ (*^_^*)

どうも リスト構造の並び替えはしない とかとても勉強になりました.

318:名前は開発中のものです。
04/07/26 23:06 V6gmIHxA
ボスケテー

ウィンドウモードで
D3DPRESENT_PARAMETERSの
PresentationInterval=D3DPRESENT_INTERVAL_DEFAULT
としたら、
ディスプレイは60Hzで動いてるのにFPS45しかでないよーヽ(;´Д`)ノ カクカク ナンデダロ
D3DPRESENT_INTERVAL_IMMEDIATE にするとFPS300くらいでヌルヌルポ動くのに

319:名前は開発中のものです。
04/07/26 23:24 6Ccm5Gt6
>>318
他のアプリ、例えばDirectXのサンプルでも同じ動作をするのか?
また、手持ちの他のグラボは試してみたか?
また、ドライバは更新してみたか?

と、色々いじってみなきゃわからねーよ。マジで。

320:名前は開発中のものです。
04/07/26 23:44 CLA4c8LP
描画が間に合わないフレームあんじゃなの?

321:名前は開発中のものです。
04/07/26 23:44 V6gmIHxA
>>319
他のアプリやらサンプルでもそうなんです。
グラボ1コしかナッシングなんです。ていうかノーパソ。
ドライバ一番新しいんです・・・・

どこから切り込めばよいのやら_| ̄|○ 鬱だ

322:名前は開発中のものです。
04/07/26 23:46 V6gmIHxA
>>320
いえ、同期なしだと300とか出るんですよ
ていうか何も描画しないでPresentだけしてもFPS45とか_| ̄|○ イッタイナンナンダ

323:名前は開発中のものです。
04/07/26 23:48 CLA4c8LP
なんだ、液晶モニターってフレーム間引いて表示してるのあるべ?

324:名前は開発中のものです。
04/07/26 23:56 V6gmIHxA
表示の問題なのけ?
1秒間にループ回った回数を表示させても45なのでしが

いや流石の俺でも目視でFPS45とか測れないべ

325:名前は開発中のものです。
04/07/26 23:57 6Ccm5Gt6
>>321
それじゃ、心配ナッシングw
もう、どうすることもできないんだからw
同期無しにして、タイマーでテキトーに画面更新しとけば?w
ノーパソ買った自分を恨めw

ところで、ノーパンとノーパソって似てねぇ?

326:名前は開発中のものです。
04/07/27 00:10 o1CoEu/t
>>302
void * 意外にどうやって関数ポインタを持つ

327:321
04/07/27 00:26 XAPogr5S
(゚∀゚)フッキレタ!

328:名前は開発中のものです。
04/07/27 01:00 JfK87rJL
>326
>302にも書いてあるけど
void (*proc)(struct task_tag *);
で、procが
struct task_tag *を引数に取り返値がvoidの関数へのポインタ変数になる

329:321
04/07/27 16:25 XAPogr5S
_| ̄|○ 一晩寝かせたらコードいじってないのにFPS60出てるし
なんの不具合なのやら

330:名前は開発中のものです。
04/07/27 17:06 o1CoEu/t
再起動でOS側の方が良い状態になったんじゃないかい
とくに突飛な変更はしてないようだし


331:名前は開発中のものです。
04/07/27 17:20 QCF/mVVU
昨日はバックでなんか重たいものが動いてたとか

332:名前は開発中のものです。
04/07/27 17:21 gvOtoHrm
9.0c出たけど、もう既出か?

333:名前は開発中のものです。
04/07/28 01:22 cdE8Yajg
>>321
ここの奴と全く同じ症状だと思われ。
URLリンク(bbx.hp.infoseek.co.jp)
ここでは自己解決したようだが、一部に厨房回答者が存在するので
気をつけて読めよ。

MDXだがネイティブでも共通の症状だと言ってるから、やってみれば?



334:321
04/07/28 01:52 L+MbB46M
漏れは今涙が出そうです。
まさかウィンドウモードだと
同期タイミングにシステムタイマが影響するなんて
思いもしませんでした。
そしてそのことを知るきっかけをくれた>>333には
感謝してもしきれない程です。
タイマ分解能を1㍉秒にしてあげたら
FPSは60でヌルヌルポと動いてくれやがりました。
ありがとう>>333
ありがとう>>333

ヽ ( ゚ ∀ ゚ ) ノ      バ  ン  ザ  ー  イ

335:名前は開発中のものです。
04/07/28 03:45 0QK3+/yt
DirectXの新しいの出たな。

>>333
そのスレ見てないけど、厨房回答者なら2chの方が多いから平気じゃねぇか?

336:名前は開発中のものです。
04/07/28 12:43 XhHnaZC6
えー変更点を列記すると、
複数のメッシュインスタンスで単一のジオメトリデータを使い回ししたいときに
有用な機能を提供。Shader3.0要らしいので我輩はスルー。
エフェクトでステートブロックをサポート。イラネ。
PRT用のD3DXオブジェクト追加。イラネ。
XFileローダーIDirectXFileに代わる新しいID3DXFileが追加。ホトンドオナジ。

こんなところかなぁ、夏2003と殆ど代わっていないので
入れ替えても問題なしだな。

337:名前は開発中のものです。
04/07/28 15:10 ea6AWAyR
summer2004に入れ替えてコンパイルしたら、リンク通らなくなった!
ウワァァン!!

338:名前は開発中のものです。
04/07/28 16:51 XhHnaZC6
>>337

俺はVisualStadio2003だが、
インストーラが勝手にパス変更までしてくれて
無問題に通ったよ。
一箇所エフェクト関係でソース直しただけで。

339:名前は開発中のものです。
04/07/28 16:53 XhHnaZC6
ああ、そういえば、VisualStadio6.0用のライブラリが
extrasにあったような。そのせいか?

340:名前は開発中のものです。
04/07/28 16:58 XhHnaZC6
今回のSDKにはDirect3D用のコモンコントロールがついてるのな。
なんだか次世代って感じ。


341:名前は開発中のものです。
04/07/28 17:12 w9EXFP9+
「Stadio」2回じゃもう言い訳できんな

>>340
まじでぇぇぇぇ!!
みてくるか

342:名前は開発中のものです。
04/07/28 17:19 ea6AWAyR
…イタリア版だったりしてな。
俺はVisual Studio 6.0なんで、extras入れていじってみるよ。

343:名前は開発中のものです。
04/07/28 20:12 SciYQnDX
>>339
トンクス
ちょうどリンク通らなくていらいらしてたとこなんだ。
extraは気づかなかった

344:337
04/07/28 20:22 ea6AWAyR
d3dx9.dllを入れ替えたらコンパイルできたーよ。
でも、シェーダ使って、テクスチャ複数重ね、環境マップやってるところが
無茶苦茶か真っ白になってる…
うーん、俺のプログラムが行儀悪いからなのか…
何か設定の仕方が変わったのか…

345:337
04/07/28 20:24 ea6AWAyR
dll じゃなくて libだ…
デバッグ用のd3dx9dt.libはextraに入ってないんだね。

346:名前は開発中のものです。
04/07/28 20:36 SciYQnDX
いよいよ持って2003買え、ということか…
どこからその金捻出しよう

347:名前は開発中のものです。
04/07/28 20:58 XhHnaZC6
>>346
毎度おなじみMSの無言の圧力

348:名前は開発中のものです。
04/07/28 21:05 NEcinFei
2005から無料にしてくれるに違いない。今からゲイツ様に土下座しとく。_| ̄|○

349:名前は開発中のものです。
04/07/28 21:49 w9EXFP9+
ちょっと待って、それじゃVS6(VC6)じゃ、
今回のアップデートはしちゃ、まずいって事?

貧弱なノートの回線で、ようやくDLしたのにそりゃないぜ…

しかし、いくらなんでもそんな分けないと思うがなぁ
自分で試したいけど、DirectXってOS入れ直さない限り
バージョンダウン出来ないのがジレンマ

350:名前は開発中のものです。
04/07/28 21:58 ea6AWAyR
>>349
今回は、前のバージョンと共存できるみたいだよ。断言はできないが。
デフォルトのインストール先はprogram filesの下だし
VCのディレクトリ探索の優先順序をちょいと変えるだけで、
前バージョン(2003summer)の実行ファイルもできた。

351:名前は開発中のものです。
04/07/28 22:42 SciYQnDX
(旧バージョンも残ってるんで)ちょっと悩んだんだけど、
Xファイル読み込み部分を新APIを使ったものに書き換えてみたんだが…

アニメーション付きXFileを全部読み終わって最後のID3DXFileDataオブジェクトを
Releaseするとライブラリの中でAccess Violation。
LWのXファイルエキスポータで吐き出した奴なんで、今バージョンのXファイルパーザには
都合の悪い記述があるのかもしれないけど…原因突き止めるのめんどい

352:351
04/07/29 00:15 Y8Uc6wdA
やっつけで移行したから、Release忘れをやらかしているとこがあったのが原因ぽい。
…単にメモリリークするんでなく、アクセス例外出すのは、むしろ親切、かなぁ

353:名前は開発中のものです。
04/07/29 08:43 qkYnqUbu
>>351
人柱乙。
俺のXFileパーサーは
約6000行もあるので(無駄な部分が多いだけ)
移行には躊躇してしまう。

354:名前は開発中のものです。
04/07/29 15:47 TPfQskJx
質問なんですが、これからDirectX9を学ぶなら
ビデオカードもDirectX9対応のものを買った方が
良いでしょうか?

買う場合はゲームとかは特にしないので
G-FX5200辺りのカードを考えたりします。
どうか、アドバイスをお願いします。

355:名前は開発中のものです。
04/07/29 16:22 iXanYUqF
お金が充分にあるならそうすべき。
お金がないなら、今のボードを我慢して使うべきだぜ~!
まだ高えし

356:354
04/07/29 17:38 TPfQskJx
アドバイスありがとうございます。

当分は今のボード(GF2-MX400)を使って
その間に、お金の方も貯めておこうと思います。

357:名前は開発中のものです。
04/07/29 20:45 TtwyqZ7F
2004Summerって、2003Summerにあった新規プロジェクトウィザード無くなってる?
EmptyProjectが追加されるって噂だったけど見あたらないし。

>340
なにそれ、詳細きぼん

358:名前は開発中のものです。
04/07/29 21:23 Yl8iQYNA
EmptyProjectが見当たらないって、サンプルブラウザからインストール
出来ますがな。

サンプルがインストール形式になったのは、ちょっと便利かも。

359:名前は開発中のものです。
04/07/29 21:46 TtwyqZ7F
>>358
EmptyProjectってサンプルにいたのか_| ̄|○thx

Emptyっていう割にはいろいろ入ってる気がしますが
始めたばっかの俺には何やってるかさっぱりだ(´・ω・`)

360:苦学生七誌
04/07/29 21:58 wUWj3vkA
>>354
そんなモン持ってて買い替えを考えるなんて金持ちだなぁ

361:名前は開発中のものです。
04/07/29 22:24 BuKOqKsi
VC++.NET2003使用で、DirectX9.0c summer2004 をインストールしたけど、fxの変更点(Pass() -> BeginPass() )以外何も問題なかったよ。わざわざユーザーの迷惑を顧みず関数名を変えているのは謎だが。
というか、何が変わったの?シェーダー3.0サポートだけ?若干D3DXライブラリ関数が増えているような気がするけど。


362:名前は開発中のものです。
04/07/29 22:32 fTQZk59p
今回も名前がファッションショーのようなマイナーアップ。

363:名前は開発中のものです。
04/07/29 22:34 BuKOqKsi
GF2-MX400から5200って変えるメリットないんじゃない?GF2はシェーダーをサポートしてなかったっけ?
グラフィックカードのシェーダーバージョンのリストってどっかのサイトにないかな?
ATI Radeon 8500 vertex shader:1.1, pixel shader: 1.4 とかのリスト。
知っている人いたら教えてください。


364:名前は開発中のものです。
04/07/29 22:46 TXWm31/s
最低でもピクセルシェーダ2.0対応のほうがよくない?
せっかく換えるなら

365:363
04/07/29 23:14 BuKOqKsi
>>364
オレもそう思った。


366:名前は開発中のものです。
04/07/30 00:38 Dxj8mZA4
directX9.0をアマチュアで作る際、GeforceFX系とRADEON系、適しているのはどちらなのでしょうか?
似たようなものなのでしょうか?

GefroceFX系は最適化しないと全く性能が出ないという話と、RADEON系はPCが不安定になるという話とで漠然とした不安があるのですが・・・・

367:名前は開発中のものです。
04/07/30 00:59 xVvwlJFX
>>366
参考にしろyo
URLリンク(www.itmedia.co.jp)


368:名前は開発中のものです。
04/07/30 01:09 prAk/ML6
アマチュアなめんなよ

369:名前は開発中のものです。
04/07/30 05:17 kVioF7Z4
>>366
公開する物を作るなら、安めのヤツでもいいから両方持ってた方がイイです。
さらに各種チプセト内蔵グラフィックについてもテストできる環境だとなおイイです。

とりあえず1つだけ、というならどっちでも好きな方でイイと思います。

傾向としては、渡すパラメータを間違ったりした時に
nVidiaだとなんか普通に動作しちゃったりするのに対し、
ATIだとアプリが落ちるのが多いです。(以前はブルースクリーンでOSごと落ちたりしたが...)
ドライバの品質はnVidiaの方がまだ上ですね。

nVidiaで少しでも安定した開発環境を...でもイイし。
ATIで動けばnVidiaでも動くに違いない!...でもイイかと。


370:名前は開発中のものです。
04/07/30 09:00 MbcA7lq/
VC2003でDirect3Dアプリをデバッグすると
頻繁にフリーズする。デッドロックじゃなくて
非常に重くなってるだけだと思うんだけど
2時間で10回ぐらい再起動ではきつすぎる。
VC6ではこんなことなかったのに。
皆さんはどう?

371:名前は開発中のものです。
04/07/30 14:28 FqoBuYOS
初歩的な質問で申し訳ない。なんだか的はずれな質問かもしれんが‥‥
DirectX 9.0 SDKを使用してアプリを作った場合、
それを動作させる環境はDirectX 9.0以降になるの?
あるいは使用した機能によって対応Verが異なる?


372:名前は開発中のものです。
04/07/30 15:07 dwoGkKo9
9SDKで8以前に対応させることは可能。

373:名前は開発中のものです。
04/07/30 15:07 tikmpGO/
使用した機能によってそのバージョン以上のランタイムが必要。

9.0SDKで作ってもDirectX8.0までの機能しか使っていなければ、
8.0以上のランタイムがあれば動作する。

374:名前は開発中のものです。
04/07/30 17:10 r2gunRKx
回答ありがとうございます

>>367
RADEONのほうが高機能だけれども、みんながRADEON使ってるってわけでもないから
結局無意味になるような・・・という感想です
(低機能製品に合わせたものを作らざるおえない)

>>369
両方ですか!?それはむずかしい・・・・

ATI系はミスに厳しすぎて手間取りそうだから、nVidia系にしときます。

375:名前は開発中のものです。
04/07/30 23:18 lgfh8BvZ
でこぼこなフィールドを作っているのですが、
キャラをその上で歩かせるために、ポリゴンのある一点のY座標を取得
したいのですが、そんな都合のいい関数ありますか?

376:名前は開発中のものです。
04/07/30 23:48 xVvwlJFX
RAYじゃダメなの?
サンプルにあるでしょ。

377:名前は開発中のものです。
04/07/30 23:57 lgfh8BvZ
Pickのやつでしょうか?
D3DXIntersectの関数だけで大丈夫ですか?
使ってみたんだがいまいちうまくいかない。

378:名前は開発中のものです。
04/07/31 00:03 Yg3TW/Ca
>>377
そそ、RayPick。こんな感じ。
URLリンク(kim1.hp.infoseek.co.jp)


379:名前は開発中のものです。
04/07/31 00:21 5nbqJytr
>>378
おお、サンクスです。
vPickRayOrigにはカメラの位置と同じ座標でいいのでしょうか?
vPickRayDirの意味がいまいち分からない。とりあえずこれと同じようにやってればいいのかな。

380:名前は開発中のものです。
04/07/31 00:48 mgl1+hTz
多分誤解しているというか、レイの考え方を理解してないので、一度
自分で図に書いてみることをお勧めする。

レイはキャラクター位置の適当な高さから、真下に向けて飛ばす。
んで、ポリゴンとの交点からキャラの足元の高さを求める。

381:名前は開発中のものです。
04/07/31 01:12 5nbqJytr
親切にありがとうございます!だいぶ分かってきました。
これから試行錯誤して頑張ってみます。

382:名前は開発中のものです。
04/07/31 03:35 eXTMz7H8
>>373
DirectMusicにバージョン定数が見あたらないのはそういう事?
でも3DやInputは指定しといた方がいいよね多分。

383:名前は開発中のものです。
04/07/31 07:35 zkl0g2VN
Pickって充分速いの?
なんか全部のポリゴン調べてそうなんで、フィールドのメッシュは
あらかじめ自前で用意しマップ区画にポリゴン割り当てて、高さを検索
するようにしてんだけど、素直にPick使ったほうがいいのか?

384:名前は開発中のものです。
04/07/31 07:38 r+SIFMd9
MMOみたいに広大なマップはどうやって作ってるんでしょうか?
一定区画毎に3Dソフトでモデル作成してるの?

385:名前は開発中のものです。
04/07/31 07:55 Ws6CvG/6
>>384
Morrowindっていうゲームのエディタ覗いてみるといいかも

2Dも3Dも基本的には地面はゲームエンジン上でハイトマップとかで作られてて
そこに乗せるオブジェクトなんかをモデラーで作ってインポートして配置してる

386:371
04/07/31 08:55 3u9dAkWC
>>372>>373
なるほど。回答ありがとう。
これで安心して9.0 SDKをインスコできます。

まあ使い方はこれから勉強するわけですが‥‥。

387:名前は開発中のものです。
04/07/31 13:05 OQmxmCVI
前は出なかったのに

Direct3D9: Decl Validator: X1039: (Global Error) Declaration can't map to fixed function FVF because nonzero stream index is used.
DxGameLib.exe の 0x77e33887 で初回の例外が発生しました : Microsoft C++ exception: long @ 0x0012eaf8。
Direct3D9: (ERROR) :DrawPrimitive failed.

こんな↑エラーが出るようになった。
つまりどうしろと・・・。

388:名前は開発中のものです。
04/07/31 13:12 1SHYiP+f
>>387
エラーメッセージそのままのことするだけだが。

389:名前は開発中のものです。
04/07/31 13:24 OQmxmCVI
>>388
ゼロでないストリームインデックスが使用されるので、宣言は固定関数FVFに写像することができません。
ってつまりどうすりゃいいのですか?

390:名前は開発中のものです。
04/07/31 14:31 MH/J5A09
DirectX8.1でDirectPlayをしています、ランチソフトでホスト、クライアントを作りたいのですが。
ふたほうともユーザーサイドで作ることにして、クライアント側ではネット上でIPなしにホストを認識できるのでしょうか?
サービスプロバイダーを介して処理するプログラムをよく見ますが、こいつが処理してくれるのでしょうか?
ふたほうともSDKサンプルServer、Clientを参考に作ってます。




「ふたほう」って何ですか?


391:名前は開発中のものです。
04/07/31 14:35 A32qmFzS
ふたほう。それは甘く切ない。
ふたほう。それは全ての希望。
ふたほう。それはやがて気づく自分の愚かさ。

392:名前は開発中のものです。
04/07/31 14:37 MH/J5A09
>>391
なるほど。やがて気づくものだったんですね。
ありがとうございました。

393:名前は開発中のものです。
04/07/31 14:57 19Xe+kkr
鍋の蓋が加熱によって生じた圧力で吹き飛ぶ、蓋砲のことです。
大変危険ですので、子供は真似するなよ。

394:名前は開発中のものです。
04/07/31 15:01 A32qmFzS
イメージ エイゾウ
○| ̄|_∑∵:'、―=≡●

395:名前は開発中のものです。
04/07/31 15:53 3fTekrtj
>>389
固定機能TLでは、複数のストリームは使えないはずだが。
つまりストリーム0にPosition、ストリーム1にtexcoordとかは駄目。
それがやりたきゃTLはSWシェーダにするとか。

396:名前は開発中のものです。
04/07/31 18:54 OQmxmCVI
>>395
HLSL使ってるんですけど、複数のストリームって使えないんですか?

>つまりストリーム0にPosition、ストリーム1にtexcoordとかは駄目。
これ↑駄目なんですか?
9.0bまでは動いていたんですけど・・・。困りました。

397:名前は開発中のものです。
04/07/31 22:44 19Xe+kkr
>>390
皮肉って突っ込まれているのに、結局素で返されてるよ…。
永遠に間違ったまま人生を終えるんだろうか?

398:名前は開発中のものです。
04/08/01 08:43 IUr3PcEr
>>396
それぞれのD3DVERTEXELEMENT9の配列みせてみそ。

399:名前は開発中のものです。
04/08/01 14:10 xMA3M3cR
>>398
//普通の
D3DVERTEXELEMENT9 normal[] = {
0, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_POSITION,0,
1, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL,0,
2, 0,D3DDECLTYPE_FLOAT2,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TEXCOORD,0,
D3DDECL_END()
};

//バンプマップ
D3DVERTEXELEMENT9 bump[] = {
0, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_POSITION,0,
1, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL,0,
2, 0,D3DDECLTYPE_FLOAT2,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TEXCOORD,0,
3, 0,D3DDECLTYPE_FLOAT2,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TEXCOORD,1,
4, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT,0,
4,12,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_BINORMAL,0,
D3DDECL_END()
};

すいません。こんな感じです。
上はエラーは出ませんが、表示はされません。
下はエラーが出て、表示もされません。

400:344
04/08/01 18:22 KObr4ywu
俺のバンプも表示されなくなっちまったぜ~へっへっへっ…うわ~ん!
D3DVERTEXELEMENT9 declDisplay[] =
{
 {0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},//x,y,z
 {0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL,0},//nx,ny,nz
 {0, 24, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,0},//color
 {0, 28, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,1},//specular
 {0, 32, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},//tu0, tv0
 {0, 40, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD,1},//tu1,tv1,tw1
 {0, 52, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 2},//sx,sy,sz
 {0, 64, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 3},//tx,ty,tz
 {0, 76, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 4},//xx,xy,xz
 D3DDECL_END()
};

401:名前は開発中のものです。
04/08/01 21:38 xMA3M3cR
>>400
実はまだ手をつけていないんですが、
HLSLで組んだもの(自作)は今のところ全滅ですw
今からSDKのサンプル見て違いを探します。

402:名前は開発中のものです。
04/08/02 00:55 Cumi6unV
デバッグしてたら、変なところぶっ壊したらしく
PCがおかしくなりますたw

403:名前は開発中のものです。
04/08/02 06:32 RAsJjWQB
(ノ∀`)アチャー

404:名前は開発中のものです。
04/08/02 12:58 48yMNFmC
 RPGツクールXPは、RPGを作るためのソフトです。
 非常に高性能・高機能ですので、RPG以外のゲームを作ることもできます。現時点では、最高のツクールソフトと言えるでしょう。
 RGSSというスクリプト言語がベースになっており、プログラミング言語に近いことができます。
 また、従来のツクールシリーズの作り方も踏襲しており、RGSSを意識しなくても、ゲームを作ることができます。
 簡便さと発展性を兼ね備えた、究極のツクールと言って良いでしょう。

と、言ってみる

405:名前は開発中のものです。
04/08/02 17:19 5/vDCotE
C++は、ゲームを作るためのソフトです。
非常に高性能・低機能ですが様々なライブラリを使用できるので、ゲーム以外のソフトを作ることもできます。現時点では、最高の作るソフトと言えるでしょう。
Cというプログラミング言語がベースになっており、スクリプト言語より凄いことができます。
また、従来のCの作り方も踏襲しており、オブジェクト指向を意識しなくても、ゲームを作ることができます。
簡便さと拡張性を兼ね備えた、究極の言語と言って良いでしょう。

でどうだ。

406:名前は開発中のものです。
04/08/02 17:31 V0vfFI6d
>405
C++はソフトじゃありません。

407:名前は開発中のものです。
04/08/02 17:37 UJk791LC
また微妙なとこを突いてきたな

408:名前は開発中のものです。
04/08/02 17:45 2byonaka
「ふたほう」の、

BBXの例の漢字読めない厨房って、
>>333が書いてる「厨房回答者」と同一人物だ・・・。


409:名前は開発中のものです。
04/08/02 18:21 D6TGTUyj
>>399-400
特に問題ないね、なぜ駄目なんだろう。
俺はノートPCに開発環境を移した関係で
ピクセルシェーダー関係は確認していなかったんだが
やっぱりバンプは失敗するのかな。
とりあえず頂点シェーダーのみは無問題だったが。


410:名前は開発中のものです。
04/08/02 19:57 5/vDCotE
ふた:訓読み
ほう:音読み
すごいと思った。
参考にしようと思った。

>>409を書き換えてあげます。
特にといだいないね、なぜだもくなんだろう。
俺はノートPCにひらはつたまきょうを移したせっけいで
ピクセルシェーターせっけいはたしにんしていなかったんだが
やっぱりバンプはうしぱいするのかな。
とりあえずいただきてんシェーダーのみはなといだいだったが。

411:名前は開発中のものです。
04/08/02 22:02 Cumi6unV
>>409
ご迷惑おかけしました。
SDKのソースと見比べてみたところ、
実はエフェクトの設定を下のように設定しなければいけなかったみたいです。
これで表示されるようになりました。
お付き合い頂き誠にありがとうございました。

effect->Begin(&tem,0);
effect->BeginPass(mPass);

//描画処理

effect->EndPass();
effect->End();

412:名前は開発中のものです。
04/08/02 22:29 07o4uf2l
俺もPassをBeginPassに変更した点以外同じ。
でも駄目だった。
何が悪いのか考えるのも、めんどっちーから前のバージョンに戻した。
時が解決してくれるだろうw

413:名前は開発中のものです。
04/08/02 22:33 Cumi6unV
>>412
前のバージョンではBeginとEndが無くても動いたわけですがその辺は大丈夫でしょうか?
つまり、私の場合はeffectのBegin関数とEnd関数が無かったわけですが。

414:名前は開発中のものです。
04/08/03 09:57 FP35Pks2
>>412
オレの場合、EndPass()を忘れていた所があって、9bでは動いていたけど、9cではエラーになったよ。
Begin( numPass, 0 );
 BeginPass(0);
 draw();
 EndPass(); ←これを忘れていたら9cでは×だった。
End();

もし、VC++使っているんだったら、DirectXコントロールパネルでDirect3DをDebugモードに切り替えると、VCの"output"ウィンドウにDirectXのエラーメッセージがでるよ。
メッシュをちゃんと描いているのに画像が出ないとかDirectX内部でエラー処理されて無視されているわけわかんないバグ取りに役立つ。



415:名前は開発中のものです。
04/08/03 10:07 b+weJY54
エフェクトは挙動がおかしいところがちょっとあるな。
ID3DXEffect::SetTechniqueの直後に
ID3DXEffect::GetCurrentTechniqueを呼び出すと
同じテクニックが返ってきたり返ってこなかったり。

416:名前は開発中のものです。
04/08/04 19:09 WFS4G4PK
ある基底行列mBasisをmRotationで回転させたいのですが

D3DXMatrixMultiply( &mBasis1, &mBasis, &m_mRotation );



D3DXVECTOR3 vR( mBasis( 0, 0 ), mBasis( 1, 0 ), mBasis( 2, 0 ) );
D3DXVECTOR3 vS( mBasis( 0, 1 ), mBasis( 1, 1 ), mBasis( 2, 1 ) );
D3DXVECTOR3 vT( mBasis( 0, 2 ), mBasis( 1, 2 ), mBasis( 2, 2 ) );

D3DXVECTOR3 vR1, vS1, vT1;

D3DXVec3TransformNormal( &vR1, &vR, &m_mRotation );
D3DXVec3TransformNormal( &vS1, &vS, &m_mRotation );
D3DXVec3TransformNormal( &vT1, &vT, &m_mRotation );
mBasis1 = D3DXMATRIX(
vR1.x, vS1.x, vT1.x, 0.0f,
vR1.y, vS1.y, vT1.y, 0.0f,
vR1.z, vS1.z, vT1.z, 0.0f,
0.0f, 0.0f, 0.0f, .0.0f );

では違う値になってしまいます。
下は望む結果が出るのですが、上は誤差?なのか下と微妙に違う結果になります。
なぜでしょうか?

417:名前は開発中のものです。
04/08/04 19:24 WFS4G4PK
自己解決しました。
mBasisが転置になってました。
もうちょっと調べてから書き込めばよかった・・

418:416
04/08/04 19:48 WFS4G4PK
違った。
正解はこれみたい。

D3DXMatrixMultiplyTranspose( &mBasis1, D3DXMatrixTranspose( &D3DXMATRIX(), &mBasis ), &mRotation );

行列は頭がこんがらがるなぁ。

419:名前は開発中のものです。
04/08/04 20:00 hSk7Y9/8
DirectDrawSurfaceで教えてくらはい
16bppのSurfaceのピクセルフォーマットは555と565以外の物って存在するんすかね?
あと、16bppでPrimarySurface作った後でSYSTEMMEMORY上に16bppオフスクリーンSurface作った時、
ピクセルフォーマットは同じである保証はあるのでしょうか?
(Primaryが565でOffScreenが555だったりしたらイヤン)

420:名前は開発中のものです。
04/08/04 21:21 uI3nmk7+
>>419
この世に生き残っているのは555と565だけ。
プライマリとオフスクリーンのフォーマットは同じ。

421:名前は開発中のものです。
04/08/04 21:27 4TyN42HM
RGB5A3だな

422:419
04/08/04 21:49 hKOnHnTA
マリガトン
いらん心配だったみたいね

423:名前は開発中のものです。
04/08/09 15:31 YK+Ecc2p
NVIDIA、デスクトップ用チップ不振で大幅減益
URLリンク(www.itmedia.co.jp)
>「市場で異例の出来事がいくつか重なった結果

いや、自業自得だろ。

424:名前は開発中のものです。
04/08/10 14:09 x3RQWXF2
>>419
明示的に指定すればプライマリと違うフォーマットでも作れるぞ。
何も指定してなければプライマリと一緒。

というわけで、保証されてはいないが、特に指定した覚えがなければ
気にする必要はない。

425:名前は開発中のものです。
04/08/10 16:50 s68euKkc
アニメーションっていうのかな?
3Dの人などのモデルを歩かせたいんだけど間接とかで動かしたいん
だけどどうすればいいのかわかりません。
どなたか助けて

426:名前は開発中のものです。
04/08/10 16:52 ci9GUBOp
>>425
ワンスキン・スキニング・ボーンなどなど。
SDKサンプルに入っているのを見ようとは思わない?

427:名前は開発中のものです。
04/08/10 19:40 wVs3skAG
スキンメッシュ使ってんなら、
自分で指定した行列をセットすればできるよ。

428:名前は開発中のものです。
04/08/10 22:12 OALsNdeP
DirectX9cを使ってる人はどれくらいいんの?

429:名前は開発中のものです。
04/08/10 23:54 FRiHxzCj
838861人くらいかな

430:名前は開発中のものです。
04/08/12 03:57 fg6dyKsT
BBXでカキコしたけど相手にされなくて
こっちに来て助けを求めている羊が何名かいるようだな。

431:名前は開発中のものです。
04/08/12 05:02 ouic0Ye9
【ふたほう】厨房王国BBX【効率を削減ライブラリ】
【ホーマット】厨房王国BBX【重いどうり】


432:名前は開発中のものです。
04/08/12 12:08 Pu8PGMOq
【MMO】みんなでネトゲ作ろうぜ【RPG】スレ
スレリンク(entrance板)
↑のスレのスレ主です、まだぜんぜん白紙なのですが
いまはまだ白紙の状態なのですがいま他のスタッフとスレの人とでアイディアを出し合っています
お願いします俺はこのプロジェクトに賭けているんです。
どうか、どうか協力してください。゚(゚´Д`゚)゚。


433:名前は開発中のものです。
04/08/12 15:07 Ervrl36o
いきなりMMOにチャレンジする初心者の多いこと…
まずは一人で遊べる「インベーダーゲーム」とかでも作ってみたらどうよ?
そんでもって、インベーダーと砲台をMMO化しると。

434:名前は開発中のものです。
04/08/13 02:02 KHJl2h+v
作りたいゲームと作れるゲームには大抵ひらきがあるからな。

435:名前は開発中のものです。
04/08/13 02:48 PB6WbjSS
MMO企画厨は、技術検証もせずに
たいていシナリオ先行型w

436:名前は開発中のものです。
04/08/13 18:39 GTonJWbj
MMO厨でシナリオ先行って聞いたことないなw

大抵スキルとか生産とかで大妄想して
ネットワークコードも書かずに終わる

437:名前は開発中のものです。
04/08/13 20:31 eFu2IU8S
Xファイル出力でキャラを表示させたのですが、アニメーションの最前線では
どういった形で動いてるの?
Xファイル(頭、手、体、足)みたいに分けてそれを行列を使ってとかですかね?
それともXファイルをいくつも用意してそれを変えてく?
さあ、どっち!!

438:名前は開発中のものです。
04/08/13 20:41 cquwXCm5
> アニメーションの最前線

分野が広すぎて、どの分野のことを言っているのか分からず意味不明。
とりあえずXファイルじゃないことは確か。

439:名前は開発中のものです。
04/08/13 21:01 bns5xtH0
>>438
ワカンネーのなら答えんな!消えな糞!

440:名前は開発中のものです。
04/08/13 22:50 2yEX/S7c
>>437
「どっち!!」じゃねぇよ馬鹿。
ボーンもしらねぇ糞餓鬼は糞して寝ろ

441:名前は開発中のものです。
04/08/13 23:19 JwSIe6qm
アニメーションの最前線では、
動作部分のセル画を一枚一枚書いているのですよ。
ボーンもスキンもましてや行列なんて関係ありません。

442:名前は開発中のものです。
04/08/13 23:37 nPJIRCin

おばあちゃんだめ。

ここにはお父さんもお母さんもいないもん。

443:名前は開発中のものです。
04/08/14 15:50 Tqhot9Gc
DirectX8.1を利用してゲームを作ろうと思っているのですが、
DirectX9の参考書は沢山あっても、DirectX8で良いのがありません。
DirectX9の参考書で勉強しても支障はないでしょうか?

444:名前は開発中のものです。
04/08/14 18:10 1SQO+BjR
>>443
DirectX9はdirectdrawとdirect3Dが一つに合体してるよ

445:名前は開発中のものです。
04/08/14 18:20 NkoqHJ4d
>>443
DirectX Graphics以外は、普通に使う分には全く(ほぼ)同じ。
DirectX Graphicsでの目立った違いは、
プレゼンテーション周り、シェーダ・エフェクト周り、SetVertexShader→SetFVF。
ほかの資料などを参照してそこらへんを読み替えられるのであれば、
全く問題ない。

446:名前は開発中のものです。
04/08/14 18:21 /Kf97LYg
合体ではなく廃止。
ついでに言えばその状況はDirectX8からなんだが、何が言いたいんだ?

447:名前は開発中のものです。
04/08/14 18:58 1SQO+BjR
廃止されたらサーフェイスの初期化ができなくなる
よって合体なり

448:名前は開発中のものです。
04/08/14 20:51 XRLALKIN
>443
URLリンク(www.microsoft.com)

449:名前は開発中のものです。
04/08/14 20:58 /Kf97LYg
>>447
Direct3Dからは合体ではなく完全に廃止。
サーフェイスとDrawはイコールではない。

後は3Dデバイスからは隔離された形で、DirectShowとC#用に残っているだけ。

450:名前は開発中のものです。
04/08/14 21:28 VJLygUuK
7までは確か
DirectDrawの初期化 Surfeceの作成

上のを使ってDirect3Dの初期化

となってたから、合体でも別にいいんじゃないか。


というか、合体だろうが廃止だろうが、そんなこたーどうでもいいじゃないか。

451:名前は開発中のものです。
04/08/15 15:50 tEZqQFNr
2003summerSDKでDirectPlayを試してみてるんですが、
HRESULT hr;
と定義すると
「'hr' : 識別名を宣言するのに、型が指定されていません。」
とエラーが出てコンパイルできません。
こんなところでエラーが出てさっぱり意味がわからないのですが、
これは何なんでしょうか。ご存知の方がいたら教えてください。お願いします。

452:451
04/08/15 16:19 tEZqQFNr
板間違えました。他いってきます。すいません。

453:名前は開発中のものです。
04/08/15 16:30 c1nmB8Qn
#if !defined()
ってどういうことですか?
#ifndef
とちがうのですか?
directxのサンプルでは同じように使っているような気がするのですが・・・。
初心者です。お願いします・・・。

454:名前は開発中のものです。
04/08/15 20:56 IeQNR+c5
>>453
ヘルプに書いてあるけど、同じ意味を持つよ。

455:名前は開発中のものです。
04/08/16 07:14 WPAsl4c1
>>454
サンクス!

456:443
04/08/16 08:54 0pYdmfWN
みなさん、とても参考になりました。
8より9の参考書を買った方が使えそうなので、ネットと併用して勉強しようと思います。
ありがとうございました!

457:名前は開発中のものです。
04/08/18 06:12 aECUphq4
自HP(ライフ)の状態によって、文字の色を変えたく思っています。
文字自体は一枚のテクスチャ(グレースケールの.bmp)に全て描いてあります。

色ごとにテクスチャを用意するのは辛いので、
頂点カラーとブレンドして表示したいのですがどうにも上手くいきません。

.bmpの情報をアルファ、頂点カラーを色とするには
どういう手順でやれば良いのでしょうか…。DirectX9です。

458:名前は開発中のものです。
04/08/18 08:52 gKvCATyJ
>>457
頂点カラーでは効率が悪いので定数色にすればいい。

d3dDevice->SetTextureStageState( 0, D3DTSS_CONSTANT, 文字の色 );

d3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3D3DTOP_SELECTARG1 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );

d3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3D3DTOP_SELECTARG2 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );

459:458
04/08/18 09:00 gKvCATyJ
間違った!これね。

d3dDevice->SetTextureStageState( 1, D3DTSS_CONSTANT, 文字の色 );

d3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3D3DTOP_SELECTARG2 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );

d3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3D3DTOP_SELECTARG1 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );

よくわからんがtextureFactorの方がよさそうか。

d3dDevice-SetRenderState( D3DRS_TEXTUREFACTOR, 文字の色 );

d3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3D3DTOP_SELECTARG2 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_TFACTOR );

d3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3D3DTOP_SELECTARG1 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );

460:458
04/08/18 09:04 gKvCATyJ
ぎゃーまた間違った!鬱だ氏のう
慣れないことはしないもんだ。。

d3dDevice->SetTextureStageState( 0, D3DTSS_CONSTANT, 文字の色 );

d3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3D3DTOP_SELECTARG2 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CONSTANT );

d3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3D3DTOP_SELECTARG1 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );


461:457
04/08/18 09:29 aECUphq4
試してみたのですが出来ず、
調べてみたら、うちのビデオカードはD3DPMISCCAPS_PERSTAGECONSTANTの
フラグが立ちませんでした…_CONSTANT使えないみたいです。

折角書いてもらったのに申し訳ないです(´・ω・`)

462:名前は開発中のものです。
04/08/18 12:00 Gn12Xz81
頂点バッファの頂点に対応した画面上の座標の取得方法はどうやるのですか?
DirectX 8.1のVCです。

463:名前は開発中のものです。
04/08/18 12:08 I8z10sIf
頂点バッファと実際の座標は対応していません。
よって取得する方法など存在しません。

464:名前は開発中のものです。
04/08/18 13:22 a9mH/iKH
>457
とりあえずおまえの設定した
SetTextureStageState
SetRenderState
を書け。

465:名前は開発中のものです。
04/08/18 13:30 gKvCATyJ
>>461
ではtextureFactorはどうか。
どっちにしても肝はalphaの方なんで
rgbはマテリアルだろうがなんだろうが
どれでもいい。
ちなみに>>460も間違ってるのでよろしく。

>>462
頂点バッファの出力 oPos
ビューポートの行列 mViewport (URLリンク(www.microsoft.com))

float4 pos = float4( oPos.xyz / oPos.w, oPos.w );
pos = pos * mViewport;






466:名前は開発中のものです。
04/08/18 17:53 mLZSwSlt
>>457
単純に頂点カラーに色入れて
COLOROPをMODURATEにすれば動きますよ。
α成分も変更したけりゃALPHAOPもMODURATEにする。

あと、文字以外の周辺の部分は透明にするんじゃないの?
それならbmpにグレースケールじゃなくて、真っ白なtgaのα成分に文字書かないと。

この方法は頂点カラー設定がめんどくさいとか、
真っ白なテクスチャで無駄が多いとかはあるけど
一番単純だし、ほぼすべてのビデオカードでサポートされるから
とりあえず最初はこの方法でやるのがよいと思われ。


467:名前は開発中のものです。
04/08/18 17:58 4mdm1QSQ
>>461
シェーダーかけりゃめちゃ簡単なんだけどね。
で、頂点カラー使う必要ないでしょ。カラー取得をマテリアルにして、
 SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1 );
マテリアルのディフューズカラーに使いたい色をセットして、マテリアルをセットし、
テクスチャ(文字色は白ね)とセットしたディフューズカラーを掛け算。
 SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
 SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
以上


468:名前は開発中のものです。
04/08/18 18:01 GFEQHMlA
専門用語ばっかりでよく分かりません
専門用語を使わないで教えてください

469:467
04/08/18 18:03 4mdm1QSQ
俺も間違えちゃった。一番上のやつ↓ね。COLOR1じゃなくってMATERIALだから。
 SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL);

>>468
無理。

470:名前は開発中のものです。
04/08/18 18:18 K9yJrd29
>>468 その前に聞け

471:467
04/08/18 18:43 4mdm1QSQ
そういうことか。ぜんぜん質問読んでなかった。そんだったら、
ビットマップの方でα値を各ピクセルにセットしておく。
マテリアルのディフューズカラーのα値は最大(1.0fか、255)にしといて、任意のカラーをRGBをセット。
マテリアルをセット。
したら、アルファブレンドの設定をして,
 SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE);
 SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
 SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );←もしくは、D3DBLEND_ONE
あとはさっき書いたとおり、
 SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL);
 SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
 SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
 SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
でテクスチャをサンプラー0にセットしてフォントを描画。


472:457
04/08/18 21:21 aECUphq4
帰ってきたら更に沢山のレスが(n‘∀‘)η シアワセー

全て試してみましたが、見事に文字色が変わっております。
どうして上手くいくのかまだ良く分からないので、これから
じっくりヘルプとにらめっこしてきます。

皆さんレスありがとうございました。

473:名前は開発中のものです。
04/08/18 22:52 PhkND6gf
ソースコード載せて話すると余計わけわからなくならねぇか?

ようはα情報だけ生かして、文字を描画したいって話だろ?

色をテクスチャからとってこないで、自分で付けて、
αだけテクスチャからとってくる。

実現方法は好きにしろ。って話じゃないの?

474:名前は開発中のものです。
04/08/19 00:22 YunhQ2VJ
SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL );
↑これってライティングがONでないと効果ないみたいね。

475:名前は開発中のものです。
04/08/19 00:34 0V0sHZVM
>>474
早くHLSLに変えろ、
頭悪くなるぞ。(マジで)

DirectXのこの辺は最悪だと思うよ。(俺は)

476:名前は開発中のものです。
04/08/19 08:15 Bswuyzyx
「この辺」が何を指すのかわかりません

477:名前は開発中のものです。
04/08/19 15:12 DiZ9VDt0
この辺と言えばその辺しかないだろ!!
ちなみにPS1.3も同じくらい最悪。
nVidiaもなんでこんなもん作ったんだか

478:名前は開発中のものです。
04/08/19 15:33 ohk01tV7
これ
それ

479:名前は開発中のものです。
04/08/19 16:01 k5TKiz0U
まあ愚痴は無能の典型って事で。

480:名前は開発中のものです。
04/08/19 16:06 z/O2jqMO
バカでも分かるようにもっと簡単な仕様にして欲しいよ>DirectX
ゲームアルゴリズムの方に注力したいのに
DirectX周りの事に振り回されるのは勘弁

481:名前は開発中のものです。
04/08/19 16:09 IqodorHI
ダイレクトXが何でもやってくれるから人間は何もやらなくなるんだよな

482:名前は開発中のものです。
04/08/19 16:56 OUH4KSQg
>>481
DirectXではなく、M$です。

483:名前は開発中のものです。
04/08/19 17:29 DNQdp83T
もっと何でもやってくれ

484:名前は開発中のものです。
04/08/19 17:59 wxxL2nxj
私の代わりに仕事してください

485:名前は開発中のものです。
04/08/19 21:09 4Ari2O79
>>480
「つくーる」使えよ。


486:名前は開発中のものです。
04/08/19 21:13 4Ari2O79
>>477
「この辺」って固定パイプラインの暗黙の仕様のことだろ?
たしかにそういう面はある。
原因がまったく不明のバグがそれだったりする。


487:名前は開発中のものです。
04/08/19 21:33 mwTy6RZE
>>480
スレリンク(gamedev板)

488:名前は開発中のものです。
04/08/19 23:31 DoxkasxA
ジャ ・ ジャ ・ ジャ ・ ジャンクロード

バ ・ バ ・ バ ・ バ バ ン ・ バンダム

WOW!

489:名前は開発中のものです。
04/08/20 02:08 NSwcxKVN
URLリンク(monsho.hp.infoseek.co.jp)
ここのサンプルを参考にしながら、ジオメトリブレンディングを
やってみたんですが、エラーは出ないものの、
グラフィックが全く表示されないんです・・・。
もし誰か時間のある方がいましたら、下の私のソースを見てもらえないでしょうか?
原因が全く分からないんすよ・・。

URLリンク(www.h3.dion.ne.jp)

490:名前は開発中のものです。
04/08/20 02:59 /Ulut1Sl
>>489
draw.cpp:72 の
,&D3DXVECTOR3(0.0f, 0.0f, 0.0f));// 上の向き

,&D3DXVECTOR3(0.0f, 1.0f, 0.0f));// 上の向き
にしたら見えたぞ

491:名前は開発中のものです。
04/08/20 09:34 NSEkMdfG
暇なんでDX9cのHLSLの最適化について最近わかったことを書いてやろう。

・structはuniform引数に使ってはならない。
実際には使わないメンバがあったとしてもそのまま残ってしまう。
同様に、例えば、uniform引数としてfloat変数を4つ定義していた場合
最適化によってこれがfloat4にまとめられるといったことはない。
あらかじめ意識してベクトルにまとめられるものは自分でまとめておく必要がある。

・preshaderは、式の並びに影響される。例えば、
auto変数 = uniform変数 * uniform変数 * auto変数
は正しく最適化され、uniform変数が1つ減らされるのに対し
auto変数 = auto変数 * uniform変数 * uniform変数
はなったりならなかったり挙動不審になる。

・pixel shader v1.3 以下は最適化度が低い。
なって当然の最適化がされないケースが多い。

492:489
04/08/20 10:15 ovGi7XBj
>>490
マジサンクス!
盲点だった・・・。てっきりそこはできていると勘違いしていた。
本当にありがとうございました。助かりました。

493:名前は開発中のものです。
04/08/21 00:44 eREZOx5x
【トーリス】厨房王国BBX【ガリー】
             \   ∩─ー、    
               \/ ● 、_ `ヽ   
               / \( ●  ● |つ
               |   X_入__ノ   ミ    
                、 (_/   ノ /⌒l
                /\___ノ゙_/  /  =====
                〈         __ノ  ====
                \ \_    \
                 \___)     \   ======   (´⌒
                    \   ___ \__  (´⌒;;(´⌒;;
                      \___)___)(´;;⌒  (´⌒;;  ズザザザ
                               (´⌒; (´⌒;;;


494:名前は開発中のものです。
04/08/21 06:04 TCC4rTsV
ID3DXSprite使って描画する場合Shader使えねーの?


495:名前は開発中のものです。
04/08/21 15:11 4tMYKEeH
>>491
ところで、HLSLコンパイラーの吐いたコードどうやって読んでいるの?
バイナリを直接? それとも逆アセする方法がある?


496:名前は開発中のものです。
04/08/21 18:31 /l6AyBmh
>>495
2004夏に、D3DXDisassembleEffectという
逆アセンブラが追加されてる。

497:名前は開発中のものです。
04/08/22 00:45 pjZbrb1x
インデックス値やブレンド値について全然理解できないんですけど、
これについて勉強できる本とかお勧めありませんか?
よろしくお願いします。

498:名前は開発中のものです。
04/08/22 00:50 P2Ty49Qy
>>497
やっぱ数学の教科書じゃねぇ?

499:名前は開発中のものです。
04/08/22 01:44 9ScR6g1n
インデックスが全然理解できないなら
今のうちにあきらめるってのもありだと思う。

500:名前は開発中のものです。
04/08/22 02:39 sxzctg75
>>496
おーー!ありがとう!


501:名前は開発中のものです。
04/08/22 02:47 sxzctg75
>>497
バーテックス・ブレンドでもαブレンドでもいいけど基本は、
B = ブレンド値の値域は0.0~1.0とし,X1, X2 を任意の実数とすると,
X1とX2をブレンド値Bでブレンドした値Xは,
X = BX1 + (1.0 - B)X2

ってだけの話。


502:名前は開発中のものです。
04/08/22 12:49 gJQRB25Q
任意の実数は何の数字ですか?

503:名前は開発中のものです。
04/08/22 14:10 bukVXTsc
>>502
別に実数でなくても、ベクトルだって行列だってテンソルだって調味料だってなんだっていい。

混ぜ合わせたい物同士を好きな割合で混ぜようね、ってだけの話。

504:名前は開発中のものです。
04/08/22 14:25 QGnhciD/
例えば3と10を0.4でブレンドすると
0.4*3+(1.0-0.4)10=7.2
の7,2は何を表すのですか?

505:名前は開発中のものです。
04/08/22 15:00 P2Ty49Qy
>>504
そうやって考えるからわからねぇんだろ。
わかりやすい例でいうとだな。

例:白(白100%)に黒(黒100%)を30%でブレンドします。
(結果は白に近い灰色(白70%)ってわかるよね?)

白(255,255,255)
黒(0,0,0)

30%だから0.3

(0,0,0)*0.3 + (255,255,255)(1.0-0.3) = (255,255,255)*0.7

0.7だから70%。これがブレンド。
用語として覚えておくといい言葉がソースとディスティネーション
プログラムのソースコードではよくsrcとdestって略して使う人が多い。
この例の場合だと黒がsrcで白がdestってなる。

506:名前は開発中のものです。
04/08/22 21:03 XlCpKW53
DirectX9についてるサンプルのStencilShadowVolumeについて質問

エフェクト中のVSでシャドウボリュームをファークリップ面まで引き伸ばしてるのはわかるんですが
投入されたすべての頂点がこのシェーダによってファークリップ面に投影されるだけに見えます。
ですが実際は元の頂点とファークリップ面に投影された頂点を繋ぐfaceがレンダリングされています。

GenerateShadowMesh中のdegenerate quadのあたりが肝なのかもと考えたんですが、うまく解釈できません。

これはどのようなカラクリで元の頂点と投影された頂点を選別しているのでしょうか?
ご存知の方がいたらご教授ください。

507:名前は開発中のものです。
04/08/22 21:31 Bbo1HlWE
カ ラ ク リ ロ ボ

508:名前は開発中のものです。
04/08/22 23:45 mRDiSQCY
>>505
俺は>>504じゃないけど、分かり易い!
なるほどそういう意味だったか。
インデックス値の付け方についても分かりやすく教えて欲しい・・・。

509:506
04/08/23 01:02 mRY69xBL
ウホッ

うたたねしてから酸素エアチャージャーでリフレッシュしたらピキューンと来たよ。
というよりFXファイルに露骨に書いてあった。よく見ろ俺。

510:506
04/08/23 01:02 mRY69xBL
sageわすれた。orz

511:名前は開発中のものです。
04/08/23 04:27 jJ0sQphW
508 名前:名前は開発中のものです。 投稿日:04/08/22 23:45 mRDiSQCY
>>505
俺は>>504じゃないけど、分かり易い!
なるほどそういう意味だったか。
インデックス値の付け方についても分かりやすく教えて欲しい・・・。


509 名前:506 本日のレス 投稿日:04/08/23 01:02 mRY69xBL
ウホッ

うたたねしてから酸素エアチャージャーでリフレッシュしたらピキューンと来たよ。
というよりFXファイルに露骨に書いてあった。よく見ろ俺。


510 名前:506 本日のレス 投稿日:04/08/23 01:02 mRY69xBL
sageわすれた。orz

512:名前は開発中のものです。
04/08/23 13:05 tN3llfcH
>>511
大丈夫?

513:名前は開発中のものです。
04/08/23 13:08 DSpaAwyx
>>512
だいじょうぶ

514:名前は開発中のものです。
04/08/23 13:16 beHyX9iL
テクスチャブレンディングでD3DTOP_MULTIPLYADDを用いた結果
リファレンスだと正常に描画出来るのですがHALだと駄目です。
capsはD3DTEXOPCAPS_MULTIPLYADDは立ってます。
デバッグモードでも特にコメントはありませんでした。
何が駄目なんでしょう?
原因を特定出来る良い方法はないでしょうか?

515:名前は開発中のものです。
04/08/23 13:18 wxYezUtT
>>514
HALはその機能は使えない

516:名前は開発中のものです。
04/08/23 14:42 beHyX9iL
>>515
マジですか?
IDirect3DDevice9::ValidateDeviceもS_OKで特に問題ないのに・・。
でも、IDirect3DDevice9::ValidateDeviceのヘルプをみると
固定機能パイプラインって異常に制限多いんですね、、
ちょっとぐらい出力がおかしくても、仕方ないかって気分になります、、

517:名前は開発中のものです。
04/08/23 16:58 upIE7jtz
固定機能パイプライン(゚⊿゚)イラネ

518:名前は開発中のものです。
04/08/23 19:47 +kLiNW6H
東京湾アクアラインも(゚⊿゚)


519:名前は開発中のものです。
04/08/23 21:04 XKj25jdn
その結果パイプカット(゚⊿゚;)


520:名前は開発中のものです。
04/08/23 23:13 DL6HY/eF
コロッケパン(゚⊿゚)


521:名前は開発中のものです。
04/08/23 23:28 YlB84Pet
チンポコ(゚⊿゚)

522:名前は開発中のものです。
04/08/24 09:34 5Vm6MZAQ
素朴な疑問。
>>501程度の数式も理解できなくて、508はこの先どうするんだ?


523:名前は開発中のものです。
04/08/24 11:17 e7V9r6bl
数式は証明が無いと分からないだろ
頭の良い人が作った式を素人がみただけで分かるわけ無いよ

524:名前は開発中のものです。
04/08/24 11:17 hdyd3kuK
自分一人じゃ何も調べられない何も作れないダメ人生を送るに決まってるじゃん。

525:名前は開発中のものです。
04/08/24 11:44 Q07kn5MI
2chで煽る奴って初心者なのかな?
いちいちダルくないのか?

526:508
04/08/24 13:23 qV4bxq5D
>>522
いや、この数式は単純だから理解できます。
ただこれを人間の間接に使おうとしたらどうやったらいいのかわからなくなった。
>>524
それが人生はうまくいってるんですよw
就職決まったし、かわいい彼女もできたし。
プログラムは趣味だけど、これがなかなかうまくいかないww

527:名前は開発中のものです。
04/08/24 13:57 13Gj+qma
>>526
おまえ面白いな

関節に使おうとしたらどうしたら・・・って
関節にゃ角度と位置しかないんだから
それぞれに出た係数掛け合わせりゃいいじゃないか

>>505も言ってるけどsrcとdest間違えるなよ
あと回す順番も

528:名前は開発中のものです。
04/08/24 14:15 5ubTAk4O
>>527
人生面白い。

それぞれに出た係数ってよく分からないけど、
どっからそれが出てくるの?

529:名前は開発中のものです。
04/08/24 16:31 9dgmLFFj
>>528
>それぞれに出た係数ってよく分からないけど
>どっからそれが出てくるの?

え・・・。なんで分からないのか分からないんだけど。
『人間の間接に使おうとした』の部分を具体的に
説明してくれない?

現在値~目標値の補間を行う、という話なんだから
目標値は当然あなたが用意するわけで。普通は
アニメーションファイル等から読み込んでるはず。

530:名前は開発中のものです。
04/08/24 18:32 MQ0gFcqi
少し質問なのですがDirectXの頂点シェーダのライティングの処理に関してなのですが
例えば三角形ABCが存在してそのABCの中にライトを当てて三角の中に丸い光が当たっている
ようなことができないみたいなことを聞いたのですが、これは三角形の頂点で処理を
していてその頂点を含んでいないので求めている処理ができないようですが
具体的に頂点に対してどういった処理をされているのか分かる方おりましたら
教えていただけませんでしょうか。もしかすると書いていることが間違っている可能性もあるので
そのときはご指摘よろしくお願いします。

531:名前は開発中のものです。
04/08/24 18:54 5Vm6MZAQ
>>530
頂点単位法線ベクトルを N、ディレクショナルライト単位ベクトルを Lとすると、
その頂点の明るさ=N・L (・は内積)


532:名前は開発中のものです。
04/08/24 18:58 5Vm6MZAQ
>>530
ようするに、それを Vertex Lighting に対して、Per Pixel Lighting といいます。
固定機能パイプラインでも、LIGHT構造体に減衰パラメーターと、
シェーディングパラメータとしてPHONGシェーディングがあるので
もしかしたらできるのかもしれないけど、固定は知らない。

シェーダーで記述すれば、per pixel lighting は可能です。


533:名前は開発中のものです。
04/08/24 19:26 Q07kn5MI
フォンシェーディングでも
ポリゴン内にスポットライトは無理。
お前にも家族がいるだろう、、ライトマップでも使うんだな。

534:名前は開発中のものです。
04/08/25 00:26 0I+idDk/
すいません、
恥かしながら視点の変更でつまずいてしまったのですが、お聞きしてよろしいですか?
下のコードにおいて、
D3DXMatrixRotationY はきちんとY 軸回りにカメラの位置が回転するのですが、
D3DXMatrixTranslation はカメラが微動だにしません。
どなたかご教授お願いします。

static D3DXVECTOR3 targetPos(5.0, 5.0, 5.0);
static D3DXVECTOR3 eyePos(10.0, 10.0, 10.0);
static float t = 0.0;
D3DXVECTOR3 d3dVec = eyePos;
D3DXMATRIX d3dMat;

t += (1 / g_game.GetFrameRate());
if (t > 0.1) {
t = 0.0;
//D3DXMatrixTranslation(&d3dMat, 1.0, 1.0, 1.0); // (←なぜか変換できない)
D3DXMatrixRotationY(&d3dMat, D3DXToRadian(1.0f)); // Y 軸回りにカメラの位置が回転する
}

eyePos.x = d3dVec.x * d3dMat.m[0][0] + d3dVec.y * d3dMat.m[1][0] + d3dVec.z * d3dMat.m[2][0];
eyePos.y = d3dVec.x * d3dMat.m[0][1] + d3dVec.y * d3dMat.m[1][1] + d3dVec.z * d3dMat.m[2][1];
eyePos.z = d3dVec.x * d3dMat.m[0][2] + d3dVec.y * d3dMat.m[1][2] + d3dVec.z * d3dMat.m[2][2];

D3DXMatrixLookAtLH(&d3dMat, &eyePos, &targetPos, &D3DXVECTOR3(0, 1, 0));
m_pD3DDevice->SetTransform(D3DTS_VIEW, &d3dMat);

535:名前は開発中のものです。
04/08/25 00:29 qRb4hBww
>>534
D3DXMatrixTranslation でできた行列を確認してミロw

536:534
04/08/25 01:10 0I+idDk/
>>535
ああっ!転置行列になってる!!Σ(゚д゚lll)ガーン
ベクトル要素計算部分をコピペした私が悪かったです。ごめんなさいぃ・・・。

537:534
04/08/25 02:29 0I+idDk/
転置行列じゃなくてw成分の計算やってませんでした・・・あぁぅ。

538:名前は開発中のものです。
04/08/25 03:41 jOyMajPZ
こういうのは初心者相談スレで質問しとけ。

539:名前は開発中のものです。
04/08/25 03:42 i8SLSE9L
//D3DXMatrixTranslation(&d3dMat, 1.0, 1.0, 1.0); // (←なぜか変換できない)

これ絶対狙ってるだろ、お前。

540:名前は開発中のものです。
04/08/25 04:40 Gvn5T2T+
>>536
ひょっとして、このコードでd3dMatに回転と移動を合成した行列ができると思っているの?
D3DXMatrixTranslation(&d3dMat, 1.0, 1.0, 1.0); // (←なぜか変換できない)
D3DXMatrixRotationY(&d3dMat, D3DXToRadian(1.0f)); // Y 軸回りにカメラの位置が回転する

行列の掛け算の意識ある?


541:名前は開発中のものです。
04/08/25 13:08 zbS3DhhP
DXの深度バッファのヘルプには

>使用する数学的処理が原因で、Z バッファに生成される z 値は、
>Z バッファの範囲 (通常 0.0 から 1.0) 全体に均等に分布されない傾向がある。
>特に、遠くのクリップ面と近くのクリップ面の間の比率は、z 値の不均一な分布に強い影響を与える。
>近くの平面の距離に対する遠くの平面の距離の比率を 100% とした場合、
>深度バッファ範囲の 90% がシーンの深度範囲の最初の 10% に費やされる。

とありますが、具体的には透視変換後のZ値(0.0f~1.0f)はどのようにZバッファへマッピングされるのですか?
単純にキャストしていると思えないんですが・・。

542:名前は開発中のものです。
04/08/25 14:13 lI+VEb/x
サーフェイスを作った後
画面の指定した場所に2Dの点を打つには
どうやったらできますか?
教えてください

543:名前は開発中のものです。
04/08/25 23:09 eywPAfew
>>541
D3DFMT_D16_LOCKABLE 指定して、自分で見てみればいいんじゃないの?

544:名前は開発中のものです。
04/08/27 03:35 ftgHyjZb
今日は人間の間接に使う行列の乗算の順番で悩みました。
でも夜中まで頑張ったおかげで意味が分かってきました。
こんなことに何時間も費やしてる俺はアホか・・・。

545:542
04/08/27 12:40 fXeR5OoH
僕の質問にも答えてください
よろしくお願いします

546:名前は開発中のものです。
04/08/27 13:32 W08LCOr8
>>542
ちょっと情報が少なくて答えるのが難しい。
DirectXのどのバージョンを使っていますか?
せめてDirectDrawかDirectGraphics(Direct3D)の
どちらを使っているか書こう。

>画面の指定した場所に2Dの点
これももう少し具体的に。


547:名前は開発中のものです。
04/08/27 13:35 fXeR5OoH
DirectX9を使ってます
画面に点というのは
X座標とY座標に色の付いた点を表示することです
点で線を描いたり色を塗ったりしたいです
アニメーションみたいに動くようにもしたいです

548:名前は開発中のものです。
04/08/27 13:38 9LO7GYUh
自力描画の学習用途ならDibSectionのほうが良いぞ

549:名前は開発中のものです。
04/08/27 13:42 USOnSRSg
>>547
ここで質問する前に、チュートリアルで図形の表示くらいは最低限やっているよね?
それで何が問題なのか具体的に言ってみてくれ。

550:名前は開発中のものです。
04/08/27 13:43 fXeR5OoH
ポリゴンじゃ無い点が打ちたいのです
処理速度が速いのでダイレクトXが使いたいです

551:名前は開発中のものです。
04/08/27 13:48 USOnSRSg
サーフェイスをロックして書き込めばいいだけでは?

552:名前は開発中のものです。
04/08/27 13:50 fXeR5OoH
サーフェイスをロックするんですね
ロックしてみます

553:名前は開発中のものです。
04/08/27 14:07 USOnSRSg
点という単位を使う時点で、速度的に問題外なんだが。
しかもVRAMにランダムアクセスをかければ余計に遅くなるし、
システムメモリー側に領域をとるのなら、
DirectXを使ったからと言って、速度は上がらない。

554:名前は開発中のものです。
04/08/27 14:10 fXeR5OoH
ダイレクトXで2Dのゲームを作るときは普通どうやるんですか?

555:名前は開発中のものです。
04/08/27 14:12 cAd+6bNL
まあロックするとDirect3Dの意味が殆どなくなるし
普通はトランスフォーム済み頂点フォーマットを使うべきだろうな。

D3DXVECTOR4 pos( 横座標, 縦座標, 0.0f, 1.0f); // -1.0f~1.0f

d3ddevice->SetVertexShader( NULL);
d3ddevice->SetPixelShader( NULL);
d3ddevice->SetViewport( &viewport);
d3ddevice->SetFVF( D3DFVF_XYZRHW);

d3ddevice->DrawPrimitiveUP( D3DPT_POINTLIST, 1, &pos, sizeof(D3DXVECTOR4));

556:名前は開発中のものです。
04/08/27 14:17 fXeR5OoH
ありがとうございます
そうしてみます

557:名前は開発中のものです。
04/08/27 14:21 USOnSRSg
そもそもなぜ点が必要なのか分からないのだが、
まさか一枚絵を毎フレーム1ドットずつ描こうとかしてる?

558:名前は開発中のものです。
04/08/27 14:26 fXeR5OoH
一ドットずつ書こうとしてますよ

559:名前は開発中のものです。
04/08/27 14:29 USOnSRSg
それ無駄だから、チュートリアルのテクスチャのところまで最低限やってくれ。

560:名前は開発中のものです。
04/08/27 15:41 JmNyjy1C
点というのがひょっとしてドット絵のことを指しているんじゃないかと思えてきた。
ゲーム上においては、基本的に絵はポチポチ打つもんじゃなくてペタッと貼り付けるものだぞ。
いまどきでいえば、その方法はポリゴン+テクスチャ。

2Dとポリゴンは相容れないとか思ってないか?
たしかに数年前はそういう信仰が隆盛した時期があったが、
今ではたとえば2D格ゲーのキャラもゲージも一枚絵背景も、2Dポリゴンでぺったん。
(スプライトに特化したハードチップ積んでる業務用とかは別だけど)


561:名前は開発中のものです。
04/08/27 19:54 fXeR5OoH
貼り付けると日本のアニメみたいでドット絵はディズニーアニメのような気がします

562:名前は開発中のものです。
04/08/27 21:21 JmNyjy1C
(;´Д`)…?

563:名前は開発中のものです。
04/08/27 21:54 g/9FlyiK
(;゜Д゜)…???

564:名前は開発中のものです。
04/08/27 22:08 n9FyYm2Z
本物ですな

565:名前は開発中のものです。
04/08/27 22:51 wIFL1DE6
久々の、本物再来ですな

566:名前は開発中のものです。
04/08/27 23:11 eB76/2d9
>>561
ディズニーアニメも貼り付けて作ります。

567:名前は開発中のものです。
04/08/27 23:56 IvjAjLag
育てよう。

568:名前は開発中のものです。
04/08/28 11:09 Lw21I10N
2枚のテクスチャをアルファブレンドで半透明表示をしようと
しているのですが、色々試行錯誤してみましたが、
全く変わりません。下地の画像(Dest)、上書きの画像(Src)、共に表示は正常(アルファブレンド無しで不透明表示)です。

以下、問題になりそうな所で設定したものを列挙してみます。
・頂点バッファの色α値、Srcが0x80で、Destが0xff(頂点バッファは2つ用意)
・設定したSetTextureStageStateの引数を列挙すると、
  (0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
  (0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
  (0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
  (0, D3DTSS_COLOROP, D3DTOP_MODULATE);
  (0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
  (0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
・引き続き、設定したSetRenderState、
  (D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
  (D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
  (D3DRS_LIGHTING, FALSE);
  (D3DRS_ZENABLE, TRUE);
  (D3DRS_ALPHABLENDENABLE, TRUE);


569:568
04/08/28 11:10 Lw21I10N
[上の続き]
・BeginScene内 {
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1)
 pDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

 pDevice->SetStreamSource(0, g_pVB[0], 0, sizeof(CUSTOMVERTEX));
 pDevice->SetTexture(0, g_pTexture[0]);
 pDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2);

 pDevice->SetStreamSource(0, g_pVB[1], 0, sizeof(CUSTOMVERTEX));
 pDevice->SetTexture(0, g_pTexture[1]);
 pDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2);
}
(最初はSrcの描画時、ALPHABLENDENABLEをFALSEで
Destでは、ALPHABLENDENABLEをTRUEにしてましたが、
変わりませんでした。(2枚不透明))

はぁ、分からむ。他に原因が有りそうな気がするが、色々試したんだけど。。

570:名前は開発中のものです。
04/08/28 11:55 EaM1yQP4
>>568
頂点の初期化部分も見てみたい。
× v->color = D3DXCOLOR( 0xff, 0xff, 0xff, 0x80 ); // floatでない
○ v->color = D3DCOLOR_ARGB( 0x80, fxff, 0xff, 0xff );
みたいなケアレスミスの悪寒。

571:名前は開発中のものです。
04/08/28 12:14 MSl7I4ZZ
単純に順番だったりしねーのかと小一時間(ry

572:568
04/08/28 13:09 Lw21I10N
>>570
その通りでした。でも、直してもダメだった。
ソース挙げた方が早いと思ったのであげました。
URLリンク(www.geocities.jp)
短かめだと思うので、どうかよろしく。

573:568
04/08/28 13:45 c9wMyvzy
ソースあげてから、気付いた自分の失態。
あぁ、恥ずかしい。変な所にreturn S_OKが入ってた。
それでは設定されないのは当たり前だ。
ワールド行列、ビュー行列、射影行列を設定しないようにしたら、
うまく表示されるが、すれば何も表示されなくなる。なぜ?
迷惑かけました。ありがとうございました。
誰も読んでない、と願う。即、削除だ


574:名前は開発中のものです。
04/08/28 16:24 ++PpbaSY
DirectInputを使ったジョイスティックの入力のやつが正しく動作しません。
コンパイルは通っても、完成したEXEファイルを実行するとウィンドウは開くのですが、一瞬で終了します。

ダイアログボックスで細かく調べた結果、86行目辺りに問題があるようです。
ソース : URLリンク(shiva.dip.jp)

86行目の部分について、サンプルではIID_IDirectInput8となっていましたが、
IID_IDirectInputでなければエラーが出てコンパイルできません。
エラー : 外部シンボル '_IID_IDirectInput8A' が未解決 (C:\C\YUKA\DX\TEST3.OBJ が参照)

リンクしたライブラリは dinput.lib dxerr9.lib dinput8.lib です。

環境 : WindowsXP BCC5.5 DirectX9SDK(アップデートなし)

よろしくお願いします。

575:某所で顔写真晒されたホゲー
04/08/28 16:43 8sL3miLU
C\YUKA\DX\ うそくせーーーーーーーーーー

576:名前は開発中のものです。
04/08/28 17:12 oqhdv2Sx
>>574
dxguid.lib も必要な気がするが、

coff2omf で作ったやつだと駄目な気がするな。

577:名前は開発中のものです。
04/08/28 17:26 8joSL+8n
directX色々ためしてやっとコンパイルできるようになったんだけど
ライブラリー(.lib)を普通はリンカに教えるのにコンパイラーに教えないと
コンパイルできないのはなぜですか?

578:名前は開発中のものです。
04/08/28 20:19 t2/ILfH2
>コンパイラーに教えないと コンパイルできない
コンパイルじゃなくてリンクだろ。

恐らく#pragmaのことを言ってるんだとは思うが、もうどうにでもしてくれ。



579:名前は開発中のものです。
04/08/28 20:27 bwn7nTe1
578のいうとおりだとするとリンカでは出来なくて
コンパイラーに教えないとコンパイルできない説明はどうしますか?

580:名前は開発中のものです。
04/08/28 20:29 WE2yckIh
MSのコンパイラだからもちろん決まってるじゃんか



                  「仕様です」

581:名前は開発中のものです。
04/08/28 20:34 WE2yckIh
ていうか 577はコンパイルとリンクの違いのとらえ方がちがうな

ふつうDirectXのプログラムをビルドした場合

プログラム自体の main.cpp→main.objはできるからコンパイルはできてる
でもライブラリの場所が設定されてないとBltFastとか関数の実体が見つからない系の言葉がでるじゃん

ようするにコンパイルはできるけどリンクができないって事だ

コンパイルは絶対できてるよ インクルードファイルもちゃんと読めていれば


582:名前は開発中のものです。
04/08/28 20:55 bwn7nTe1
それではライブラリーの場所を指定するんじゃなくて
ライブラリーをcppと同じ様にオプションを付けないでコンパイラーに
教えないとコンパイルできない証明になってないの

583:名前は開発中のものです。
04/08/28 22:01 0glZXjA8
とりあえずどういうオプションつけてコンパイルしてるんだか晒して欲しいな

何が言いたいんだかよくわからん

584:名前は開発中のものです。
04/08/28 22:32 GnOxuBjg
日本語すらまともに書けないんじゃ、どうしようもない。

585:名前は開発中のものです。
04/08/28 23:52 Kxp/7flN
DirectXコンパイルリンクうんぬんの前に、
相手に内容が伝わる日本語を書く練習をしてくれ。
>>579>>582も意味がさっぱり分からん

586:名前は開発中のものです。
04/08/28 23:54 bwn7nTe1
専門用語使わないと説明できないから仕方ない

587:名前は開発中のものです。
04/08/29 00:18 ZuIvEOEv
ライブラリー
コンパイラー

にワラタ

588:名前は開発中のものです。
04/08/29 00:53 tXbvC2Z4
さほど笑う所でもないと思うけどなぁ。

あまりそういうミクロなことに大きく反応しない方がいいよ。
知ったか臭が出まくるから。

589:名前は開発中のものです。
04/08/29 00:53 jOomCCJ/
>582
コンピュータ関連に限ったことじゃないけど
最後にのばし「ー」は書かないお約束なんだよ

コンピュータ
プログラマ
コンパイラ
ライブラリ

コンピュータ関連の書籍を読むと、このルールになってるから
自然と気づくものなんだけどね
まぁ日が浅いということで教えてあげますた

じゃないと>587が何にワラタかわからないもんね

590:名前は開発中のものです。
04/08/29 00:59 l6FCc4MT
専門用語云々ではなく、文章が成り立っていないのが理解できないのだろうか?
作文すらまともに出来ないのに、プログラムなど出来ようはずがない。

591:名前は開発中のものです。
04/08/29 01:03 pDqcWRKW
そもそも英語をカタカナに直すのが間違っているのだよ!!
computerでいいじゃない!

592:名前は開発中のものです。
04/08/29 02:04 f5bWZnyf
>>589
教えてあげますた?
馬鹿にしてあげますたの間違いでしょ。

593:名前は開発中のものです。
04/08/29 04:15 gD6VDqSM
それは屈折だね。
人に教えてもらうことにトラウマがあるのかな。

594:名前は開発中のものです。
04/08/29 04:22 JB9yEO7O
コンピュータ の検索結果のうち 日本語のページ 約 2,630,000 件中 1 - 50 件目 (0.48 秒)
コンピューター の検索結果のうち 日本語のページ 約 2,640,000 件中 1 - 50 件目 (0.44 秒)

コンピューターの完全勝利!!

595:名前は開発中のものです。
04/08/29 04:34 G7yamuRi
もうね・・・

596:名前は開発中のものです。
04/08/29 08:46 g4GxRtWZ
コンピータ の検索結果のうち 日本語のページ 約 753 件中 1 - 10 件目 (0.16 秒)
コンプータ の検索結果のうち 日本語のページ 約 220 件中 1 - 10 件目 (0.31 秒)
コンピョータ の検索結果のうち 日本語のページ 約 31 件中 1 - 10 件目 (0.27 秒)
コンピャータ の検索結果のうち 日本語のページ 約 7 件中 1 - 4 件目 (0.15 秒)

597:名前は開発中のものです。
04/08/29 09:27 7ns/5yL2
>>589
>最後にのばし「ー」は書かないお約束なんだよ
それは古いJISZ8301の話で2000年に改正

erなどで終わる英単語のカタカナ表記
・原則として最後に長音を付けるが慣用にならって省略可能
・国語規範に従うなら長音を付けなければいけない

598:名前は開発中のものです。
04/08/29 12:14 7ofXNzkl
>>593
君は>>587のどこに「教えてあげた」という要素があるのか説明してみなさい。

599:名前は開発中のものです。
04/08/29 12:32 IHB/3+VU
コンピューター 【computer】

電子回路を用い,与えられた方法・手順に従って,データの貯蔵・検索・加工などを高速度で
行う装置。科学計算・事務管理・自動制御から言語や画像の情報処理に至るまで広範囲に
用いられている。電子計算機。

三省堂提供「デイリー 新語辞典」より

600:名前は開発中のものです。
04/08/29 16:25 WIas5PYh
>データの貯蔵・検索・加工などを高速度
>科学計算・事務管理・自動制御から言語や画像の情報処理に至るまで広範囲

肝心のDirectXが抜けているな。もうだめぽ。

601:名前は開発中のものです。
04/08/29 21:46 ujHaOyYK
テクスチャを滑らかにするためにdx8の時は↓みたいにしてたんですけど、
SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR)
SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR)
dx9になったらできなくなりました。どうやればできますでしょうか?

602:名前は開発中のものです。
04/08/29 22:01 0xodCynV
テクスチャー

603:名前は開発中のものです。
04/08/29 22:02 B9v49DVv
SetSamplerStateメソッドを使えばできます

604:名前は開発中のものです。
04/08/29 22:10 ujHaOyYK
>>603
本当や!!ありがとう!

605:名前は開発中のものです。
04/08/29 22:56 +M+TQg8+
あ、あれ?なんか書き込みが消えてってる…

606:574
04/08/30 00:54 +VHuiRh9
>>576
ありがとうございます。
でも dxguid.lib をリンクしても解決しませんでした。

普通のウィンドウズアプリケーションの入力にしたほうがいいのでしょうか?

//dinput使いたいですけど・・・

607:名前は開発中のものです。
04/08/30 05:04 77gvjof4
>>606
よくみたら、なぜdinput.libとdinput8.libが両方リンクされてるんだ?

608:名前は開発中のものです。
04/08/30 08:27 JziNAVt5
>>541
> 具体的には透視変換後のZ値(0.0f~1.0f)はどのようにZバッファへマッピングされるのですか?

これでも実行してみそ。
URLリンク(gamdev.org)
ちなみに俺が初めて作った.NETアプリ。ぶっちゃけどうでもいいけど。

609:608
04/08/30 08:38 JziNAVt5
あっと、たぶん横軸の左がニアクリップ、右がファークリップ、
縦軸の下が0.0f、上が1.0fだと思う。

つーか手抜きにもほどがあるな。両方ゼロ入れたら止まるし。

610:574
04/08/30 13:35 0w3YomC2
>>607
dinput.libだけだとエラーが出ます。

  Error: 外部シンボル 'DirectInput8Create' が未解決 (C:\C\YUKA\DX\TEST3.OBJ が参照)

それでdinput9.libもリンクしてみたところ、このエラーが消えました。

611:名前は開発中のものです。
04/08/30 15:01 NHnH5VCa
>>610
コンパイラーにライブラリーを教えないとエラーがでる

612:名前は開発中のものです。
04/08/30 15:11 clEim/gs
>>610
DirectX9ではIDirectInput8インタフェイスが使われているのだから当然といえば当然

613:577
04/08/30 15:28 NHnH5VCa
いまビルドのオプションみてみたところ
コンパイラーに教えるのは間違えで
libファイルをライブラリーファイルとしてではなくオブジェクトとして
教えないとリンクできないことがわかりました

614:541
04/08/30 16:36 G+2ZLJ7k
>>574
ありがとうございます!早速実行してみました。
横軸は透視変換前のZ値(Zn~Zf)、縦軸は透視変換後のZ値(0.0f~1.0f)ですね。
それで例えば、Znを1、Zfを100で再計算してみると
変換前 : 変換後
10 : 0.93
20 : 0.96
になります。
この0.93と0.96を16itなり24bitなりのZバッファに入れることになると思うんですが
どういう風に入れてるんだろうと疑問だったんです。
が、よく考えてみたら単にreinterpret_castで良さそうですね。
透視変換後のZ値をfloat型だとして、符号ビットはいらないし指数は固定にすればいいし
正味必要なのは仮数23ビットなんで、24bitZバッファなら間に合うし16bitはシフトすればいいですし。


615:名前は開発中のものです。
04/08/30 18:39 rEJcNiQG
libのリンクは↓をよく使う
#pragma comment(lib, "d3d9.lib")
特に他人に渡したりするときこっちのほうがいいと思う

616:名前は開発中のものです。
04/08/30 18:53 nWCa8g9+
ダイレクト3D9のチュートリアル3の意味が全然分からないんですが、わからないのは普通ですか?

617:名前は開発中のものです。
04/08/30 19:22 f4wxDLS/
普通じゃないよ

618:574
04/08/30 22:24 p9cFUGYb
>>611,>>612
なるほど。


えっと、BCCでは結局dinputを使ったアプリケーションの開発はできないのでしょうか?
普通にキーボードから入力させることにして、
ユーザーにはJoyToKeyを入れてもらうことにしたほうがいいですか?

619:名前は開発中のものです。
04/08/30 22:29 nWCa8g9+
なんでdirectx9なのにdirectx8を使ってるの?

620:名前は開発中のものです。
04/08/30 22:34 RUnJZs6O
8のインタフェイスしか無いからでしょ。
9は、そのほとんどが3D関係のアップデートだし。

621:名前は開発中のものです。
04/08/30 22:43 sFKshRVA
URLリンク(clootie.narod.ru)
ここにあるBCC用ライブラリをリンクしてみては?
足りない部分を補ってあるらしいよ
LunaBCCも結構使えるかもね
URLリンク(www.twin-tail.jp)

622:608
04/08/30 22:49 Har10E7G
>>614
ああ、透視変換後って話だったか。
実際の数字見てないけど、たぶん仮数部がそのまま収められると見て間違いないだろうね。

623:574
04/08/30 23:47 p9cFUGYb
>>619
わかりません。

>>620
そうなんですか、
気にはなっていたのですが。

>>612
上のURLのライブラリを使ってます。
というか、それを入れないとBCCでの開発は不可能だと聞きましたので。
LunaBCCはよさそうなのですが、
DirectXの勉強のためにも一から自分で組みたいなと思っているんです。
すいません。

624:名前は開発中のものです。
04/08/31 00:15 GrjKiyhi
>というか、それを入れないとBCCでの開発は不可能だと聞きましたので。

自分で作れば不可能ではなくなる。

625:名前は開発中のものです。
04/08/31 00:19 3e2h5xuA
>>623
dxguid.lib dxerr9.lib dinput8.libでIID_IDirectInput8にしてコンパイル通ったんだが・・・・

626:名前は開発中のものです。
04/08/31 01:30 Sa6m5/RG
Xファイルを複数読み込むときにですね、
配列を使ってやろうとしたんですけど、
なぜかできませんでした。
クラスとかが使えないとまずいですかね?

627:名前は開発中のものです。
04/08/31 01:40 sprNxSK/
クラスを使える使えないは別問題。

628:名前は開発中のものです。
04/08/31 02:05 Sa6m5/RG
LPD3DXMESH lpD3DMesh = NULL; // メッシュ
D3DMATERIAL9 *D3DMaterial = NULL; // 質感
LPDIRECT3DTEXTURE9 *lpD3DTexture = NULL; // テクスチャー
DWORD dwNumMaterials = NULL; // マテリアル数

10個Xファイルを読み込むなら↑が10個分必要?

629:名前は開発中のものです。
04/08/31 02:18 sprNxSK/
そうだが構造体にまとめたほうがよさげ

630:名前は開発中のものです。
04/08/31 02:18 gdzLK54q
10個書くのが面倒なら
構造体なりクラスなりまとめりゃあいいんじゃねえの?
それかD3DXMESHCONTAINERかそこら使うとか。

DirectX以前に、文面から明らかにあんたのC/C++の知識・経験不足。

631:574
04/08/31 02:34 jUJY5ORF
>>624
なるほど・・・


>>625
コンパイルできました!
ありがとうございます!

dinput.libと、dinput8.libの二つをリンクしてたのが原因・・・みたいです。
だめなんですね、この二つをリンクするのは。

632:麻耶子
04/08/31 11:21 IY1iJSYZ
よくPS2とかのゲームで3Dのキャラクタが剣を振ったりしてるじゃないですか。
そういった3Dのキャラクタのアクション?アニメーション?ってどういった原理
でやってるんでしょうか?DirectXでXファイルを読み込んでそのデータを
どうすれば動くんですか?そういったやり方なのかXファイルをアクションの
数分用意するんでしょうか?どなたか教えて頂けたら幸いです。



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