鬱だ氏のう 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)
コピペスマソ
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
0325名前は開発中のものです。
02/11/02 11:55ID:???どうも。
0326名前は開発中のものです。
02/11/02 13:39ID:???CGIってComputer Generated Imageのこと?
それともCommon Gateway Interfaceのこと?
0327名前は開発中のものです。
02/11/02 13:41ID:???0328名前は開発中のものです。
02/11/02 19:25ID:???0329名前は開発中のものです。
02/11/02 19:43ID:tqgG6cJg慣れた道具が使いやすいの〜
0330名前は開発中のものです。
02/11/02 20:29ID:???0331名前は開発中のものです。
02/11/02 21:16ID:???0332名前は開発中のものです。
02/11/02 22:16ID:???そんなことができるようになるのって何年先の話だろう?
インターネットにつなげればPCでもケータイでも電子レンジでも
3Dゲームができるのかな?
0333名前は開発中のものです。
02/11/02 22:30ID:???意味が分かっていない馬鹿発見!
0334名前は開発中のものです。
02/11/02 22:46ID:???バカでいいから、どこらへんの意味を理解していないか教えてください
サーバーサイドでレンダリングするんでしょ?違うの?
0335名前は開発中のものです。
02/11/02 23:01ID:???携帯レベルでも何の問題も無いのに何を勘違いしているんだ?
頭が固すぎ
0336名前は開発中のものです。
02/11/02 23:31ID:???0337名前は開発中のものです。
02/11/02 23:37ID:???いや、だから、ダム端末(とその類似品)で可能なのはわかるけどさ、
サーバーが追いつかないってことだよ
そんなに能力の高いサーバーに帯域が現時点でございますか?
(現在は数値データの処理だけでラグだのさばダウンだの問題があるじゃん)
まあ、並列処理の出番だとは思うけど、現時点で何台のサーバーが必要なのか
別釣るわけじゃないけど、私って本当に頭固いの?
0338名前は開発中のものです。
02/11/02 23:48ID:???硬い、とてつもなく硬い
>サーバーが追いつかないってことだよ
誰も何も言っていないに勝手に時間当たりのヒット数を途方も無い数字で妄想しているだろう
もしくはソースデータにとんでもないポリゴン数を勝手に妄想
レンダリングしてその結果を返す、それだけしか話が出ていないんだぞ
>まあ、並列処理の出番だとは思うけど、現時点で何台のサーバーが必要なのか
妄想もそこまで逝くと病気
0339名前は開発中のものです。
02/11/02 23:52ID:???0340名前は開発中のものです。
02/11/03 00:05ID:???現時点でそういうことをやっているシステムが存在するのでしょうか?
存在するのなら教えてください
「レンダリングしてその結果を返す」それだけでも十分に重いと思います
実用の範囲内で動作させるのはどう考えても不可能では?
>勝手に時間当たりのヒット数を途方も無い数字で妄想しているだろう
一ユーザーあたり一秒間に20回は送信させないとゲームにならないかと
え?20FPSじゃなくて静止画ってことですか?
だったら何で「DirectX」なの?
>もしくはソースデータにとんでもないポリゴン数を勝手に妄想
ポリゴン数よりもむしろメモリ帯域が問題では?
こういうことをやろうとしたとき、一番のネックでしょ
ビデオメモリ→システムメモリは当然のことながら
システムメモリ自体が遅すぎる
関係ないけど、妄想って言葉好きですね
妄想って根拠の無い推論のことなんですが・・・
0341名前は開発中のものです。
02/11/03 00:30ID:???>>ネットワークレンダリング
そういう商売やってるとこもありますね
リアルタイムじゃないけど
ちなみに帯域で言うならビデオチャットやライブカメラを見る限り大丈夫では?
0342名前は開発中のものです。
02/11/03 00:52ID:???時代に取り残される人の典型ですなこりゃ
> え?20FPSじゃなくて静止画ってことですか?
> だったら何で「DirectX」なの
OpenGLだったらこのシトはナットクしてたんだろうか・・・
■ このスレッドは過去ログ倉庫に格納されています