鬱だ氏のう DirectX (Part 6)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものでス
02/10/07 01:00ID:???初心者用相談室では扱わないような少し高度な話題も受け持つ。
■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/ (Part 2)
http://game.2ch.net/test/read.cgi/gamedev/1005119775/ (Part 3)
http://game.2ch.net/test/read.cgi/gamedev/1016276254/ (Part 4)
コピペスマソ
0224名前は開発中のものです。
02/10/25 10:06ID:???>DX9 might not come out this year
日本語に訳すとね
「direct X9は今年中には公開されないっぽ」
ですな。
0225名前は開発中のものです。
02/10/25 15:52ID:???暗黙の仮定法のmightはmayよりもさらに確実性が低いから、
「ひょっとしたら今年中には出ないかも」くらいの意味だよ。
0226名前は開発中のものです。
02/10/25 17:47ID:???0227名前は開発中のものです。
02/10/25 19:42ID:0f8ClKRQかわいそうかも?
0228名前は開発中のものです。
02/10/25 19:43ID:4L21o5890229名前は開発中のものです。
02/10/25 19:45ID:???0230名前は開発中のものです。
02/10/25 20:35ID:???NV30合わせになるようにMSと結託したのでは?
0231名前は開発中のものです。
02/10/25 20:54ID:???0232名前は開発中のものです。
02/10/25 21:32ID:Xo93wY0rソースどこー?
http://www.nvidia.com/
にはなかった
0233名前は開発中のものです。
02/10/25 21:48ID:???0234名前は開発中のものです。
02/10/25 21:52ID:???GeForce 5、COMDEXでデビュー
http://www.zdnet.co.jp/news/0210/25/nebt_07.html
0235名前は開発中のものです。
02/10/26 01:52ID:???なんで?
0236名前は開発中のものです。
02/10/26 06:02ID:???実際、DirectX8がそうであったように、
DirectX9もここしばらく(来年の今頃まで)の間は
ベンチマニアや趣味シェーダプログラミング専用の玩具に留るだろ。
9000や4Tiでゲームは快適に動くしなー。
いや・・・Doom3クラスは9700要るのか・・・。
0237名前は開発中のものです。
02/10/26 09:25ID:XAvHACAG0238名前は開発中のものです。
02/10/26 09:36ID:NGd267phとはいえ、対応ハードがないと意味ないか…
0239名前は開発中のものです。
02/10/26 10:16ID:???という状況をnVidiaは是が非でも回避せねばならないわけですわ
このままだとDX9の動作リファレンスは9700になっちゃうからね...
0240名前は開発中のものです。
02/10/26 14:32ID:???8すら未だメインで使われているとは言いがたい
0241名前は開発中のものです。
02/10/26 14:50ID:???0242名前は開発中のものです。
02/10/26 21:24ID:vJSal2rRこのとき、画像ファイルに暗号をかけたいのです。
暗号というよりかは、ぱっと見ではわからなくなれば十分なのですが、
ファイルを変換すると当然この関数では読み込めません。
どうすればいいのですか?
0243名前は開発中のものです。
02/10/26 21:30ID:???質問する前に同じ系統の関数のヘルプには目を通せ
0244名前は開発中のものです。
02/10/26 21:31ID:???0245名前は開発中のものです。
02/10/26 21:32ID:???D3DXCreateTextureFromFileInMemoryな
0246bloom
02/10/26 21:43ID:6nCjm/4Qhttp://homepage.mac.com/bloombloom/
0247名前は開発中のものです。
02/10/27 00:15ID:???「公開されないっぽ」
で、ひょっとしたら出ないかも〜をあらわしたつもりでしたが・・・
もしかして、漏れは英語の間違いじゃなくて日本語の間違いをしたのかな?
0248名前は開発中のものです。
02/10/27 00:22ID:???なかったらforでチマチマやってくしかないでしょうか。
0249248
02/10/27 00:23ID:???スレまちがった
0250名前は開発中のものです。
02/10/27 00:27ID:mrhYFwGUその部分が、枠の色で塗りつぶされてしまいます。
これを、画像の繰り返しに変更する方法ってありますか?
キーワードでもいいので教えてください。
0251名前は開発中のものです。
02/10/27 00:27ID:???君はそんなでかいレジスタが存在するとでも思っているのか?
0252名前は開発中のものです。
02/10/27 00:46ID:???オンボードメーカーと、クソモバイルチップメーカもうらみますのでよろしく。
0253名前は開発中のものです。
02/10/27 00:47ID:???0255名前は開発中のものです。
02/10/27 01:20ID:???巨大xorも同じこと。
>>248さん。
そういう仮想CPUをエミュレートした関数をお願いすます。
0256名前は開発中のものです。
02/10/27 01:27ID:???違う?
0257DirectX9!!
02/10/27 01:37ID:???0258名前は開発中のものです。
02/10/27 03:56ID:???>248って242ぽ
同意
0259名前は開発中のものです。
02/10/27 05:11ID:xlOk2lB2何々? リリース情報?
0260名前は開発中のものです。
02/10/27 05:36ID:???0261鬱だ
02/10/27 12:01ID:???DX6でデバイスの初期化で面倒になって挫折。
昨日からDX8始めたがまた挫折しそう…
よく皆こんな面倒臭いのつかってるね
0262名前は開発中のものです。
02/10/27 12:11ID:???長さは一度作るとそうでもなくなる
あと、おっかけてると変化への対応はそんなに難しくない
0263名前は開発中のものです。
02/10/27 13:11ID:???0264名前は開発中のものです。
02/10/27 13:26ID:???ただ自分に根性がないのを環境のせいにして
挫折する「口実」を探しているだけじゃないかと自問してみるといいと思うよ。
オレモナー
0265名前は開発中のものです。
02/10/27 13:32ID:???あとは自分のクラスに置き換えるから長さも関係ないし
0266名前は開発中のものです。
02/10/27 15:58ID:???#define TD LPDIRECT3D
#define TD2 LPDIRECT3D2
#define TD3 LPDIRECT3D3
#define TD7 LPDIRECT3D7
#define TD8 LPDIRECT3D8
#define DV LPDIRECT3DDEVICE
#define DV2 LPDIRECT3DDEVICE2
#define DV3 LPDIRECT3DDEVICE3
#define DV7 LPDIRECT3DDEVICE7
#define DV8 LPDIRECT3DDEVICE8
#define D LPDIRECTDRAW
#define D2 LPDIRECTDRAW2
#define D3 LPDIRECTDRAW3
#define D4 LPDIRECTDRAW4
#define D7 LPDIRECTDRAW7
#define S LPDIRECTDRAWSURFACE
#define S2 LPDIRECTDRAWSURFACE2
#define S3 LPDIRECTDRAWSURFACE3
#define S4 LPDIRECTDRAWSURFACE4
#define S7 LPDIRECTDRAWSURFACE7
0267名前は開発中のものです。
02/10/27 16:52ID:???0268名前は開発中のものです。
02/10/27 17:01ID:YXyH0IbH0269名前は開発中のものです。
02/10/27 17:08ID:???0270名前は開発中のものです。
02/10/27 20:38ID:???_Rope_RopeFunction(char_producer<_CharT>* __f, size_t __size, bool __d, allocator_type __a)
: _Rope_RopeRep<_CharT,_Alloc>(_S_function, 0, true, __size, __a)
(*´Д`)ハァハァ
0271名前は開発中のものです。
02/10/27 21:55ID:mrhYFwGUその部分が、枠の色で塗りつぶされてしまいます。
これを、画像の繰り返しに変更する方法ってありますか?
キーワードでもいいので教えてください。
0272名前は開発中のものです。
02/10/27 22:29ID:???SDKヘルプ 「テクスチャ テクスチャフィルタリング」
0273名前は開発中のものです。
02/10/27 23:26ID:mrhYFwGU0274名前は開発中のものです。
02/10/27 23:27ID:???0275名前は開発中のものです。
02/10/28 00:13ID:???「テクスチャ ラッピング」の方だけどね
0276名前は開発中のものです。
02/10/28 01:05ID:liEtuJz8ただ、2Dで十分なので、スプライトでやりたいのですが…それはないのですか?
0277名前は開発中のものです。
02/10/28 01:19ID:t4ureGZvこのとき、VSを強制終了して復帰させるのですが、もっとスマートな方法はないんですか?
0278名前は開発中のものです。
02/10/28 01:27ID:1Tubv01spt[y][x] = D3DXVECTOR3(x,y,0)で初期化して作った四角形を
簡単に表示するにはどうすればいいのでしょうか?
D3DPT_TRIANGLESTRIPに当てはめる為に
DrawPrimitiveUPでコツコツ書くしか無いんですか?
0279名前は開発中のものです。
02/10/28 01:27ID:???リモートデバグしる!
ヘルプに「フルスクリーンアプリケーションのデバッグ技法」ってのが載ってる。
0280名前は開発中のものです。
02/10/28 01:30ID:liEtuJz8めっしゅめっしゅめっしゅ
0281名前は開発中のものです。
02/10/28 01:40ID:1Tubv01s頂点4つの四角形作ってテッセレートするんですか?
分かりやすくと思い(x,y,0)と書いたのですが
実は(x,y,rand()%50)ぽい四角形なんですが、
それでも出来ますか?
「簡単に」ってのがどんな簡単さなのかよくわからんのだが、
pt[100][100]→カスタム頂点フォーマット の変換で
1個の点が複数のポリゴンで使用されてて無駄が多くてイヤ。ってなら
インデックスバッファ使えばイイんでないのか?
0283名前は開発中のものです。
02/10/28 07:28ID:???0284名前は開発中のものです。
02/10/28 12:05ID:???typedefにしろ
0285工房初心者
02/10/28 16:00ID:3IbZcUWOt1.obj : error LNK2001: 外部シンボル "_Direct3DCreate8@4" は未解決です
Debug/cdq63_test1.exe : fatal error LNK1120: 外部参照 1 が未解決です。
というのがでた。これは何?
0286名前は開発中のものです。
02/10/28 16:08ID:uvHswAPY0287名前は開発中のものです。
02/10/28 16:12ID:???0288工房初心者
02/10/28 16:23ID:3AR3oMdu再インストしててわすれてますた
0289名前は開発中のものです。
02/10/28 16:29ID:???CUIでコンパイルしてると起きにくいミスだね。
ビルドの過程を頭の中で大雑把にイメージするようにしてごらんよ。
正しくなくても整合性が取れていればOK。
0290名前は開発中のものです。
02/10/28 17:43ID:???DirectDrawのWaitForVerticalBlankみたいなの
0291名前は開発中のものです。
02/10/28 17:57ID:???デバイス作成時に無視するように設定していなければPresentで勝手に待ちます
0292名前は開発中のものです。
02/10/28 18:10ID:???どうもです
やっぱりPresentの時にタイミング覚えるしかないかぁ
0293名前は開発中のものです。
02/10/29 08:56ID:???IDirect3DDevice8::GetRasterStatus( ) で走査線の現在位置が
取得できるので、WaitForVerticalBlank( )の代用にはなるだろう。
もっとも、DirectX8の場合はウィンドウモードだろうとフルスクリーンモード
だろうと、DirectXにV-Sync待ちしてから画面更新するように
指定できるようになったので、あえてGetRasterStatus( )を使う
機会はほとんどないかもしれんけどね。
0294名前は開発中のものです。
02/10/29 08:58ID:???IDirect3D8::CreateDevice( ) で指定するパラメータは
D3DPRESENT_PARAMETERS.Windowed = TRUE (ウィンドウ モード)のとき
D3DPRESENT_PARAMETERS.SwapEffect = D3DSWAPEFFECT_DISCARD。
D3DPRESENT_PARAMETERSの他のメンバはデフォルト(ゼロ)のまま。
D3DPRESENT_PARAMETERS.Windowed = FALSE (フルスクリーンモード)のとき
D3DPRESENT_PARAMETERS.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC。
D3DPRESENT_PARAMETERSの他のメンバはデフォルト(ゼロ)のまま。
これで IDirect3DDevice8::Present( )時にV-Sync待ちをしてくれる。
(※一部の超マイナーな骨とう品ビデオカードを除けば)
思い出したことは、
ウィンドウモード時にIDirect3DDevice8::Present( )に
V-Sync待ちを任せると、環境によっては満足いかない結果に
なるかもしれん。てこと。
そゆときは、しょうがないから自分でタイミングを測って
Present( )するしかないだろうね。DirectX7以前の頃と同じ。
0297名前は開発中のものです。
02/10/29 14:23ID:???なんでD3DSWAPEFFECT_COPY_VSYNCなんてパフォーマンスの悪いの使うの?
D3DSWAPEFFECT_FLIPの方がパフォーマンスは良いし、VSYNC待ちもするよ。
あと、D3DSWAPEFFECT_COPY_VSYNCはVRAMも余計に消費する。
(D3DSWAPEFFECT_COPY_VSYNCはコピーしてからFlipする)
0299名前は開発中のものです。
02/10/29 15:25ID:???それはフルスクリーンの時の話なの?
それともウィンドウモードのときの話なの?
0300名前は開発中のものです。
02/10/29 15:38ID:???>(D3DSWAPEFFECT_COPY_VSYNCはコピーしてからFlipする)
また適当なことをいう知ったかが発生してるよ
二回PresentしたあとにそれぞれDC経由でウインドウに描画してみればフリップが発生していないことが分かる
裏になっていれば片方は表示されないはずだが両方ともきちんと出る
0301名前は開発中のものです。
02/10/29 16:41ID:eWrxqCn00302名前は開発中のものです。
02/10/29 18:41ID:???できるよ。
でもややこしい&複雑&面倒、
やねうらおがYANESDK2ndで挫折してた気がする。
だけどだれかやってるのとソースを見たことがある。
0303名前は開発中のものです。
02/10/29 19:20ID:72W8qWmd見た。情報ありがとう。
Winで用意されているクラスを使うのが適当かと。
出来れば自前で書きたいんだけどね。
0304297
02/10/30 01:04ID:???うちではD3DPRESENT_INTERVAL_IMMEDIATEを指定しないとFlipするぞ。
ちゃんと確認してあるよ。
このあたりの動作はドライバ依存かもしれないが。
ちなみにD3DSWAPEFFECT_COPYはPresentしてもバックバッファの内容が変化
しないことを保証するフラグで、フロントバッファをBltで更新するという
意味ではない。
0305名前は開発中のものです。
02/10/30 04:41ID:???>>304
>298 :294 :02/10/29 15:03 ID:???
> >>297
> ん。スマン。
> D3DPRESENT_PARAMETERS.Windowed の部分がアベコベ。
> これで納得してくれたか。
>
>
>299 :名前は開発中のものです。 :02/10/29 15:25 ID:???
> >>297
> それはフルスクリーンの時の話なの?
> それともウィンドウモードのときの話なの?
0307305
02/10/30 08:17ID:???>>304
>>306
いや、そうでないと
君が>>304で言ってることの意味が全く通じないんだが。
はっきり言及してくんねぇ?(簡単な話だろ)
フルスクリーンモードの話なのか。
ウィンドウモードの話なのか。
それとも両方の話をしてんのか。
0308名前は開発中のものです。
02/10/30 10:19ID:???ヘルプ嫁ば詳しく書いてある。そこに書いてない仕様は君らの妄想。
まともに描画エンジン作るなら、D3DSWAPEFFECT_DISCARDだろでいいだろ。
時間管理はVSYNCがどうであっても綺麗に動くように作っとけ。
というかその部分で手抜きなのをSwapEffectでどうにかしたいだけじゃねえか。
0309名前は開発中のものです。
02/10/30 11:08ID:???0310名前は開発中のものです。
02/10/30 20:46ID:JTrX3m8Ifor(int i=0;i<10;i++){
for(int j=10;j>0;j--){
//iをX座標、hをZ座標と見てDrawPrimitive
}
}
こうやって同じポリゴンを座標ごとにかいていきました。
すると描画されるテクスチャのZ座標は自然なのですが、座標が右にいけばいくほど、新しいポリゴンが以前に描いたポリゴンに重なってしまいます。
これを回避するにはどうすればいいのでしょう。
0311名前は開発中のものです。
02/10/30 21:38ID:???h君がいません
0312名前は開発中のものです。
02/10/30 21:39ID:JTrX3m8I0313名前は開発中のものです。
02/10/30 21:54ID:JTrX3m8ID3DXMatrixPerspectiveFovLH(&m_matProj,64.0f * 3.1415f / 180.0f ,1.0f,0.000001f,50.0f);を
D3DXMatrixPerspectiveFovLH(&m_matProj,64.0f * 3.1415f / 180.0f ,1.0f,1.0f,500.0f);
にしたらなおっちゃった!いやーすまそ!
0314名前は開発中のものです。
02/10/31 01:41ID:6X+8XPW4といいつつageる
0315名前は開発中のものです。
02/10/31 01:46ID:???射影変換について勉強しる
0316名前は開発中のものです。
02/10/31 03:11ID:aqEn0QVgメッシュにテクスチャを投影するようなことですよね。
ヘルプでは具体的な行列の例を挙げるのを避けてやがるんですけど、
具体的にどういう行列なんでしょう?
0317名前は開発中のものです。
02/10/31 04:20ID:???↑参考資料
0318名前は開発中のものです。
02/11/01 13:45ID:???ありますよね。そのサンプルをFullScreenにして、再びWindowにすると、メニューが
消えてしまいます。
どうやらd3dapp.cppの中のCD3DApplication::AdjustWindowForChangeで呼び出している
SetMenu が失敗しているようなのですが(GetLastErrorの戻り値は0x579)、原因が
分かりません。GetLastErrorの戻り値をFormatMessageに渡してみたのですが、全然
文字列が帰ってこないし(FormatMessageを使うのは初めてなので、使い方が悪いかも
しれません)。
どなたか、原因と対策をご存知の方がいらっしゃいましたら、教えていただけませんで
しょうか?
0319名前は開発中のものです。
02/11/01 14:35ID:???DirectXは関係ないよ。
SetMenu()の返り値が以前のメニューのハンドルなんてMSDNには書いてないね。
GetMenu()でメニューのハンドルを取得してから削除すればOK。
m_hMenu = (HMENU)SetMenu( m_hWnd, NULL );
↓
m_hMenu = (HMENU)GetMenu( m_hWnd );
SetMenu( m_hWnd, NULL );
これくらいピンときてね(・∀・)
0320318
02/11/01 15:23ID:???というか、目の前にある間違いに気づけなかった自分に赤面、穴があったら
入りたい気分です……。
本当にありがとうございました。
0321名前は開発中のものです。
02/11/02 04:26ID:???0322名前は開発中のものです。
02/11/02 08:52ID:???0323名前は開発中のものです。
02/11/02 11:12ID:3acNjFb9たとえば、
v.x = 300;
v.y = 200;
v.x = 0;
などとして頂点座標を記述すると、画面の
(300, 200)の位置に表示されるような座標軸と視点をとりたいのです。
0324名前は開発中のものです。
02/11/02 11:19ID:???D3DFVF_XYZRHW
■ このスレッドは過去ログ倉庫に格納されています