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


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

くだすれDirectX(超初心者用) part.3



1 名前:デフォルトの名無しさん [2007/10/29(月) 06:05:00 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
DirectX使いが優しくコメントを返しますが、
お礼はDirectXの布教と初心者の救済をお願いします。

DirectX Home Page
www.microsoft.com/japan/windows/directx/

前スレ
pc11.2ch.net/test/read.cgi/tech/1173535400

415 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:41:08 ]
これ以上バージョンを出すな!

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

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

418 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:38:46 ]
一番手軽なのはあくび

419 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:41:43 ]
生理現象を待つよりも目薬がおすすめ

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


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

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

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

423 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:48:23 ]
単にライティングしてないってオチじゃね?



424 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:12:42 ]
>>409
これはリアルタイムっぽいな
www.nicovideo.jp/watch/sm2449118

425 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:28:03 ]
>>420
スナップショットうp

426 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:58:10 ]
焦点距離はFOVから算出するものだろ。
フィルムサイズによっても変わるものだし。

428 名前:426 mailto:sage [2008/05/22(木) 18:22:05 ]
>>427
フィルムサイズとFOVが分かれば確かに焦点距離が求まるのですが、
フィルムサイズってどこで分かりますか?

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

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

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

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

431 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 18:31:01 ]
>>430

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

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

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

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

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



434 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:22:27 ]
// 表示位置を元に戻す(表示位置と視点位置は同じっぽい)
D3DXMatrixIdentity(&matWorld);
pD3DDevice->SetTransform(D3DTS_WORLD,&matWorld);
pD3DDevice->SetStreamSource(0,NULL,0);
pD3DDevice->EndScene();
}


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

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


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

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

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



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

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


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

447 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 02:35:18 ]
10.0入ってるなら9.0c含んでるし

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

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

449 名前:デフォルトの名無しさん mailto:sage [2008/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 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:34:45 ]
ファイルがこわれてたんじゃねーの

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

453 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:41:34 ]
WindowsXPでも問題なくインスコできてるが・・・



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

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

456 名前:デフォルトの名無しさん [2008/05/25(日) 11:25:57 ]
direct xってそもそも何?

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

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

458 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:06:51 ]
ゲームが作りたかったビルゲイツの夢 のはずだった

459 名前:デフォルトの名無しさん [2008/05/25(日) 13:11:02 ]
>>457
dクス

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


461 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:16:34 ]
GDIなんざ使ってたら遅くてゲーム作れねぇよ!

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

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

463 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:38:19 ]
処理リソース占有させろッ!



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

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

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

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

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

468 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 13:28:15 ]
工画堂乙
ファルコム乙
チャンピオンソフト乙

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

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

470 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:11:25 ]
DirectInputとマルチメディアAPIにフック仕込むだけだろ

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

472 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:24:23 ]
偽装カーネルでフックすればいいだろ

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



474 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:42:05 ]
>>472
kwsk

475 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 09:47:58 ]
>>474
がわが違うだけで結局>>473と同じ事だよ

476 名前:デフォルトの名無しさん [2008/05/27(火) 11:42:08 ]
Core2Quad Q9450でPS2エミュをやると、実機と違い処理オチせず、激ムズになることが判明
namidame.2ch.net/test/read.cgi/news/1211740649/l50


477 名前:デフォルトの名無しさん [2008/05/27(火) 21:41:16 ]
どなたか>>466お願いします

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

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

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

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

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

482 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:47:31 ]
MSに嫌われてるんじゃね?
割れ使ってるとかさ

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



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

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

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

486 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:57:13 ]
>>483
ブラウザは何?
IE5.5とか?

487 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:12:00 ]
割れって言葉を理解できてないゆとりかもしれない

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

489 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:17:29 ]
ハッピーマテリアル

490 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:37:09 ]
>>483
VISTAじゃねぇとか?

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

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

後はmanagedのリファレンス嫁
つ ttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&familyid=1419557b-95cb-475e-9ed1-6817b3b9cb0a

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

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

493 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 11:20:14 ]
>>492 自己レス。
D3DXCreateTextureFromFileInMemoryExってのがビンゴかな?



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

495 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 11:30:18 ]
>>493
ビンゴ!

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

496 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 11:30:56 ]
ミップマップ1つなら1.25か

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

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

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

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


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


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

Amazon.co.jp: 書籍版 DirectX9実践プログラミング (I・O BOOKS): 第二I O編集部: 本
www.amazon.co.jp/%E6%9B%B8%E7%B1%8D%E7%89%88-DirectX9%E5%AE%9F%E8%B7%B5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-I%E3%83%BBO-BOOKS-O%E7%B7%A8%E9%9B%86%E9%83%A8/dp/4875934998


入門に使えるか知らないけど
個人的には、これがお勧め。
Amazon.co.jp: DirectX逆引き大全500の極意―Visual C++2002/2003/2005対応: 鎌田 茂雄: 本
www.amazon.co.jp/DirectX%E9%80%86%E5%BC%95%E3%81%8D%E5%A4%A7%E5%85%A8500%E3%81%AE%E6%A5%B5%E6%84%8F%E2%80%95Visual-C-2002-2003-2005%E5%AF%BE%E5%BF%9C/dp/4798013161

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

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


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

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

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



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

505 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 08:23:27 ]
最終的にはGame Programming Gemsあたりか

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

507 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:33:26 ]
英語よめねーorz

508 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:35:41 ]
日本語版見つけました
ページ数が半端ねぇw

509 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:39:06 ]
日本語は途中まででしたorz
英語で頑張るか

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

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

512 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 18:04:26 ]
コンパイラつかえよ

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




514 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 19:31:36 ]
>>513
見落としていましたorz

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

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







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

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

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