DirectX総合スレ (Part4)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/11/26(土) 01:58:58ID:RjcSZKi5ゲーム製作技術スレに戻ってきました。
DirectXについて、にいさま達がマターリと
技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。
ちなみに、言語はC++がメイン。
C# / VB.NET 使いは、専用スレの方が話がスムーズに進むと思われ。
0047名前は開発中のものです。
2005/12/18(日) 17:22:27ID:oaKflF5Y回答ありがとでやんす
使用グラボはラデオン8500ですが、とはいえ貴重な情報どうもっス
一応ドライバは最新だと思います
0048名前は開発中のものです。
2005/12/18(日) 17:40:05ID:sJDOGgWt0049名前は開発中のものです。
2005/12/30(金) 17:24:33ID:hWBigLzxLPDIRECT3DDEVICE9 lpDevice = g_lpDevice9;
lpDevice->BeginScene();
////何かの描画/////
lpDevice->EndScene();
/*何かの処理*/
lpDevice->BeginScene();
////何かの描画/////
lpDevice->EndScene();
.
.
lpDevice->Present( NULL, NULL, NULL, NULL );
みたいに何回もBeginScene、EndScene呼んで最後にPresentってまずいですかね。
0050名前は開発中のものです。
2005/12/30(金) 17:54:46ID:BBiaJQce0051名前は開発中のものです。
2005/12/30(金) 17:59:48ID:IONTUAjQすまん、どこに書いてあるのか教えてくれないか?
0052名前は開発中のものです。
2005/12/30(金) 18:01:05ID:piIDE+OV0053名前は開発中のものです。
2005/12/30(金) 18:05:17ID:piIDE+OV> プレゼンテーション (IDirect3DDevice9::Present または IDirect3DSwapChain9::Present) を連続して呼び出す場合、
> 呼び出しの間に存在できる IDirect3DDevice9::BeginScene/IDirect3DDevice9::EndScene は最大 1 対です。
> IDirect3DDevice9::BeginScene はレンダリングを実行する前に 1 回、
> IDirect3DDevice9::EndScene は 1 つのフレームに対するすべてのレンダリングをランタイムに発行した後に 1 回、呼び出す必要があります。
これジャマイカ?
IDirect3DDevice9::BeginScene()のところに書いてあるぞ
0054名前は開発中のものです。
2005/12/30(金) 18:42:10ID:IONTUAjQ手元のヘルプにもMSDNにも無いな。最近のSDKで追加された内容なのか
005550
2005/12/30(金) 20:02:42ID:BBiaJQceちゅーか日本MSDNって9.0ベースなのかよ・・・。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/IDirect3DDevice9__BeginScene.asp
0056名前は開発中のものです。
2005/12/30(金) 21:05:04ID:IFiUlImRvoid TexRot(D3DXMATRIX &out,float rot)
{
D3DXMatrixIdentity(&out);
out._22=out._11=cos(rot);out._12=sin(rot);out._21=-1*out._12;
}
//---レンダー関数内
g_pd3dDevice->SetTextureStageState(0,D3DTSS_TEXTURETRANSFORMFLAGS,D3DTTFF_COUNT2);
D3DXMATRIX out;
TexRot(out,(float)m_dwCnt*D3DX_PI/180.0f);
g_pd3dDevice->SetTransform(D3DTS_TEXTURE0,&out);
g_pd3dDevice->SetTexture(0,g_pTexture);
g_pd3dDevice->SetStreamSource(0,g_pVB,0,sizeof(D3DTLVERTEX));
g_pd3dDevice->SetFVF(D3DFVF_2DVERTEX);
g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);
g_pd3dDevice->SetTextureStageState(0,D3DTSS_TEXTURETRANSFORMFLAGS,D3DTTFF_DISABLE);
g_pd3dDevice->SetTexture(0,NULL);
上記のようにしてテクスチャを回転させたいのですが上手くいきません。
どこが問題なのでしょう?DX9.0です。お願いします。
0057名前は開発中のものです。
2005/12/30(金) 22:29:40ID:Z497FHq3>D3DTLVERTEX
変換済み頂点はテクスチャ座標変換できないわよ。
↓の注
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/DirectX9_c/directx/graphics/programmingguide/fixedfunction/textures/coordinates/texturecoordinatetransforms.asp
0058名前は開発中のものです。
2005/12/30(金) 22:49:10ID:IFiUlImRレス有難うございます。
>トランスフォーム済みライティング済みの頂点
この表現がわからないのですが、、、
実際に何を行うとトランスフォーム済みライティング済みの頂点になるのでしょう?
0059名前は開発中のものです。
2005/12/30(金) 22:50:53ID:Z497FHq3RHW使うとなるわ
0060名前は開発中のものです。
2005/12/30(金) 22:52:21ID:lBuSVkiU高さマップから法線マップ作成できるが、
これによって生成される画像のフォーマットってナンなの?
16ビット浮動小数点の画像フォーマットなのか?
それともRGBカラーのそれぞれに8ビットの数値を突っ込んでるだけなのか?
でも、ピクセルシェーダーでは法線の数値が入ってないと
デコボコの表現が正常に出来ないよね。
自前で画像フォーマット作ればいいのだが、気になって気になって
手淫も出来ません。
誰か知ってる人教えて。
0061名前は開発中のものです。
2005/12/30(金) 23:42:45ID:Z497FHq3頂点の構造体(D3DTLVERTEX)からrhwを除いて、
FVF(D3DFVF_2DVERTEX)も D3DFVF_XYZRHW を D3DFVF_XYZにすると
頂点に座標変換が掛かるようになる。
ただその場合、座標の扱いも3Dの流儀(中心が(0,0)、-1〜+1)になるんだけど、
下のように設定すれば、一応2Dの流儀(左上隅が(0.0)右下隅が(w,h))のまま使えるわ。
D3DXMATRIX matWorld, matView, matProj;
D3DVIEWPORT9 vp;
D3DXMatrixIdentity( &matWorld );
D3DXMatrixIdentity( &matView );
pd3dDevice->GetViewport( &vp );
D3DXMatrixOrthoOffCenterLH( &matProj, 0, vp.Width, vp.Height, 0, 0.0f, 1.0f );
pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
pd3dDevice->SetTransform( D3DTS_VIEW, &matView );
pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );
座標変換がかかるのがいやで、UVだけ変えたいのなら、頂点のUVを直接書き換えるしかないわね。
0062名前は開発中のものです。
2005/12/31(土) 00:37:37ID:YgeevgWPrhw抜いたら描画されなくなってしまいましたTT
今日は寝ます。レス有難うございました。
0063名前は開発中のものです。
2005/12/31(土) 12:30:34ID:E8NVgyee0064名前は開発中のものです。
2005/12/31(土) 13:04:21ID:TFaMIM4eチュートリアルを順番に、自分でコードを入力しつつ動作を確認し、絶対にとばさず全て終わらせること。
質問するのはそれが出来てから。
しかしその頃には、今のような質問をすることは無くなっているだろう。
0065名前は開発中のものです。
2006/01/02(月) 23:13:13ID:s+I6Hch/DirectX9 SDKには"d3dx8.h"が入っていないけどどうして?
"d3dx9.h"は入っているのに。
0066名前は開発中のものです。
2006/01/02(月) 23:15:15ID:LC+BjV4vd3dx8.h→DirectX8
d3dx9.h→DirectX9
0067名前は開発中のものです。
2006/01/02(月) 23:42:52ID:s+I6Hch/D9は下位互換があるのでd3dx8.hがなくなるのが良くわからないぽ
0068名前は開発中のものです。
2006/01/03(火) 10:25:50ID:gYcG4vzGということはヘッダも中に(略
0069名前は開発中のものです。
2006/01/03(火) 12:38:19ID:RA+XcytTまた上位互換と下位互換を混同する馬鹿が。
いつまで経ってもこういうのが撲滅できないのは何故だろう?
DirectXのSDKは上位互換。
下位互換だったら、8のSDKで9の機能が利用できることになる。
0070名前は開発中のものです。
2006/01/03(火) 12:42:01ID:gYcG4vzGSDK自体は別のものと考えた方がいいかも。
0071名前は開発中のものです。
2006/01/03(火) 13:18:49ID:RaSlQRmC日本語おかしいぞw
SDK9は下位(SDK8)に対して互換があるから下位互換でいい。
0072名前は開発中のものです。
2006/01/03(火) 13:42:58ID:m62LrqZ6上位互換と下位互換間違っているのはお前ですよ?ぷ
いつまで経ってもこういうのが撲滅できないのは何故だろう?
0073名前は開発中のものです。
2006/01/03(火) 14:08:01ID:IhCpS2m8→ライブラリ中のインターフェィスをFixすることで、将来の互換性を保証するとか
下位互換ってのは、過去の資産に対して互換性を保証するものなんでないの?
→以前のライブラリのインターフェイスをそのまま残すことで、過去の資産に対しての互換性を保証するとか
これでいいんだよな?(´・ω・`)
0074名前は開発中のものです。
2006/01/03(火) 14:09:07ID:GbXTFLElオマエの悩みはオマエにとって下位互換という言葉が未定義だからだよ(俺も知らんがなw)
上位互換はUpper Compatibilityの訳語
ttp://e-words.jp/w/E4B88AE4BD8DE4BA92E68F9B.html
で一般に流通する言葉だから、それを使うのは正しい。つまりオマエは間違ってない(よかったな
しかし下位互換という言葉を使用する人間をオマエが撲滅すべき理由など無い
アッパーコンパチは下位にたいして互換性を持つことを言うんだ、下位互換って言葉を
一般的には上位互換という訳語を当てた<アッパーコンパチ>の新訳語と思えばいい
つまり同義語。 (これで撲滅しなくて良くなったな
まあ、上位互換が間違っていて下位互換が正しいという意見は確かにアレですが
0075名前は開発中のものです。
2006/01/03(火) 14:11:12ID:RA+XcytThttp://e-words.jp/w/E4B88BE4BD8DE4BA92E68F9B.html
>旧バージョンのアプリケーションソフトが、新バージョンのアプリケーションソフトで作成したファイルを扱える
つまり9のSDKで開発したソースがDirectX8で扱えなければならない。
>http://e-words.jp/w/E4B88AE4BD8DE4BA92E68F9B.html
今回の場合はこっち。
旧バージョン用のSDKのソースを新バージョンのSDKで扱えるように配慮されているから上位互換。
この程度のことも混同してしまう人間が、少なくとも二人いることに驚いた。
この話は何度も出てきているんだが、いつまで経っても撲滅不能。
0076名前は開発中のものです。
2006/01/03(火) 16:17:21ID:gYcG4vzGところでSDKの互換性とDirectXの互換性は別の話だっちゅうの。
2004Octじゃないとビルドできないソースとかあるでしょ。
0077名前は開発中のものです。
2006/01/03(火) 16:46:11ID:1exWxw8s完全でない下位互換ならわざわざ下位互換とか書かないよな
0078名前は開発中のものです。
2006/01/03(火) 19:42:21ID:RaSlQRmCd3dx8.hってMSにしては使ってほしくないの?
0079名前は開発中のものです。
2006/01/03(火) 20:07:49ID:9GyAyU1c0080名前は開発中のものです。
2006/01/03(火) 20:26:00ID:dr3rQ39xカメラ位置の設定がうまくできず悩んでいます。
Z軸の単位ベクトルで初期化したベクトル(0,0,1)を用意し、自キャラの向きに合わせて回転させ、
適当な倍率とマイナスをかけて、自キャラの後方をカメラ位置に設定しています。
カメラを固定位置にすると自キャラの動作は正常なのが確認できるのですが、
D3DXVECTOR3 vecEyePt = Player.vecPosition + cameraPosition;
とカメラ位置を設定すると、以下のように意図しない結果がでてしまいます。
・旋回操作をしても自キャラの向きが変わっていない(まわりの物体の位置もそのまま)
・自キャラに当たる照明の位置だけが変わっている
・カメラ位置がZ軸上から動いていない
http://syobon.com/mini/src/mini13422.txt ソース
ご指摘・アドバイス等いただけましたら幸いです。よろしくお願いいたします。
0081名前は開発中のものです。
2006/01/03(火) 20:55:48ID:77LCEHqD008280
2006/01/03(火) 21:19:10ID:dr3rQ39xまだ入門書のサンプルに毛を生やす程度の能力しかなくて、すみません。
よろしければご助力ください。あるいはスレ違いでしょうか?
0083名前は開発中のものです。
2006/01/03(火) 22:18:02ID:77LCEHqDttp://syobon.com/mini/src/mini13429.zip
0084名前は開発中のものです。
2006/01/03(火) 22:25:22ID:yoa4vEYcd3dx9_26.dllが見つからなかったため、このアプリケーションを開始できませんでした。
0085名前は開発中のものです。
2006/01/03(火) 22:28:29ID:77LCEHqD0087名前は開発中のものです。
2006/01/03(火) 22:48:43ID:77LCEHqDttp://syobon.com/upload/src/syobon37980.zip.html
DLKeyはsage
0088名前は開発中のものです。
2006/01/03(火) 22:53:45ID:yoa4vEYc0089名前は開発中のものです。
2006/01/03(火) 22:54:58ID:77LCEHqDcameraPosition = -3*vecAxisZ;//*****カメラ位置を算出*****
↑これの書く場所がマズイ
0090名前は開発中のものです。
2006/01/03(火) 22:56:39ID:KZ+4/uIFttp://www.toymaker.info/Games/html/d3dx_dlls.html
0091名前は開発中のものです。
2006/01/03(火) 23:03:07ID:y0S1Z1dn009280
2006/01/03(火) 23:49:37ID:dr3rQ39x>
>↑これの書く場所がマズイ
軸の回転前に書くとカメラが移動しなくて、回転後だとやっぱり同じ結果になってしまいます。
回転後にカメラを移動させればいいとは思うのですが、どうしたらいいでしょうか?
>>91
デバッガの使い方もままならず、四苦八苦しています。無知で大変ご迷惑をおかけします。
0093名前は開発中のものです。
2006/01/03(火) 23:50:43ID:9GyAyU1c0094名前は開発中のものです。
2006/01/03(火) 23:57:19ID:77LCEHqDカメラが考慮すべきなのはThing[1]の向きのはず。
今のままだと、謎のオブジェクトThing[3]の向きが参照されちゃうよ。
0095名前は開発中のものです。
2006/01/04(水) 00:02:04ID:77LCEHqD009680
2006/01/04(水) 00:22:31ID:I2EUgBKX解決しました。的確なアドバイスをありがとうございます。
関数が呼び出されるごとに全オブジェクトのfHeadingが参照されているのは盲点でした。
今回の失敗を忘れず精進します。重ねてお礼申し上げます。
0097名前は開発中のものです。
2006/01/04(水) 00:38:19ID:ST0owyWY0098名前は開発中のものです。
2006/01/04(水) 00:54:58ID:5Nauf3er0099名前は開発中のものです。
2006/01/04(水) 00:56:51ID:D/Giqh7w次は>>83のサンプルのように滑らかな回転・移動に挑戦してみよう。
010080
2006/01/04(水) 01:48:39ID:I2EUgBKX確かに、そのままだとガクガクしますね。
カメラの軌道が綺麗な円ではないということでしょうか?
自由に移動するには自キャラの状態を複数用意して、
前進/後退や旋回を組み合わせられるようにする必要がありますね。
010180
2006/01/06(金) 03:27:28ID:yOgH2a1dDirectInputを使って滑らかに動かせるようになりました。
ウィンドウズのメッセージは複数保持できないんですね。
0102名前は開発中のものです。
2006/01/06(金) 17:57:55ID:CzT0iPUW期待のルーキーage
0103名前は開発中のものです。
2006/01/06(金) 19:22:13ID:UJecrW5H0104名前は開発中のものです。
2006/01/08(日) 12:51:40ID:8kkYStN7ほとんど頂点の共有がないんですけど、最近はストリップ化とか気にしない時代なんでしょうか?
0105名前は開発中のものです。
2006/01/09(月) 01:19:00ID:LqKePeRw(0, 0) - (10, 0) - (0, 10) - (10, 10)
の4点で正方形のポリゴン作ったとき、正方形1辺の長さは 10 じゃなくて 11 でいいのか?
0106名前は開発中のものです。
2006/01/09(月) 01:25:25ID:RUFAIm+Nを考えれば自ずと答えが出る。
0107名前は開発中のものです。
2006/01/09(月) 02:39:50ID:QMumG5Le0108名前は開発中のものです。
2006/01/09(月) 09:35:11ID:aWgct96kSDKヘルプの「ラスタ化ルール」のページをよく読んで考えたまえ。
0109名前は開発中のものです。
2006/01/10(火) 01:53:07ID:OISJ4YrCアナログスイッチを入れると十字キーが使えず、切るとスティックが使えません。
スティックの方は押し込み(いわゆるL3・R3ボタン)入力が欲しいです。ご存知でしたらご教授お願いいたします。
0110名前は開発中のものです。
2006/01/10(火) 01:56:01ID:18zzXvay0111名前は開発中のものです。
2006/01/10(火) 02:21:13ID:mShlUrVT使えませんといわれても困るんだが……。ちゃんと使えるし、入力も受け取れるよ。
0112名前は開発中のものです。
2006/01/10(火) 02:25:08ID:18zzXvay0113名前は開発中のものです。
2006/01/10(火) 02:39:55ID:OISJ4YrCttp://www.twin-tail.jp/contents/vsdx8/di/003/index.htm
ここのサンプルで試しても入力が受け取れなくなるんですが、記述次第で解消できるんでしょうか。
0114名前は開発中のものです。
2006/01/10(火) 03:00:25ID:CgH5eV8/アナログOFF: 右スティック(-,-) 左スティック(-,-) 十字キー(lX,lY)
以前使ってたPS2コントローラ変換アダプタだと、こんな感じだったと思う。記憶違いもあるかも。
製品ごとにこの辺の仕様は違うと思うので決めうちは危険。
柔軟性の高い環境設定ツールを作って、自由に割り当てを変えられるようにするしか。
0115名前は開発中のものです。
2006/01/10(火) 03:10:46ID:OISJ4YrC十字キーをボタンに設定したら動作しました。ありがとうございます。
近いうちに設定ツールにも挑戦してみようと思います。
0116名前は開発中のものです。
2006/01/13(金) 01:19:45ID:RtyKiqPLスプライトの反転や回転が上手くいきません。
ttp://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=39912
にある方法でも、位置がずれたりします。
Matrix.Transformation2Dの引数や動作がいまいち理解出来てません。
知ってる人いたらお願いします。
0117名前は開発中のものです。
2006/01/13(金) 06:03:27ID:BgGyoFL/0118名前は開発中のものです。
2006/01/13(金) 09:06:53ID:Ghg7jH1Fがんばッ!
0119名前は開発中のものです。
2006/01/13(金) 19:13:40ID:5JJU4ubQ0120名前は開発中のものです。
2006/01/14(土) 08:33:02ID:LJK2jp1a0121名前は開発中のものです。
2006/01/14(土) 17:28:33ID:g4CwQE8J0122名前は開発中のものです。
2006/01/14(土) 18:53:28ID:giQtcL/n0123名前は開発中のものです。
2006/01/14(土) 19:15:07ID:qNke3Hgr0124名前は開発中のものです。
2006/01/15(日) 11:30:22ID:FIMsPmAL0125名前は開発中のものです。
2006/01/18(水) 01:02:29ID:XXhLgbEgクラスを作ろうと思っています。そこで迷ってるんですがDirectInputを使うときに
まず1個メインでどのインターフェースにも使用される変数とかを宣言してそれに
派生させたほうがわかりやすいんでしょうか?1個のクラスに3つのインターフェース
を動かすための変数とかを宣言するとわかりにくいかなと思って皆さんはどっちが
見やすいとかどっちだとこういう問題があるとかアドバイスありましたらお願い致します。
0126名前は開発中のものです。
2006/01/18(水) 01:49:41ID:ywg82UUl案ずるより小野ヤスシ。
0127名前は開発中のものです。
2006/01/18(水) 20:38:29ID:KD7Nsg+B0128ぶっそれんれ
2006/01/18(水) 21:56:27ID:+6B9dpNWたいしたDirectXの技術どころかC++についてもまだまだですが、Cだけでがんばってやってきました
まあそんなこんなでよろしくお願いします
0129ぶっそれんれ
2006/01/18(水) 22:02:19ID:+6B9dpNW0130名前は開発中のものです。
2006/01/18(水) 22:05:51ID:HnrOH1dc作ったんですが、マクロで3つそれぞれを使用するしないを設定したら
中が読みにくくなったんでどうしようか迷って聞いたんですよ。
0131mebius
2006/01/18(水) 22:48:12ID:zWunAqfb実行すると「d3d10.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションを
インストールし直すとこの問題は解決される場合があります。」と表示され実行できません。
再インストールも行いましたが解決できませんでした。実行するにはどうすれば良いでしょうか。
0132mebius
2006/01/18(水) 22:57:32ID:zWunAqfbWindowsXPです。
0133名前は開発中のものです。
2006/01/18(水) 23:05:44ID:fJknqpuy0134mebius
2006/01/18(水) 23:22:17ID:zWunAqfbすばやい回答ありがとうございます。ですが、私は初心者なためどうすればいいのかわかりません。
もう少し詳しく教えていただけないでしょうか。
0135名前は開発中のものです。
2006/01/18(水) 23:36:49ID:4Jwx/gGiCからやりなおすとか
0136名前は開発中のものです。
2006/01/18(水) 23:37:04ID:reEqy/wXヒント:神棚の上
0137名前は開発中のものです。
2006/01/18(水) 23:40:37ID:PU+OMtel0138名前は開発中のものです。
2006/01/18(水) 23:57:13ID:q+CTZNqR0140名前は開発中のものです。
2006/01/19(木) 00:19:13ID:wJ5oggz1十字キーがレバーでもボタンでもなく
ハットスイッチに割り当てられているので気をつけろ。
0141名前は開発中のものです。
2006/01/19(木) 01:55:57ID:ofdW8ZZ+プレビューだべよ。
0142名前は開発中のものです。
2006/01/19(木) 05:18:35ID:9aPiZjT2レバーってなんだよw
0143名前は開発中のものです。
2006/01/19(木) 09:56:26ID:wJ5oggz1lXとlYのことだYO
0144名前は開発中のものです。
2006/01/21(土) 08:41:39ID:AtSEXr0qでもパチンコでその何倍も摩る俺
0145名前は開発中のものです。
2006/01/21(土) 10:38:35ID:AkBWMdLf0146名前は開発中のものです。
2006/01/21(土) 11:20:15ID:E5l3VzaB今作ってるゲームでゲームパッド対応してるんだけど、どの
ゲームパッドでも動くか自信がない。
■ このスレッドは過去ログ倉庫に格納されています