くだすれDirectX(超初心者用) part.3at TECH
くだすれDirectX(超初心者用) part.3 - 暇つぶし2ch369:デフォルトの名無しさん
08/05/10 04:30:06
>>367
同人より実力のないプロでゴメンm(_)m

>>368
そのとおりです~。

370:デフォルトの名無しさん
08/05/10 08:47:43
プロ崩れの同人もいるわけだし仕方ないんじゃね?

371:デフォルトの名無しさん
08/05/10 11:26:25
3Dダンジョン、フルサイズ背景表示、ラスタキャラ表示、手前にメッシュ表示、
そして文字表示エンジンが完成しました~。
Intelチップで不具合が出たのですがステートを直したらどうにかなりました。
一週間でどうにか出来たのはひとえに皆様のおかげです。ありがとうm(__)m

372:デフォルトの名無しさん
08/05/10 11:29:11
これで月曜日の納品に間に合います。
なにげにサンプルメッシュを作るのに時間がかかってしまいました。
LWの解説サイト様、ありがとう御座いました。m(__)m
あとはゆっくり寝てバグだしをします。
おやすみなさい~zzz

373:デフォルトの名無しさん
08/05/10 11:37:14
だからここに日記を書くなよ…

374:デフォルトの名無しさん
08/05/10 11:43:32
ボーンの処理どうやった?

375:デフォルトの名無しさん
08/05/10 12:08:25
初心者隔離スレだからいいんじゃねぇの?
本スレ汚されるよりな。

376:デフォルトの名無しさん
08/05/11 00:20:17
テクスチャは256x256以下で2^nサイズの正方形にすると良いって暗黙の了解があるが
やっぱり今時のハードでも256x256以下の方が良いのかな?
というか今時ので512x512で表示が乱れるとかぼやけるとかってやつある?

377:デフォルトの名無しさん
08/05/11 00:30:12
>>376
>というか今時ので512x512で表示が乱れるとかぼやけるとかってやつある?

ハードウェアの問題と
自身のプログラミングの問題を混同してるうと思う…

512x512のテクスチャでも、貴方のコードがおかしければ
表示が乱れるとかぼやける事は十分あるかと


378:デフォルトの名無しさん
08/05/11 03:11:29
>テクスチャは256x256以下で2^nサイズの正方形にすると良いって暗黙の了解
何年前の話だ・・・ぶーどぅーとかの時代だろ。

テクスチャのサイズ、正方形、2^nの制限などは全てCAPSで取れるので
それを起動時に見て作るテクスチャや作り方などを判断すればいい。

ぼやけるかどうかはプログラムの問題でハードの問題ではない。

379:デフォルトの名無しさん
08/05/12 16:08:46
広大なMAPを作るとして、みなさんはラップアラウンド問題はどうしてますか?
1画面分移動したら0に戻すとかで対応ですか?
そもそも、広大なMAPは作らない方針ですか?

380:デフォルトの名無しさん
08/05/12 16:41:55
4bitで -2147483648~2147483647 だから
DbD単位で数値持ってても左右で100万画面分以上あるから悩んだことないな
どんだけ広大なマップを作る予定なのさ
世界一周でも足りる気がするが…

それより俺は3Dゲーの広大なマップでfloatの制度をどう解決してるかが知りたい

381:デフォルトの名無しさん
08/05/12 16:42:33
すまん4byteだw

382:デフォルトの名無しさん
08/05/12 20:14:03
>>380
ああ、ごめん、おれもfloat制限の事、ききたかったんだ。すまそ。

383:デフォルトの名無しさん
08/05/12 22:14:22
位置に関するオフセットだけ別にもって描画に使うギリギリまで原点基準の座標で計算するようにする。
ビューの行列生成に対して逆移動を適用して描画における計算上だけ整合性をとって、
通常の計算は精度の高いローカルのまま計算をする。

384:デフォルトの名無しさん
08/05/12 22:27:16
メッシュを拡大(ScalingMatrixかけて)して描画すると
真黒になるのは何故なんだぜ?


385:デフォルトの名無しさん
08/05/12 23:27:35
法線

386:デフォルトの名無しさん
08/05/13 08:29:56
>>383
そうやっても、原点から遠ざかっていくとだんだんずれてこないか?
たとえば時速10000キロで飛行機を原点から遠ざかるように飛ばし続けて
その後ろをカメラが追従するようにするとそのうちブルブル振動し始める

>>384
法線を正規化するレンダーステートかなんかがあった気がする
調べるのはめんどい

387:デフォルトの名無しさん
08/05/13 12:42:19
D3DRS_NORMALIZENORMALS

388:デフォルトの名無しさん
08/05/14 01:31:55
DirectX9にて、テクスチャを描画すると画像がぼやけてしまい困っています。
各座標-0.5fやSetSamplerStateでPOINT/NONE(一応バイキュービックなども試しました)を指定など、調べて出てくること・考えられることは試してきたので、
最初のぼやけっぷりと比べればある程度見れるような状態にはなってきているのですが、それでもまだぼやけています。
今は、とりあえず倍の解像度のテクスチャを使って凌いでいます。(これなら、ぼけないように見えます)
高精細の画像を用意することなく、画像のそのままをDirectXで描画するにはどうすればいいのでしょうか?
ご教授をよろしくお願いします。

389:388
08/05/14 01:34:37
書き忘れました。
使っている画像はPNG(透過)、解像度は640x480です。

390:デフォルトの名無しさん
08/05/14 02:08:41
トランスフォーム済み頂点かい?

391:デフォルトの名無しさん
08/05/14 02:09:10
フルスクリーンでアスペクト違いとかだったら殺すぞ?

392:デフォルトの名無しさん
08/05/14 02:11:43
FAQ過ぎるんだが確認事項が多すぎて一々レスしてくのめんどくせ。
再現コードうpして頂戴。

393:デフォルトの名無しさん
08/05/14 02:39:35
FAQすぎるけど、ここってそういうスレだろうw

>>388
D3DXCreateTextureFromFileでテクスチャ作ってるだろ?
この関数では2のn乗のサイズのテクスチャしか作れない。
D3DXCreateTextureFromFileExを使えば解決。
引数は自分で考えるかググってくれ。

394:デフォルトの名無しさん
08/05/14 06:09:43
頂いたご意見を検証しましたところ、読み込みの時点で2の乗数のサイズになってしまっていたようです。
D3DX_DEFAULT_NONPOW2を指定したところ、綺麗に描画することができました。

>>390様、>>391様、>>392様、>>393様、どうもありがとうございました。
半年間続いた気持ち悪さも抜けました。これで気持ちよく眠れます。
本当にありがとうございました。

395:デフォルトの名無しさん
08/05/14 15:29:58
その後、>>394は半年のあいだ目覚めることが無かったという
めでたしめでたし

396:デフォルトの名無しさん
08/05/14 15:57:25
>>395
どっかいけ
二度とくんな

397:デフォルトの名無しさん
08/05/15 12:46:59
>>396
おまえもくんな

398:デフォルトの名無しさん
08/05/15 12:48:21
>>394
NONPOW2できないデバイスもあるかもしれないんだぜ
D3DX_FILTER_NONE

399:デフォルトの名無しさん
08/05/15 15:56:30
D3DX_FILTER_NONE使った場合、実際は2のべき乗のテクスチャが作られても画像は拡大されない
つまり、DbD表示は可能だけどそのためにはUVを調整する必要があるんだな
俺もハマったなぁ…

400:デフォルトの名無しさん
08/05/15 16:41:35
info.width/dest.width

401:デフォルトの名無しさん
08/05/15 16:41:56
destじゃないdescだ

402:デフォルトの名無しさん
08/05/15 19:13:56
ヘルプ嫁よ

403:デフォルトの名無しさん
08/05/16 08:52:34
>>402
誰に言ってるんだ?

404:デフォルトの名無しさん
08/05/16 14:44:19
自分に言い聞かせてるんだろ

405:デフォルトの名無しさん
08/05/18 02:43:39
ユニビーム

406:デフォルトの名無しさん
08/05/19 21:34:00
>>405
おまえのお陰でアイアンマンが映画化されている事を知った
しかも大ヒット

407:デフォルトの名無しさん
08/05/20 14:16:42
リパルサー

408:デフォルトの名無しさん
08/05/21 03:01:54
         ∧_∧  ♪
      ∧_(∧ω^ )       
     ∧ ^∧^ ) >
     ( ^∧^_∧>/    ♪ 
      ( ^∧^__∧
       ヽ( ^∧^_∧  ♪      
       < ( ^ω^ )          過疎るな
        | <    >
       (_/ /ヽヽ
        (_) (__)

409:デフォルトの名無しさん
08/05/21 08:24:43
これってDirectxで動いてんの?
URLリンク(www.nicovideo.jp)

410:デフォルトの名無しさん
08/05/21 08:37:55
>>409
知らない映像も交じってるが知ってるプリレンダー映像に関してはCPU処理かな
リアルタイム処理だったらDirectXでもできるだろうけど…

411:デフォルトの名無しさん
08/05/21 14:34:14
DirectXで作ったとしても
DirectXの知識1割ぐらいだな

412:デフォルトの名無しさん
08/05/21 15:16:02
てかDirectXだろうがPS3だろうがリアルタイムレンダリングできるわけないだろ
水はサンプリング粒子が多すぎる

413:デフォルトの名無しさん
08/05/21 16:39:04
数年後には実現できていたりする

414:デフォルトの名無しさん
08/05/21 17:20:43
DX11はリアルタイムレイトレーシングを見据えているんだっけ?
それともあれはIntelのプレゼンか何かだったかな?

415:デフォルトの名無しさん
08/05/21 18:41:08
これ以上バージョンを出すな!

416:デフォルトの名無しさん
08/05/21 19:50:49
高性能はおなか一杯だから
マイクロソフトは、軽快なOSを出してくれマジで

417:デフォルトの名無しさん
08/05/21 21:20:03
昨日からDX勉強してる超初心者なんですが、
画面に立方体のポリゴンを表示してみたんですが
なんか全体的に絵が硬い感じがします。
もう少しやわらかくぼやけた感じに描画したいんですが
どうすればよいですか?

418:デフォルトの名無しさん
08/05/21 21:38:46
一番手軽なのはあくび

419:デフォルトの名無しさん
08/05/21 21:41:43
生理現象を待つよりも目薬がおすすめ

420:デフォルトの名無しさん
08/05/21 21:54:28
>>418
>>419
意地悪いわんでおしえてくれ~
とりあえず調べてみたけどアンチエイリアスだけで何とかなる?


421:デフォルトの名無しさん
08/05/21 22:04:23
あんたの言うぼやけた感じってのがわかんねぇから意地悪したくなるんだけどなw
アンチェリかけただけで良いのか?
DOF的なカメラフォーカスのぼやけが欲しいのか?
HDRシーンのようなぬったりぎっとり画面が欲しいのか?
アンチェリだけならデバイス作成のフラグ変えるだけなんだからまずは試してみれ
(ビデオカードが対応していることが前提だが)

422:デフォルトの名無しさん
08/05/22 08:30:21
アンチェリかけてダメならHDRとグレア処理やって
ダメならDOFやってだめなら空気遠近法ってとこか

立方体を平らな板の上に載せてAOテクスチャでも張れば案外柔らかくなるんじゃね?

423:デフォルトの名無しさん
08/05/22 09:48:23
単にライティングしてないってオチじゃね?

424:デフォルトの名無しさん
08/05/22 11:12:42
>>409
これはリアルタイムっぽいな
URLリンク(www.nicovideo.jp)

425:デフォルトの名無しさん
08/05/22 16:28:03
>>420
スナップショットうp

426:デフォルトの名無しさん
08/05/22 17:36:36
XY平面上にポリゴン等のモデルオブジェクトを配置した状態で、カメラの視線はZ軸に平行にしています。
この状態でマウスドラッグでカメラの水平座標(X,Y)をOffsetするようにしています。
また、マウスホイールでカメラの鉛直座標(Z)をOffsetしています。

カメラ座標Zによってマウスドラッグ時のカメラの水平移動量を調節したいです。
具体的に言いますと、スクリーン座標(10,10)から(510,10)までマウスドラッグした場合に、
500ピクセル分のカメラ移動をするのですが、一律のOffsetでは当然カメラ高度が高ければ高いほどオブジェクトの
見かけの移動量が少なくなってしまいます。これを上手く調節して、500ピクセル分の移動であれば現在のカメラ画像の高さにおいて
見えているオブジェクトの500ピクセルに相当する分の座標でOffsetしたいのですが、その計算方法が分かりません。

DirectXで使っているPerspectiveCameraではFieldOfViewを設定していますが、カメラ焦点距離に当たるものが
見つけられませんでした。焦点距離と画角とZさえわかれば求まると思うのですが。

説明が下手で申し訳ありませんが、参考になるサイトかアドバイスがあれば宜しくお願いいたします。

環境:
VisualC#2008、WPFアプリケーションのViewport3Dを利用しています。

スレ違いと言われるかもしれませんが、WPFスレではWPFのGUI関連のスレに見受けられまして、
カメラのOffset等こちらのスレで質問した方が良いのではないかと勝手に判断いたしました。

427:デフォルトの名無しさん
08/05/22 17:58:10
焦点距離はFOVから算出するものだろ。
フィルムサイズによっても変わるものだし。

428:426
08/05/22 18:22:05
>>427
フィルムサイズとFOVが分かれば確かに焦点距離が求まるのですが、
フィルムサイズってどこで分かりますか?

429:426
08/05/22 18:26:21
あ、なんか分かったかも。
Viewport3Dコントロールがリサイズされれば当然オブジェクトの見た目も変わりますね。
ちなみにFOVって水平画角であってますか?そうであればフィルムサイズはViewport3Dコントロールの
水平方向のサイズから求まると思います。

鉛直画角ではないですよね?

430:デフォルトの名無しさん
08/05/22 18:27:47
好きに決めろ。
「FOVがXならフィルムサイズnの時の焦点距離がYです」という言い方しか出来ない。
通常は35mmがメインっぽいけど別に決まってるものではなく仮定するものだと思うが。

さらに言うならマウスでドラッグしたスクリーン上の移動を見かけ上一致するように
3D空間でも移動を行なうのに焦点距離はまったく必要ない。

431:デフォルトの名無しさん
08/05/22 18:31:01
>>430

>さらに言うならマウスでドラッグしたスクリーン上の移動を見かけ上一致するように
>3D空間でも移動を行なうのに焦点距離はまったく必要ない。

そのやり方についてヒントだけでも教えてもらえませんか?

432:デフォルトの名無しさん
08/05/22 18:51:28
スクリーン座標に変換する->マウスの位置へ移動する->ワールド座標に戻す。

スクリーンからワールドに戻すときにzはどうするんだって話になるが、
元々ワールドに存在するオブジェクトならそのままのzをもってきて計算すればいい。

433:デフォルトの名無しさん
08/05/23 19:14:53
Xファイルがなぜか1ファイルしかロードできない。
原因として考えられるのは何でしょうか。
変数もグローバルで[MAX_MESH]を付けているのに、
最後にロードした物しか見れません。
変数の上書きも考えて、いろいろグローバルにして{MAX_MESH]をつけてもダメでした。
ご教授、お願いしますm(__)m

434:デフォルトの名無しさん
08/05/23 19:15:44
// メッシュ関連
LPD3DXMESH pMeshApp[MAX_MESH];
LPD3DXBUFFER pMeshAdjacency[MAX_MESH];
LPDIRECT3DTEXTURE8* ppTexture[MAX_MESH];
D3DMATERIAL8* pMaterial[MAX_MESH];
DWORD meshSubsets[MAX_MESH];;
D3DXVECTOR3 meshCenter[MAX_MESH];
float meshRadius[MAX_MESH];
float meshfx[MAX_MESH],meshfy[MAX_MESH],meshfz[MAX_MESH]; // 移動位置
float meshax[MAX_MESH],meshay[MAX_MESH],meshaz[MAX_MESH]; // 回転
float meshsx[MAX_MESH],meshsy[MAX_MESH],meshsz[MAX_MESH]; // スケーリング
float nummesh[MAX_MESH];



435:デフォルトの名無しさん
08/05/23 19:19:01
/*---------------------------------------------
X-Fileの読み込み
---------------------------------------------*/
int LoadXFile(int n,float d,char* filename)
{
LPD3DXMESH pMesh;
LPD3DXBUFFER pMatBuf = NULL;
D3DXMATERIAL* pMat;
DWORD n,i,c,e;

nummesh[n]=d;

if(FAILED(D3DXLoadMeshFromX(filename,D3DXMESH_MANAGED,pD3DDevice,&pMeshAdjacency[n],&pMatBuf,&c,&pMesh)))
return FALSE;

DeleteMeshObject(n);
pMeshApp[n] = pMesh;



436:デフォルトの名無しさん
08/05/23 19:19:37

//マテリアルとテクスチャの設定
pMat = (D3DXMATERIAL*)pMatBuf->GetBufferPointer();
for(i=0;i<c;i++){
ppTexture[n] = (LPDIRECT3DTEXTURE8 *)malloc( 4*c );
pMaterial[n] = (D3DMATERIAL8 *)malloc( 4*c );
}
meshSubsets[n] = c;

for(i=0;i<c;i++){
pMaterial[n][i] = pMat->MatD3D;
pMaterial[n][i].Ambient = pMaterial[n][i].Diffuse;
ppTexture[n][i] = NULL;



437:デフォルトの名無しさん
08/05/23 19:20:22
//テクスチャ読み込み
if(pMat->pTextureFilename)
if(FAILED(D3DXCreateTextureFromFile(pD3DDevice,pMat->pTextureFilename,&ppTexture[n][i])))
return FALSE;
}
RELEASE(pMatBuf);

LPDIRECT3DVERTEXBUFFER8 pVB;
BYTE* pV;
pMesh->GetVertexBuffer(&pVB);
pVB->Lock(0,0,&pV,0);

pVB->Unlock();
pVB->Release();

if(pMeshApp[n]->GetFVF() != (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)){
pMesh = NULL;
pMeshApp[n]->CloneMeshFVF(pMeshApp[n]->GetOptions(),D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1,pD3DDevice,&pMesh);
pMeshApp[n]->Release();
pMeshApp[n] = pMesh;
D3DXComputeNormals(pMesh,NULL);
}
return TRUE;
}


438:デフォルトの名無しさん
08/05/23 19:21:43
//------------------------------------------------------------------------
//メッシュ表示
//------------------------------------------------------------------------
void dispMesh( int n )
{
// 表示位置を球体1へ移動
//メッシュの描画
D3DXMATRIX matWorld,matTrans;
if(n==0)meshfx[n]=-400;meshfy[n]=20;meshfz[n]=200;
if(n==1)meshfx[n]=-400;meshfy[n]=20;meshfz[n]=-200;
meshaz[n]=90;
for(DWORD i=0;i<meshSubsets[n];i++){
D3DXMatrixIdentity(&matWorld);
D3DXMatrixScaling(&matWorld,meshsx[n],meshsy[n],meshsz[n]);
D3DXMatrixRotationX(&matWorld,(meshax[n]*3.14f/180));
D3DXMatrixRotationY(&matWorld,(meshay[n]*3.14f/180));
D3DXMatrixRotationZ(&matWorld,(meshaz[n]*3.14f/180));
D3DXMatrixTranslation( &matTrans,meshfx[n],meshfy[n],meshfz[n]);
matWorld*=matTrans;
pD3DDevice->SetTransform(D3DTS_WORLD,&matWorld);
pD3DDevice->SetMaterial(&materialApp);
pD3DDevice->SetMaterial(&pMaterial[n][i]);
pD3DDevice->SetTexture(0,ppTexture[n][i]);
pMeshApp[n]->DrawSubset(i);
}
pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);


439:デフォルトの名無しさん
08/05/23 19:22:27
// 表示位置を元に戻す(表示位置と視点位置は同じっぽい)
D3DXMatrixIdentity(&matWorld);
pD3DDevice->SetTransform(D3DTS_WORLD,&matWorld);
pD3DDevice->SetStreamSource(0,NULL,0);
pD3DDevice->EndScene();
}


440:デフォルトの名無しさん
08/05/23 19:38:40
とりあえずメッシュを一つだけ管理するクラスを作ってそれらを複数持てば解決するんじゃないかな

441:デフォルトの名無しさん
08/05/23 19:44:25
バッファって普通はメインメモリに取られてるんですか?それともGPU?


442:デフォルトの名無しさん
08/05/23 20:15:37
やっぱりクラスにするしか内ですかね……。
C++はあんまりよく知らないのですよ。頑張ってみます。

443:デフォルトの名無しさん
08/05/23 21:45:12
別にC++つかってクラスにする必要はない。
単におたくのソースが見づらくてよくわからんってだけだろう。

バッファがメインメモリかビデオメモリかは「自分で指定する」ものだ。
DirectXのリファレンスを暗唱できるまで読むがいい。

444:デフォルトの名無しさん
08/05/23 23:04:51
本に載ってたソースなのですが、見づらいですか。
本も選びようですね。

445:デフォルトの名無しさん
08/05/24 00:18:42
とりあえず、LoadXFile内で
ローカルに宣言されてる
LPD3DXMESH pMesh;
の値をいくらグローバルに入れようとしても無駄だと思う


446:デフォルトの名無しさん
08/05/24 02:05:25
DirectX End-User Runtime Web Installerをインストールしたら、DXのバージョンが10になった
DX9.0Cにはもう戻せないのかな?

447:デフォルトの名無しさん
08/05/24 02:35:18
10.0入ってるなら9.0c含んでるし

448:433
08/05/24 07:06:08
自己解決しました。
pMaterial[n] = (D3DMATERIAL8 *)malloc( 4*c );

pMaterial[n] = (D3DMATERIAL8 *)malloc( sizeof(D3DMATERIAL8)*c );
にしたらちゃんと複数体表示できました。
ありがとう御座いました。

449:デフォルトの名無しさん
08/05/24 18:40:32
DirectX SDK March 2008のインストーラを実行すると、

DirectX Runtime Setup Failed(-9)

An internal system error occured.
Please refer to DXError.log and DirectXlog in your Windows floder to determine problem.

と出ますが、Vistaじゃないとだめだとかありますか?

450:449
08/05/24 18:43:10
DXError.logを見ると、何らかのライブラリが必要みたいなのですが・・・
--------------------
[05/24/08 18:31:16] module: DSETUP(Mar 5 2008), file: dsetup.c, line: 442, function: LoadDSetup32

Failed API: LoadLibrary()
Error: (126) - 指定されたモジュールが見つかりません。



--------------------
[05/24/08 18:31:16] module: DSETUP(Mar 5 2008), file: dsetup.c, line: 155, function: DllMain

Failed API: CloseHandle()
Error: (6) - ハンドルが無効です。


(略)

451:デフォルトの名無しさん
08/05/24 19:34:45
ファイルがこわれてたんじゃねーの

452:449
08/05/24 21:21:39
3回ダウンロードしてみて、解凍されたファイルを比較しても全部同じでした
既にWindowsにあるファイルが正常か検証する方法ってあるんですかね

453:デフォルトの名無しさん
08/05/24 21:41:34
WindowsXPでも問題なくインスコできてるが・・・

454:デフォルトの名無しさん
08/05/25 09:25:28
著作権フリーのXファイルがたくさんおいてあるページないですか?

455:デフォルトの名無しさん
08/05/25 09:38:35
ありません
比較的数の多いメタセコイアからコンバートすれば?

456:デフォルトの名無しさん
08/05/25 11:25:57
direct xってそもそも何?

457:デフォルトの名無しさん
08/05/25 13:06:02
>>456
各種ハードウェアアクセラレータを利用するためのインターフェース。
DirectX以前からアクセラレータはあったが、各製品ごとに専用のコードを
書く必要があった。
それらに統一されたアクセス手段を提供するものがDirectX。

いつの間にか立場が逆転して、DirectXが先に仕様を決めてハードウェアで
それを実装するという関係になったけどね。

458:デフォルトの名無しさん
08/05/25 13:06:51
ゲームが作りたかったビルゲイツの夢 のはずだった

459:デフォルトの名無しさん
08/05/25 13:11:02
>>457
㌧クス

460:デフォルトの名無しさん
08/05/25 13:15:47
Windows3.1の時代に、カンファレンスかなんかだったかな?
ビルゲイツがゲームをWindows上でプレイするのが当たり前になるって言って
会場が失笑の嵐に包まれたけど、ほんとに当たり前になっちゃったね
ビルゲイツはすごいね


461:デフォルトの名無しさん
08/05/25 13:16:34
GDIなんざ使ってたら遅くてゲーム作れねぇよ!

とDOSでブイブイ言わしてたゲーム開発者達に怒られたから

462:デフォルトの名無しさん
08/05/25 13:24:56
古きよき時代という奴だな・・・
当時のブイブイ言わせてた人間は今どれほど残ってるのだろうか・・・

463:デフォルトの名無しさん
08/05/25 13:38:19
処理リソース占有させろッ!

464:デフォルトの名無しさん
08/05/25 13:53:42
今じゃWindows上どころか、ブラウザ上でゲームしてるしな。

465:デフォルトの名無しさん
08/05/25 13:54:38
携帯上でJavaVM動かしてゲームとか想像の範疇外だったな

466:デフォルトの名無しさん
08/05/25 14:27:09
VBなんですが
透過色をメッシュに設定する方法がわかりません
どなたか教えてください

CだとD3DXCreateTextureFromFileExって関数で設定できるみたいなんですが・・・

467:デフォルトの名無しさん
08/05/26 11:45:59
>>462
30代後半だけど、同じ会社でまだ生き残ってる

468:デフォルトの名無しさん
08/05/26 13:28:15
工画堂乙
ファルコム乙
チャンピオンソフト乙

・・・もう思いつかねえや

469:デフォルトの名無しさん
08/05/26 19:20:15
ゲームパッドのボタンをフックしたいんだけど、どうすればいい?

470:デフォルトの名無しさん
08/05/26 20:11:25
DirectInputとマルチメディアAPIにフック仕込むだけだろ

471:デフォルトの名無しさん
08/05/26 20:36:26
>>470 ごめん、よくわかんない..
参考URLorサンプルコードplz

472:デフォルトの名無しさん
08/05/26 21:24:23
偽装カーネルでフックすればいいだろ

473:デフォルトの名無しさん
08/05/26 23:23:00
>>471
470の説明で分からないなら無理。
API一発でできるようなものではない。
数百行程度のコードが必要。

474:デフォルトの名無しさん
08/05/27 09:42:05
>>472
kwsk

475:デフォルトの名無しさん
08/05/27 09:47:58
>>474
がわが違うだけで結局>>473と同じ事だよ

476:デフォルトの名無しさん
08/05/27 11:42:08
Core2Quad Q9450でPS2エミュをやると、実機と違い処理オチせず、激ムズになることが判明
スレリンク(news板)l50


477:デフォルトの名無しさん
08/05/27 21:41:16
どなたか>>466お願いします

478:デフォルトの名無しさん
08/05/27 23:01:32
多分、DirectX使いでVB使いな人は希少なんじゃね?あくまで直感だが。

479:デフォルトの名無しさん
08/05/27 23:28:59
VBからDirectXなんて、どうやって使うのかも知らないしな。
Managed DirectXは無くなったんだよね?

480:デフォルトの名無しさん
08/05/27 23:41:51
非公式だけどSlimDXなんてのもあるよ
.NETでDirectX触るならC#の方がまだポピュラーだね
XNAやWPFではVBはお呼びでないし

481:デフォルトの名無しさん
08/05/27 23:44:09
DirectX10をダウンロードしようとすると「Internet Explorer ではこのページは表示できません」の画面になります
そもそもDirectXのHPに行くだけでその画面になったりします
どこか一つくらいエラーにならず落とせる場所はないかと探してたら
ここで URLリンク(jp.brothersoft.com) DirectX 9.22.1284は落とせました
しかしインストールしようとすると 「ファイルをダウンロードできませんでした」と失敗します

DirectXに嫌われているんでしょうか。

482:デフォルトの名無しさん
08/05/27 23:47:31
MSに嫌われてるんじゃね?
割れ使ってるとかさ

483:デフォルトの名無しさん
08/05/27 23:58:19
割れとかは使ってませんが、マイクロソフトのページ行ってみたら見れませんでした
MSに嫌われたようです

484:デフォルトの名無しさん
08/05/28 00:00:38
そういえばMSのダウンロードセンターは、正規のOSのチェック通らないと
落とせないな。

485:デフォルトの名無しさん
08/05/28 08:46:07
>>466
透過色をメッシュに設定するってことはテクスチャじゃなくてマテリアルの話では?と突っ込んでみる
そもそもVB6なのかVB.netなのか…

VB6だともう資料が少なすぎるな

486:デフォルトの名無しさん
08/05/28 15:57:13
>>483
ブラウザは何?
IE5.5とか?

487:デフォルトの名無しさん
08/05/28 19:12:00
割れって言葉を理解できてないゆとりかもしれない

488:デフォルトの名無しさん
08/05/28 19:17:31
>>485
.NETです
マテリアルに透過色を指定する方法教えて下さい

489:デフォルトの名無しさん
08/05/28 20:17:29
ハッピーマテリアル

490:デフォルトの名無しさん
08/05/28 20:37:09
>>483
VISTAじゃねぇとか?

491:デフォルトの名無しさん
08/05/29 08:48:29
1.メタセコイアかなんかでマテリアル設定の透明度を設定してXファイル作成
  アルファ情報が出力できないようなツール使ってるんならテキスト出力して手動で書き換え
2.普通にメッシュロード
3.普通にテクスチャロード
4.アルファブレンド関連の設定
5.レンダリング

つーか基本的な流れはManaged(.net)だろうがVB6だろうがC++だろうが変わらない
気をつけるのはテクスチャ張る場合はカラーとの合成方法か

後はmanagedのリファレンス嫁
つ URLリンク(www.microsoft.com)

これもダウンロードできないとか言うなよ

492:デフォルトの名無しさん
08/05/29 11:17:19
ディスク上のPNG画像からテクスチャを読み出すときはD3DXCreateTextureFromFileExを使うが
すでにPNG画像ファイルがメモリ上に読まれていて開始位置ポインタとサイズを持っている場合
どうすればいいだろう?わざわざ読ませるだけのために一時ファイル作るのもどうかと思うし……

493:デフォルトの名無しさん
08/05/29 11:20:14
>>492 自己レス。
D3DXCreateTextureFromFileInMemoryExってのがビンゴかな?

494:デフォルトの名無しさん
08/05/29 11:24:31
質問です。
DX9とC++でゲームを作っているのですが、
二十枚程度のpng画像(アルファつき・VGA以下)をテクスチャとして読み込むと、
メモリ使用量が80MBほど上昇してしまいます。
画像は全部あわせてもせいぜい4~5MBなのに、どこで20倍になってるんでしょうか?
ミップマップは、1つしか作ってないはずなのですが・・・。

495:デフォルトの名無しさん
08/05/29 11:30:18
>>493
ビンゴ!

>>494
pngは圧縮かかってるからな
全部BMPに変換して合計容量*1.33すると80MBになるんでね?
圧縮状態で読み込みたいならddsファイルにするといい

496:デフォルトの名無しさん
08/05/29 11:30:56
ミップマップ1つなら1.25か

497:デフォルトの名無しさん
08/05/29 11:38:24
>>495-496
音速レスありがとうございます。
なるほど・・・考えてみれば、元が何だろうとテクスチャにした時点では無圧縮に揃ってしまうのですね。
計算したら大体合っていたので、これからddsを試してみます。

498:デフォルトの名無しさん
08/05/29 17:21:05
質問です。
VS2005+DirectX9.0cSDKでWeb見ながら学習開始したのですが、
わかりやすい本が一冊欲しいなと感じています。

・ポインタ、参照、STLが普通に使える程度のC++使い
・DXライブラリでマインスイーパ、テトリス、インベーダー、ペンゴが作れる。
・ペンゴが完成して、次は3Dに行きたくてDXライブラリ卒業
・Seleneをインスコしたが、DirectXの基礎を理解していないので「出来合いを使わされてる」感が嫌
・DirectX9.0cSDK学習開始←いまこのへん

こんな程度のレベルですが、お薦めの書籍はありましたら教えてください。


499:デフォルトの名無しさん
08/05/29 17:24:02
498です。
「普通に使える」とかいって偉そうな表現になってすいません(涙)
なんと表現して良いのか分かりませんが、とりあえず、意味を分かって使えるという程度です。
ホントすんません。
今後気をつけます。


500:デフォルトの名無しさん
08/05/29 17:45:58
>>498
入門は、みんな大体、I/O別冊シリーズかもしれない

Amazon.co.jp: 書籍版 DirectX9実践プログラミング (I・O BOOKS): 第二I O編集部: 本
URLリンク(www.amazon.co.jp)


入門に使えるか知らないけど
個人的には、これがお勧め。
Amazon.co.jp: DirectX逆引き大全500の極意―Visual C++2002/2003/2005対応: 鎌田 茂雄: 本
URLリンク(www.amazon.co.jp)

まあ、たくさんありすぎるので
書店で立ち読みしまくってしっくり来るやつ買えばいいんじゃね。

DirectX関連書籍たくさん買ってしまったって人多そう


501:デフォルトの名無しさん
08/05/29 17:52:18
逆引き発売から2年もたってたのか…
最近時間の流れが速すぎる

502:デフォルトの名無しさん
08/05/30 00:24:11
リファレンスが書籍で売られてたときから
DirectXに触ってるけどちょっと前と比べて
最近は関連書籍の数が増えて恵まれすぎだろう
これ1冊でOKみたいな本は相変わらずないが
部分部分みれば面白いこと書いてある本がいっぱいある
この前本屋であまりの数に吹いたぜ

503:デフォルトの名無しさん
08/05/30 02:08:23
シェーダの深い使い方とか解説してる本が欲しいな
ヘルプ見ればわかる事を延々買いてある本の多い事

504:デフォルトの名無しさん
08/05/30 02:34:17
>シェーダ
t-potさんの本ぐらいかな。
あー、でも最近、エフェクト系の本
シェーダで書いてるな

505:デフォルトの名無しさん
08/05/30 08:23:27
最終的にはGame Programming Gemsあたりか

506:デフォルトの名無しさん
08/05/30 09:45:04
GPU gems1とCg Tutorialがweb公開されたからそれで何年か前のシェーディングはなんとかなりそう

507:デフォルトの名無しさん
08/05/30 10:33:26
英語よめねーorz

508:デフォルトの名無しさん
08/05/30 10:35:41
日本語版見つけました
ページ数が半端ねぇw

509:デフォルトの名無しさん
08/05/30 10:39:06
日本語は途中まででしたorz
英語で頑張るか

510:デフォルトの名無しさん
08/05/30 14:50:39
初心者はそんなもん読まんでええ
普通に使えるようなってから出直せや

511:デフォルトの名無しさん
08/05/31 17:15:24
シェーダプログラムでエラー内容とかでないんだけど,
Cのコンパイラみたいにエラー内容出すこととかできないでしょうか?

512:デフォルトの名無しさん
08/05/31 18:04:26
コンパイラつかえよ

513:デフォルトの名無しさん
08/05/31 18:11:31
D3DXCreateEffect系ならエラー文字列受け取るためのインターフェイス指定するだろ


514:デフォルトの名無しさん
08/05/31 19:31:36
>>513
見落としていましたorz

解決しました。ありがとうございます。

515:デフォルトの名無しさん
08/06/02 15:08:11
xファイル(テキスト)から座標系などの数字情報を取り出して
独自フォーマットとして出力する場合はテキスト解析プログラム
で処理するよりはDXの関数で読み込んで、情報を取得して
からの方が楽ですかね?


516:デフォルトの名無しさん
08/06/02 15:13:39
んだんだ
xファイルは面倒だ

517:デフォルトの名無しさん
08/06/02 17:37:48
>>516
レスどうもです。

そういえばメッシュ読む関数って特に初期化はいらないんですよね?


518:デフォルトの名無しさん
08/06/02 17:47:14
どの初期化だ?
D3DXMeshだっけか?ならいらないけど
デバイスは初期化しとけよ

519:デフォルトの名無しさん
08/06/02 17:49:27
>>518
あーすみません。
メッシュ読んでそこから座標データなんかを抜き出したいだけで
表示はしないプログラムになるんですが、メッシュ読むだけに
わざわざ画面周りの初期化もいるのかな・・・と思いまして・・・

520:デフォルトの名無しさん
08/06/02 19:24:20
>>515
どんなXファイルからも読み込めるフルスペックの実装をするとなると面倒だが、
特定のツールが出力するフォーマット限定なら、自分でパーサ書いても
大したことないかと。

メッシュ読み込む関数がD3DXLoadMeshFromXのことなら、Direct3Dの
初期化が必要。DirectXFileCreateなら必要ない。

521:デフォルトの名無しさん
08/06/02 19:24:22
おまんこだよ

522:デフォルトの名無しさん
08/06/02 20:51:24
VS2005 C#なので Managed になるのでだいぶ違うんですかね・・・^^;
一応読み込み部分はネットで調べてできたんですけど
そこから頂点情報とかの読み出しがさっぱりわかりませんorz

523:515
08/06/02 20:54:20
>>522は私です^^;

524:デフォルトの名無しさん
08/06/02 22:17:00
Managed使うとしてもアンマネージC++のサンプルくらいは読めるようになったほうがいいよ

525:515
08/06/02 22:22:39
>>524
あ、読めなくはないです。
もしかしてアクセス方法は変わってないです?

526:デフォルトの名無しさん
08/06/03 05:08:42
勝手版拾ってみた。
モニカだけ、裸になっても、
グラフィックが変わらないんだけど
何か足りない?

527:デフォルトの名無しさん
08/06/03 05:19:09
すごく・・・誤爆です

528:デフォルトの名無しさん
08/06/03 11:00:39
>>526
くわしく。どのスレにいけばいい?


529:デフォルトの名無しさん
08/06/03 14:24:31
先日xファイルを読み込む件を相談した者です。

頂点情報を拾ってくることができたのですが、今度は読み込んだ情報が
xファイルの中の情報と違っているという現象が起きました。

テストで使っているサンプルxファイルはメタセコイア付属のサンプル meka.mqo 使っています。
meka.mqoは四角ポリゴンで作られていますので三角ポリゴンに変更したあと
標準の出力機能よりxファイルを指定して出力しています。(法線、UV、頂点カラーすべて出力)

このとき、xファイルの情報では面の数は752 頂点数は1098となっています。
これをこのたび作ったxローダーで読み込むと面の数は752のままですが
頂点数が1171と増加しております。
また、x座標データだけをリストボックスに出力してみると
増加している部分だけNaN(非数値)となっています。

これは何が原因なんでしょうか

530:デフォルトの名無しさん
08/06/03 14:31:14
「このたび作ったxローダー」とやらがバグってるのでは

531:デフォルトの名無しさん
08/06/03 14:33:48
>>530
ローダーそのものはDirectxのMesh.FromFileで読み込んで
NumberVerticesから数字を得ているだけで自前では何もやってないんですけどね^^;

532:デフォルトの名無しさん
08/06/03 15:00:46
同じ座標で法線の異なる頂点が分割されてるとか、そういうことではないかな
1つの頂点に複数の法線を持つことは出来ないから
NaNの方はよくわからないけど・・・

533:デフォルトの名無しさん
08/06/03 15:15:58
URLリンク(uproda.2ch-library.com)

これはメタセコの基本図形の四角を三角ポリゴンに
で分割後xで出力し、今回のロダで読み込んだ状態です。

こっちがメタセコが出力したx
URLリンク(uproda.2ch-library.com)

534:デフォルトの名無しさん
08/06/03 16:22:23
>>533
法線の異なる頂点を分割したとすれば24という頂点数は計算が合う
表示されてる座標値がおかしいのはそのプログラムのバグでは

535:デフォルトの名無しさん
08/06/03 16:24:44
単純な線の描画はLineToで大丈夫でしょうか?

536:529
08/06/03 16:39:05
そんな凝ったことはしてませんのでバグでは無いはずなんですけどね・・・
ソースです。
URLリンク(uproda.2ch-library.com)

法線の話がでたのでメタセコから出力する際法線無しにして
ローダー側で計算ロジックを入れてみました。
問題なく1098となりました。

ということはメタセコの出力した法線に不都合がありMeshが
分割して増やしたと考えるのが妥当でしょうか?

537:デフォルトの名無しさん
08/06/03 16:45:23
>>536
NumberBytesPerVertex=36バイトだから、
PositionNormalColored (position=12, normal=12, color=4, 合計28バイト) ではサイズが合わなくないか

不都合というか・・・ Xファイルは同じ頂点に異なる法線を指定できるフォーマットだから、仕方ないのでは
そう考えるのが妥当でしょう

538:流石だ
08/06/03 16:56:00
小前提:結果が違う。
大前提:俺は正しい。
結論:ツールがおかしい。

539:デフォルトの名無しさん
08/06/03 17:03:16
OSのバグに違いない

540:デフォルトの名無しさん
08/06/03 17:47:25
>>538 けなしてくれてありがとうw
>>539 茶化してくれてありがとうw

>>537
おかげさまで解決しました。
ちなみにCustomVertexでアクセスしようとすると36バイトで見る方法がないのに
メッシュに座標、法線、UV、頂点カラー入ってると全部読み込む変な仕様なんですね。

あとメタセコも頂点カラー出力しない設定にしても出力しちゃうってのもはまる原因でしたorz

541:デフォルトの名無しさん
08/06/03 18:11:26
CustomVertex.PositionNormalColored -> position=12,normal=12,color=4 合計28バイト
CustomVertex.PositionNormalTextured -> position=12,normal=12,UV=8 合計28バイト

CustomVertex.PositionNormallColorTextured or CustomVertex.PositionNormalTexturColored (36バイト)
という構造体は無いのにMesh.FromFileは読むのね・・・・


542:デフォルトの名無しさん
08/06/03 18:11:49
>CustomVertex.PositionNormalTextured -> position=12,normal=12,UV=8 合計28バイト
CustomVertex.PositionNormalTextured -> position=12,normal=12,UV=8 合計32バイト

543:デフォルトの名無しさん
08/06/03 18:25:03
DirectX9.0の日本語ヘルプの「ステップ 1 : ワールド トランスフォーム行列の定義」
で三角形が回りません。これは回らないものなのですか?
文章もソースもどう見ても回しているようにしか見えないのですが、何故か回りません。
しかしタイトルが定義とあるので、定義だけしているとも解釈できます。

回す部分のソース
D3DXMATRIX matWorld;
D3DXMatrixRotationY( &matWorld, timeGetTime()/150.0f );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );

何故回らないのか、教えてください><

544:デフォルトの名無しさん
08/06/03 18:38:02
>>533
NaN以前に、立方体で-1,0,1と3種類の座標値が出てくる時点で
おかしいだろう。そこで気づかないと駄目。

545:デフォルトの名無しさん
08/06/03 18:45:36
>>544
おかしいのは気がついてましたが、法線の分割とかいうのが出てきたので
その関係で勝手に生成されたポイントかとも思ってましたので・・・

まだプログラミング経験浅いものですみません^^;

546:543
08/06/03 19:19:15
自己解決しました

547:デフォルトの名無しさん
08/06/03 20:18:26
>>528
モニカといえばロマサガしか思いつかなかったので
「勝手版」とそれっぽいので検索してみたら案の定だった

548:デフォルトの名無しさん
08/06/05 04:55:23
DirectX9.0c/Direct3Dで単純な四角形を二つレンダリングしてみましたが、
ワールド変換で向きを変えると、表示が異常になります。深度バッファは有効にしてます。
↓イメージ
URLリンク(www-2ch.net:8080)

どうすれば、正常に表示されるのでしょうか?

549:デフォルトの名無しさん
08/06/05 09:33:18
絵を見る限りZファインティングっぽい。
Z座標がかぶってるんじゃね?

550:548
08/06/05 12:22:41
なるほど。AutoDepthStencilFormat を D3DFMT_D16 から D3DFMT_D32 に変えたら、
とりあえず正常に表示されるようになりました。

551:デフォルトの名無しさん
08/06/05 13:16:12
あとは、カメラのminZとmaxZを必要最小限にすると解決する場合もあるかな

552:デフォルトの名無しさん
08/06/05 18:25:58
DirectXを利用し製作されたゲームが起動しないor画面が真っ暗か灰色ですぐ落ちる
状態です。
「モノポリー2」では、「お読みください」テキストに対処法があったので
今は普通にプレイできているのですが、
その他多数のゲームが起動できません。
「お読みください」によると
「Direct3D ハードウェアのドライバに問題がある可能性がある」ようなのですが、
どのように対処すればよいのでしょうか?

553:デフォルトの名無しさん
08/06/05 18:32:53
>>552
ここはプログラム「技術」に関する板でございますので、
購入したゲームのメーカーにお問い合わせくださいませ。購入したお客様には親切に対応してくれます。

554:デフォルトの名無しさん
08/06/05 18:39:53
>>552
OS再いんすとーる

555:デフォルトの名無しさん
08/06/06 17:14:34
URLリンク(www.nicovideo.jp)

556:デフォルトの名無しさん
08/06/08 06:42:38
>>552
素直に新しいパソコン買った方が早い

557:デフォルトの名無しさん
08/06/09 19:57:50
ジョイスティックのキーストロークを送信できるAPIってありますか?

558:デフォルトの名無しさん
08/06/09 20:02:41
BOTを作りたいならWin32APIスレでいじめられてくるといいよ

559:デフォルトの名無しさん
08/06/09 22:23:46
DX8.1でサーフェスの内容をテクスチャにCopyRectsしようとしています。
しかし、どうしても出来ません。設定内容になにか追加する物がありますでしょうか。
FPSで重さを量ってみると、
 CopyRects無し -> 400FPS
 サーフェス->テクスチャのCopyRects有り -> 350FPS ( 実行されている? )
 テクスチャ->サーフェスのCopyRects有り -> 400FPS ( 実行されていない? )
以上の結果になりました。何か抜けている物などがありましたらご指定下さい。m(__)m

●D3D初期化
ZeroMemory(&d3dppApp,sizeof(d3dppApp));
d3dppApp.BackBufferCount = 1;
d3dppApp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
d3dppApp.Windowed = TRUE; //ウィンドウモード
d3dppApp.SwapEffect = D3DSWAPEFFECT_DISCARD; //垂直同期でフリップ
d3dppApp.BackBufferFormat = dmode.Format;
d3dppApp.BackBufferFormat = D3DFMT_X8R8G8B8; // フォーマット
d3dppApp.EnableAutoDepthStencil = TRUE; // ステンシルバッファ作成
d3dppApp.AutoDepthStencilFormat = D3DFMT_D16; // 16bit Zバッファ作成
d3dppApp.BackBufferWidth = 800;
d3dppApp.BackBufferHeight = 600;
pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_HARDWARE_VERTEXPROCESSING,&d3dppApp,&pD3DDevice);


560:デフォルトの名無しさん
08/06/09 22:25:01
●テクスチャ初期化
D3DXCreateTexture(pD3DDevice,1024,1024,1,D3DUSAGE_RENDERTARGET,D3DFMT_X8R8G8B8,D3DPOOL_MANAGED,&pTexture0[MAX_CRTA]);
●メインルーチン
pTexture->GetSurfaceLevel( 0, &pTmpSurface );
pMainSurfaceへ描画
pD3DDevice->CopyRects(pTmpSurface0,&rc,1,pMainSurface,NULL);
pTmpSurfaceへ描画
pD3DDevice->CopyRects(pMainSurface,&rc,1,pTmpSurface0,NULL);
●テクスチャ表示
pD3DDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pD3DDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);
pD3DDevice->CreateVertexBuffer(sizeof(D3DVERTEX) * 4,0,D3DFVF_VERTEX,D3DPOOL_MANAGED,&pTextureVB0);
pTextureVB0->Lock(0,0,(BYTE**)&pV,0);
pvを設定
pD3DDevice->SetStreamSource(0,pTextureVB0,sizeof(D3DVERTEX));
pTextureVB0->Unlock();
pD3DDevice->SetTexture(0,pTexture0);
pD3DDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,0,2);


561:デフォルトの名無しさん
08/06/09 22:52:30
画面は最終的に、黒にpTmpSurfaceへ描画したものになっております。
pD3DDevice->CopyRects(pMainSurface,&rc,1,pTmpSurface0,NULL);

●テクスチャ表示
では、どちらを行っても同じ結果になっております。

562:デフォルトの名無しさん
08/06/09 23:29:55
デバッグランタイムにすれば、何が悪いのか教えてくれるかと

563:デフォルトの名無しさん
08/06/10 03:15:41
>>562
ご指摘、ありがとう御座いました。
ランタイムはデバッグで行い、D3DSpyを使ったりしてみても変化が御座いません。
pD3DDevice->CopyRects(pTmpSurface0,&rc,1,pMainSurface,NULL);
が、TextureとpMainSurfaceの型違いで、Copyされていないっぽいです。
ためしに、CreateImageSurfaceで、pMainSurfaceから複製したサーフェスには、
CopyRectsが出来ています。(双方向)
テクスチャになにかの型が足りないのかと思いますが、思いこみかもしれませんので、
ご指摘、お願いいたします。

564:デフォルトの名無しさん
08/06/10 05:15:49
>>563
pMainSurfaceとrcのコードがないから、それだけでは何とも言えない。
っていうか、本当にデバッグランタイムで何も言われない?
失敗してるなら必ずデバッグメッセージ出てると思うが。

565:デフォルトの名無しさん
08/06/10 12:20:49
>>564ご指摘ありがとう御座います。

デバックメッセージは何も言ってきません。
デバックモードは、スタートメニューから[DX9]->[Install Debug]で設定してます。

RCは、rc.top=0;rc.bottom=600-1;rc.left=0;rc.right=800-1;
と定義しました。NULLにすると、pTmpSurfaceが1024*1024なのでハングしてしまいました。

pMainSurfaceの方は確実に描写されていました。
別のコクパチブルサーフェス(Bs)へCopyして、Bsへ描画して、pMainSurfaceへ書き戻した場合、うまく行きました。
最後のCopyRectsを無くすと、Bsへ描写した分は、ちゃんと描写されなかったです。
LPDIRECT3DSURFACE8 Bs;
pD3DDevice->GetRenderTarget(&Bs);
D3DSURFACE_DESC Desc;
Bs->GetDesc( &Desc );
pD3DDevice->CreateImageSurface(800,600,Desc.Format,&pMainSurface);
pD3DDevice->CopyRects(Bs,&rc,1,pMainSurface,NULL)
       Bsへ描画
pD3DDevice->CopyRects(pMainSurface,&rc,1,Bs,NULL)


566:デフォルトの名無しさん
08/06/10 16:37:11
自己レスですみません。テクスチャに直接描画する様にしたら問題なくなりました。

567:デフォルトの名無しさん
08/06/12 10:36:27
スプライトの上下反転表示って、出来る人いる?
自分の使ってるGF7600GSだとダメみたい。
rect.top=480
rect.bottom=0
でもダメで、
rect.top=0
rect.bottom=-480
もダメ。
データその物を反転して持たなくて甚目なのかな。

568:デフォルトの名無しさん
08/06/12 11:01:00
ID3DXSprite使ってという意味?
行列のスケーリングに反転指定すりゃできんじゃねーの

569:デフォルトの名無しさん
08/06/12 12:26:01
UVをいじるとか・・・

570:デフォルトの名無しさん
08/06/12 15:28:35
>>568
ありがとさん。スケーリングの方をつかうんですね。ちゃんと動きました。
>>569
こっちもレスさんきゅう。

571:デフォルトの名無しさん
08/06/13 00:59:24
>甚目
「はだめ」なのね。

572:誰か一緒に考えてください
08/06/13 22:45:22
もしプロトコルを開発するならどんなプロトコルにしますか??


573:デフォルトの名無しさん
08/06/13 23:52:45
TCP/IPみたいなやつ
でもちょっと高速なやつ

574:デフォルトの名無しさん
08/06/13 23:55:30
要求仕様を明らかにせよ

575:デフォルトの名無しさん
08/06/14 00:02:17
自前で作って
良くわからんバグチェックに時間費やすくらいなら
すでにあるもの使ったほうがいいと思うが

576:デフォルトの名無しさん
08/06/14 00:02:37
>>572
まずは他人に何をしたいのか伝える程度のプロトコルを身につけろ。
開発云々以前の問題。

577:デフォルトの名無しさん
08/06/14 00:28:54
フルスクリーンでげーむをやろうとしたところ、起動できなかったので、
DirectX診断ツールのDirectDrawでテストしたところ
DirectDraw テスト結果 : エラー - ステップ 17 (SetDisplayMode を 640x480x16 に): HRESULT = 0x80004001 (未実装)
とでました解決策などありますか?

578:デフォルトの名無しさん
08/06/14 09:48:44
>>577
プログラムを開発する事に対する関連性を述べよ

579:デフォルトの名無しさん
08/06/15 03:22:14
低レベルですが失礼します。
directX 9.0のウェブセットアップをダウンロードしたのですが、
セットアップをしようとすると、インターネットに接続している状態
でも「ネットワーク接続を確認してください」と出てしまいます。
原因等、よろしければお願いします。
あと、directX 9.0はSP1の状態でも大丈夫でしょうか?

580:デフォルトの名無しさん
08/06/15 03:24:55
>>579
>>578

581:デフォルトの名無しさん
08/06/15 12:04:57
文字表示なんですが、リアルタイムでフルカラーで表示出来るようにするには、
LockRectしか無いでしょうか。
指定された8色とかでしたら、文字は抜きのテクスチャにして、
ベースの色テクスチャを抜き出すという方法が使えると思いますが、
フルカラーでしたらどんな方法がありますでしょうか。

582:デフォルトの名無しさん
08/06/15 12:22:06
>>581
ID3DXFontはどうかね

583:デフォルトの名無しさん
08/06/15 12:25:33
>>581
αで文字を描いて、色は頂点カラーで与える。

584:デフォルトの名無しさん
08/06/15 13:44:07
ピクセルシェーダーでおけ

585:デフォルトの名無しさん
08/06/15 22:33:19
カメラにレンズ効果を付け加えるにはどうしたらいいですか?


586:デフォルトの名無しさん
08/06/16 09:45:46
フレア、収差、立体視、どれ?

587:585
08/06/16 09:52:28
たとえば魚眼レンズみたくしたいです。

588:デフォルトの名無しさん
08/06/16 10:22:28
単純に視野角を広げればいいんじゃね?

589:デフォルトの名無しさん
08/06/16 10:24:08
ひずませたいんじゃね?

590:デフォルトの名無しさん
08/06/16 14:11:05
>>587
シェーダーつかうNE

t-pot『Fish Eye』
URLリンク(tpot.jpn.ph)


591:デフォルトの名無しさん
08/06/16 15:02:37
>590は対角魚眼だな。全周魚眼にしたいならパラメータを調整して、更に範囲外の処理もしなくてはいけない。

592:デフォルトの名無しさん
08/06/16 15:27:06
で、でたー

593:デフォルトの名無しさん
08/06/17 22:05:55
バックバッファサイズ640*480のフルスクリーンで動作するアプリケーションを作ったのですが
アプリを終了してフルスクリーンから復帰すると他のウィンドウのサイズが
640*480に強制的に変化してしまう現象に悩まされています
原因に心当たりがある方いらっしゃいませんでしょうか
SDKはDirectX9/December 2004を使ってます

594:デフォルトの名無しさん
08/06/17 22:18:02
ごく希に、他のウインドウの表示位置がずれたり、640*480になるときがある。
しかし、常時なら、
バグで終了してないか?
ちゃんとリリース処理をしているか?
QuitMessageを使っているか?
細かくプログラムを切っていって、原因を突き止めないと何とも言えない。

595:デフォルトの名無しさん
08/06/17 23:10:50
DirectDrawにその問題あった気がすんな。
アプリ終了前にちゃんとAPIを通してウィンドウモードに戻してみ?

596:デフォルトの名無しさん
08/06/17 23:15:24
きちんと戻したければ、各ウインドウのサイズを記憶しておいて、自己責任できっちり戻せ。
大して手間のかかる処理じゃない。

597:デフォルトの名無しさん
08/06/18 00:12:31
画面モードを元に戻さずReleaseしてる例ならよく見る罠。
SetCooperativleLevelな。

598:デフォルトの名無しさん
08/06/18 00:17:00
効率の良い線や四角形の描画方法ってありますか?

599:デフォルトの名無しさん
08/06/18 00:23:42
ありません

600:デフォルトの名無しさん
08/06/18 00:34:21
ブレゼンハムのことか?

601:デフォルトの名無しさん
08/06/18 01:50:59
アニメーションや親子関連の情報が入ってるXファイルの
フォーマット解説しているサイトとかありませんかね?

602:デフォルトの名無しさん
08/06/18 13:07:41
>>596
可能です。
以上。
↓次どうぞ

603:デフォルトの名無しさん
08/06/18 14:09:54
あて先を間違ったレスって恥ずかしいよね

604:デフォルトの名無しさん
08/06/18 23:32:18
テクスチャーを張ったポリゴンの色を変えたいんだけどどうすればいいんだろう?
マテリアルのディフューズ色を変えても変わらなかった

具体的には灰色のテクスチャーを張っていて、色々、色を変えたいなと思って

誰か教えてくだせえ



605:デフォルトの名無しさん
08/06/19 00:34:43
頂点カラーでぐぐれ。

それ以前にデフューズいじって変わらないのはおかしいが。

606:デフォルトの名無しさん
08/06/19 08:44:51
言葉がたりなかったんだけど、ポリゴンっていうかXファイルのモデルの色を変えたかったんだ。
モデルにしても頂点カラーで色を変えられそうだけどコストかかりそうだね

なんか良い方法ないかなあ

607:デフォルトの名無しさん
08/06/19 10:00:40
>>606
シェーダーパラメーターでやればほぼノーコストだろう

608:デフォルトの名無しさん
08/06/19 10:32:51
>なんか良い方法ないかなあ

他の方法を模索する前にちゃんとマテリアルのデフューズで
変えられるようになるのが先です

609:デフォルトの名無しさん
08/06/19 10:52:14
いいこというね

610:デフォルトの名無しさん
08/06/19 13:23:31
低レベルな質問で申し訳ありません
カメラの回転のトラブルなんですが カメラ中心の回転とカメラの移動を同時に
することができません ソースがおかしいのでしょうか?どなたかご教授お願いします
D3DXMATRIXA16 matView,matCameraPosition,matHeading,matPitch;
D3DXVECTOR3 vecEyePt( fCameraX,fCameraY,fCameraZ ); //カメラ(視点)位置
D3DXVECTOR3 vecLookatPt( fCameraX,fCameraY-1.0f,fCameraZ+3.0f );//注視位置

D3DXVECTOR3 vecUpVec( 0.0f, 1.0f, 0.0f );//上方位置
D3DXMatrixIdentity(&matView);
D3DXMatrixRotationY(&matHeading,fCameraHeading);
D3DXMatrixRotationX(&matPitch,fCameraPitch);
D3DXMatrixLookAtLH( &matCameraPosition, &vecEyePt, &vecLookatPt, &vecUpVec );
D3DXMatrixMultiply(&matView,&matView,&matHeading);
D3DXMatrixMultiply(&matView,&matView,&matPitch);
D3DXMatrixMultiply(&matView,&matView,&matCameraPosition);
pDevice->SetTransform( D3DTS_VIEW, &matView );

fCameraXで移動、fCamerapitchでカメラの回転です

611:デフォルトの名無しさん
08/06/19 13:54:41
>>610
そこでD3DXMatrixLookAtLHを使う意味がワカンネ

612:デフォルトの名無しさん
08/06/19 14:11:48
>>611
ご回答いただいたのにすいません。どこをどう直せばいいか
教えていただけたらありがたいです。


613:デフォルトの名無しさん
08/06/19 14:42:21
SetCooperativleLevel に一致する日本語のページ 約 件中 - 件目 ( 0.098231 秒)


SetCooperativleLevel に該当するページは見つかりませんでした。



614:デフォルトの名無しさん
08/06/19 14:44:08
クォータニオン?

615:デフォルトの名無しさん
08/06/19 15:35:07
×>SetCooperativleLevel
○>SetCooperativeLevel

616:610
08/06/19 16:14:55
原点中心の回転ならわかるのですがカメラ中心の回転がわかりませんでした、
調べ方が悪いのか書いてるページも見つからないのでどなたかご教授お願いします

617:デフォルトの名無しさん
08/06/19 17:02:37
At=Eye+向きたい方向ベクトル

618:デフォルトの名無しさん
08/06/19 17:04:25
DirectX7じゃないっすか

619:デフォルトの名無しさん
08/06/19 17:17:32
>>616
610のLookAtが余計。
あるいはLookAtだけで十分。(注視点を回転させる)

それと、View行列は概念上はカメラの位置や向きを設定する行列だが、
実際の計算ではカメラが動くのではなく世界を回転させてカメラの位置に
合わせるので、回転や平行移動に関する考え方が逆になる。

変換の順番も普通とは逆で、まず平行移動させてから回転させる。
移動量も回転角もマイナスを賭けた値で。
(View行列をかけた後の原点がカメラの位置になる)

620:デフォルトの名無しさん
08/06/19 18:44:41
みんなはクォータにオンバリバリ使ってるの?

621:デフォルトの名無しさん
08/06/19 21:18:46
Xファイルのアニメーションはクォータニオンだし
最低限の回転や補間や行列への変換くらいは理解してるじゃろ。

622:デフォルトの名無しさん
08/06/19 23:04:25
俺は理解してないけど使えるからいい
難しいことは頭のいい数学屋さんにお任せ

623:デフォルトの名無しさん
08/06/25 04:20:46
テクスチャを左右反転して表示させるにはどうすればいいのでしょう?
ポリゴンの裏表を逆にしたり、uv値をいじったりはしてみましたが寸でのところでうまくいきません。
2の乗数の大きさのテクスチャでなら、u値を負にしたらできたのですが…。
ご教授くださいませ。

624:デフォルトの名無しさん
08/06/25 04:33:23
頂点座標に対するuvが
左上uv 0,0
左下uv 0,1
右上uv 1,0
右下uv 1,1
だった場合

こうすれば
左上uv 1,0
左下uv 1,1
右上uv 0,0
右下uv 0,1


625:デフォルトの名無しさん
08/06/25 10:42:46
u = 1.0 - u かな

626:デフォルトの名無しさん
08/06/26 05:49:10
>>624,625
ありがとうございます、できました!
uv値がポリゴンの頂点に対応しているということをいまいち理解できていなかったようでした…。

627:デフォルトの名無しさん
08/06/26 18:08:27
DX8.1でIMEを制御、入力するにはどうしたらよいでしょうか。
参考URL等を教えていただけると幸いです。

628:デフォルトの名無しさん
08/06/26 19:19:16
>>627
DX9のSDKにIME制御のソースあるよ。
描画にID3DXSpriteを使っているところ以外はバージョン関係なさそうだから
DX8.1に移植もそんなに難しくは無いと思う。

629:デフォルトの名無しさん
08/06/26 19:36:26
> DX9のSDKにIME制御のソースあるよ。
これって下の実はバグソースなのに誰も気づかなかったやつだっけ?
URLリンク(watch.impress.co.jp)

630:デフォルトの名無しさん
08/06/26 20:02:17
>>629
こんなソース初めて見た
俺のもそうだが
社内の他のグラマのもぜんぜん違うソースだったな
ネタだろこれw

631:デフォルトの名無しさん
08/06/26 20:04:45
>>629
>結局のところ結局のところ

大事なので2回いいました

632:デフォルトの名無しさん
08/06/30 04:20:08
DirectDrawアクセラレータを無効にしたいんだが、診断ツール開いて変更しようとしたんだが、
「使用できます」とだけ表示されてて変更ができないんだが、どうしたらいいのだろうか?

OS Vista Home Premium
V/B Mobile Intel(R) 945 Express Chipset Family
DirectXのヴァージョン DirectX 10

633:デフォルトの名無しさん
08/06/30 10:16:00
ディスプレイのプロパティのトラブルシューティングとか、DirectX SDKのコントロールパネルとか。
そもそもVistaじゃ切れないんじゃないか?

634:デフォルトの名無しさん
08/06/30 17:01:25
>>629
どこかで聞いたことあると思ったら

URLリンク(watch.impress.co.jp)
俺映ってるじゃん

635:デフォルトの名無しさん
08/06/30 18:21:58
DirectXが使える人って頭いいと思う。

636:デフォルトの名無しさん
08/06/30 18:52:44
俺は、絵が描ける人って頭いいと思う。
10日間、がんばて30秒ドローイングしたけど
URLリンク(www.posemaniacs.com)
俺には絵は無理かも知れない

637:デフォルトの名無しさん
08/06/30 20:39:58
頭いいかどうかはわからないが、尊敬はする
俺にもたぶん無理>絵

638:デフォルトの名無しさん
08/06/30 21:53:29
絵は好きかどうかがすべてだと思うので
やっぱりDirectXのほうが頭いいと思う。

639:デフォルトの名無しさん
08/06/30 22:10:31
昔のI/Oのヘルプ丸写しのDirectX本はサンプルの絵がヘタすぎて
立ち読みするのが恥ずかしかった記憶が

640:もこ
08/06/30 23:47:51
DX(JUNE2008)をDLしてインストールしてたら最終設定でERRORが出てDXerrorとDX.log見てがんばってね♪
みたぃなことを言われたんですがどぅすればぃぃんですヵ?

PC初心者でぜんぜんゎかんなぃです。

あとXPです。



641:デフォルトの名無しさん
08/07/01 00:08:59
>>640
グラフィックボードの種類、DXerrorとDX.logの中身、スリーサイズを答えよ

642:もこ
08/07/01 01:02:47
S3 Graphics ProSavage + utilities

グラフィックってコレですヵ?

module: dsetup32(jun 6 2008), file: setup.cpp, line: 1701, function: CSetup::SetupForDirectX
InstallPlugIn() failed.

DXはよくゎかんなぃですがコレですヵ?

あと最後の質問はシークレットでぉ願ぃします。


643:デフォルトの名無しさん
08/07/01 01:25:26
S3ワロタ

644:デフォルトの名無しさん
08/07/01 09:27:33
オンボードのVIAチップセットのやつか

645:デフォルトの名無しさん
08/07/01 21:16:03
そこは10年以上前のoxygenとか持ってきて欲しかった

646:デフォルトの名無しさん
08/07/03 18:19:48
S3はインストールすら許されないんだな

647:デフォルトの名無しさん
08/07/04 13:59:13
質問させていただきます。
自宅のPCはインターネットを繋いでないのですが、サイトからのダウンロード以外で、DirectX9.0をダウンロードできる方法はあるのでしょうか?

648:デフォルトの名無しさん
08/07/04 14:02:21
別の場所でダウンロードするとか、添付されてる雑誌や本を買うとか、
MSDN入会するとか、MSに問い合わせるとかするのがいいんじゃない?

649:デフォルトの名無しさん
08/07/04 14:03:30
・体験版が入ってるCD-ROMつき雑誌
・自作PCで最近のパーツならパーツ付属CD-ROMに入ってることもある。
・市販ゲームに同封してる(かもしれない)
くらい?
あとはネットカフェととか友人宅で・・・
でも最近ってネットワークダウンロードになちゃってるので
一式ってDLできるのかな?

650:デフォルトの名無しさん
08/07/04 14:13:21
SDKの中に再頒布可能パッケージが入ってた気がするからそれ使えばいいんじゃないの
どっちにしろ>>648,>>649の言うように別の場所で落としてCDか何かに入れる必要があるけど


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