トップページgamedev
1001コメント341KB

Direct 3D

■ このスレッドは過去ログ倉庫に格納されています
0001.01/11/09 17:06ID:wrfy6OtC
Direct Xはあるみたいですが、こちらはD3D専門という事で。
とりあえずDX8以降は初期化が簡単になったり関数が変わったり
結構大幅に変わりましたがその辺も踏まえてお願いします。
0105名前は開発中のものです。02/02/12 21:06ID:???
>>103
うるせー馬鹿
0106名前は開発中のものです。02/02/12 21:09ID:???
>>104
質問はこちらへ

プログラム板
Direct3D
http://pc.2ch.net/test/read.cgi/tech/1011762546/
010710402/02/12 21:25ID:9lA8tETC
>>106
それってココじゃないんですか?
0108名前は開発中のものです。02/02/13 04:05ID:NOxt2cqP
>>104
オブジェクトに対し、トランスフォーム行列を設定するという認識がそもそも間違い。
D3DDeviceに対しトランスフォーム行列を設定し、
D3DDeviceに対し表示するメッシュを設定する、が正しい。
即ち、IDirect3DDevice8::SetTransform。これ最強。
0109なかまかな02/02/22 18:51ID:Lhsx7X1+
要望
 DXでサーフェースとして管理してる2Dキャラを、
 D3Dで表示して、回転できるようにしたい。
 DX8には、ハードウェアが対応してないようなので、DX7で。
 まず、テクスチャを準備して、テクスチャサーフェースに割り当てた。
 あとは、このサーフェースを、座標指定して表示すればいいと思う。

●今までのやり方
         描画先エリア サーフェス
           ↓     ↓
ret=pDDSBack->Blt( &rect1, g_pDDS,NULL, 0, NULL );

●D3Dでのやり方
         テクスチャサーフェス
                ↓
pd3dDevice->SetTexture( 0, g_pDDS );
pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, D3DFVF_VERTEX,ddx_txv, 4, NULL );

今までは、rect1にピクセル座標(?)を代入してた。
D3Dでは、ddx_txv に座標を設定するらしい。
が、ヘルプ読んだが良くわからん。
どうやればいいか、分かる人教えてみないか。
011002/02/22 18:53ID:Lhsx7X1+
>>109
ずれてる。こっちに差し替え。
         描画先エリア サーフェース
             ↓    ↓
ret=pDDSBack->Blt( &rect1, g_pDDS,NULL, 0, NULL );
●D3Dでのやり方
         テクスチャサーフェース
                  ↓
pd3dDevice->SetTexture( 0, g_pDDS );
0111名前は開発中のものです。02/02/22 21:30ID:???
>>109
> D3Dで表示して、回転できるようにしたい。
この程度の処理が
> DX8には、ハードウェアが対応してないようなので、DX7で。
DirectX7で対応していて、DirectX8では対応していない
ハードウェアがなんなのか教えて欲しい。
そんなものあるの?
0112なかまかな02/02/22 23:09ID:8+9pSBiP
>111
DX8だと、ハードウェアが新しくないと機能しないよね。
サンプルを実行したら、ダイアログボックスがでて、ソフトウェアモードで処理された。
DX7のサンプルは、ハードウェア(HAL)で動いた。
それとも、回転だけなら、今までのビデオカードでもハードウェアで動くの?
0113名前は開発中のものです。02/02/22 23:15ID:???
正直、DX8のものって動かないものが多いよ・・・
0114名前は開発中のものです。02/02/22 23:32ID:lyn6ieNN
>>109
つまんねぇネタだな
0115名前は開発中のものです。02/02/23 02:42ID:???
>>111
持ってるハードが古いorメーカが既に逝っててドライバが更新されてないとか(w
0116なかまかな02/02/23 10:43ID:OEDm8gEo
>115
でもほかのDXのスレで、DX8は、ビデオカードとかが新しくないと
ダメだったようなこといってたよーな
0117名前は開発中のものです。02/02/23 11:32ID:???
>110 DrawPrimitiveでの回転は折れのスキルでは出来ないので
板ポリゴンにテクスチャ張ってD3DXMatrixRotationXなどで
回転させてる。
0118名前は開発中のものです。02/02/23 11:53ID:???
>>112
DirectX8固有の機能でなければ古いドライバでも動作します。
動かないのはサンプルに新機能のデモが多いせいでは?
011910902/02/23 15:23ID:u/EZFxFI
>118
でもXファイルを表示するだけのサンプルも、ソフトで処理された。

>117
なんだ。D3DXってライブラリ、付属してるのか。別途かと思った。
最初からコレ使えば良かった。どうしようかな。

おわる。
0120プログラマになりたい厨房(ひきこもり)02/03/05 01:37ID:???
DirectX7でDirect3DrmモードとDirect3Dimモードってあるけれども、
このスペックのPC使ってDirect3Dimモードで作成して動かしても普通に動くかな?

VRAMは8Mバイト3Dチップ付き
メモリ64MB
CPUはPentium2 400MHz
0121名前は開発中のものです。02/03/05 02:36ID:vchuM+1W
>>120
チップの名称くらいかけ。

ちなみにi810とかsisみたいなチップ内蔵の場合、UMAの方で
不具合でるからむり。
0122名前は開発中のものです。02/03/08 01:28ID:WfC+A2/G
グラフィッカーなんですが、
ピクセルシェーダーの紹介されている書籍やサイトをおしえてくださぃ・・・。
でかい本屋を何件か回ったのですが、どのDirectX8本も
プログラムよりの基本的な3D表示のことしか書かれていないので
Direct3D固有のビジュアル表現の可能性がわからないのです。


・・・なんとなく放置されそうですが(w)、よろしくおねがいします。
0123名前は開発中のものです。02/03/08 01:32ID:???
>>122
http://www.microsoft.com/japan/developer/directx/welcome/dsmsdn/directx08202001.asp
http://www.microsoft.com/japan/developer/directx/japan/dx8/DX81PS.asp
こんなのでいい?
012412202/03/08 01:50ID:WfC+A2/G
>>123
すばやいレスありがとうございます。
そーです。そんなのですー。
かなり詳しく載っているのでじっくりと見させてもらいます。
親切な方、ありがとうございました。

0125名前は開発中のものです。02/03/09 01:34ID:???
>124
ttp://developer.nvidia.com/
24h遅れスマソ
0126名前は開発中のものです。02/03/26 19:25ID:???
Xファイルを読み込んで表示すると、ポリゴンが透けて見えたり、裏側が見えてしまって
困っているんですが原因と対処方法わかりますでしょうか
http://mrpackman.hoops.ne.jp/D3DLearn.zip
大きくて申し訳ないですがこんな感じです
0127名前は開発中のものです。02/03/30 17:45ID:???
>>126
Xファイルは何で作ってる?
ツールによっては反転させないとおかしな事になる
0128名無しさん02/04/15 21:05ID:HOmtp0LM
ライブラリいいの無い?
0129名前は開発中のものです。02/04/15 21:59ID:???
>>128
むしろDirectXがライブラリ。
0130名前は開発中のものです。02/04/15 22:05ID:???
>>128 はい!はい!はい!
http://www.geocities.co.jp/SiliconValley-SanJose/8134/
0131名前は開発中のものです。02/04/16 05:10ID:rxWSPVEM
>>128
D3DX8
0132名前は開発中のものです。02/04/16 08:54ID:wEjyLAPY
>>128
http://www.ah.wakwak.com/~jey/
こんなのもあるよ。オープンソース
0133名無しさん@お腹いっぱい。02/04/25 09:07ID:KWIZFbqs
DOGAつかってますか?
0134名前は開発中のものです。02/04/25 11:57ID:???
>>133
以前は良く見たけど。
最近はめっきり見なくなったねえ
0135名前は開発中のものです。02/05/03 13:47ID:.VzbAcu.
やぱその辺り踏まえてないからちゃう?w
0136名前は開発中のものです。02/05/03 13:47ID:???
どゆこと?
0137名前は開発中のものです。02/05/14 00:58ID:???
Matrox、世界初512bit GPU「Parhelia-512」を発表
〜DirectX 9、10bitカラー処理、Triple Headなど多くの新機能
http://www.watch.impress.co.jp/pc/docs/2002/0514/matrox.htm

遂に正式発表されたみたいだ。え?板チガイか!?
0138名前は開発中のものです。02/05/14 18:40ID:iHWdaZs2
DirectX9完全準処ハードをメインターゲットにしてゲーム売れるのは
いつごろになるのだろう?
0139名前は開発中のものです。02/05/14 19:34ID:???
>>138
XBOX2の頃かな?なんちて
0140名前は開発中のものです。02/05/14 21:32ID:gp9yAFEg
 
0141名前は開発中のものです。02/05/15 00:13ID:???
そもそも今、完全にメインに出来るバージョンっていくつかなぁ。
正直、DirectX6くらいな気がするよ……。
0142名前は開発中のものです。02/05/15 00:14ID:???
あ、PCの話ね
0143名前は開発中のものです。02/05/15 03:32ID:1hyuY9to
あああ、ID3DXBaseMesh::GenerateAdjacencyが失敗するぅぅぅ
何をやっても駄目だぁ、エラーコードもUnknownだしィィ
つーか、もっと根性みせろやD3DXが!!例外出てる訳でもねーんだろ!!
それが出来ねーんならソース公開しろォォ!!
ID3DXSkinMesh::Convert系で作ったスキンメッシュはリストアで必ず失敗するしよォォォ!!
0144名前は開発中のものです。02/05/15 14:05ID:???
>>141
実際、7あたりが標準になってるんじゃない?
0145名前は開発中のものです。02/05/16 04:32ID:???
テクスチャにレンダリングする方法は
一度サーフェイスにレンダリングした後にコピーするしかありませんか?
0146名前は開発中のものです。02/05/16 04:32ID:rbiFXjkI
age
0147hoge3d02/05/16 19:32ID:???
>>145
IDirect3DTexture8::GetSurfaceLevel()でサーフェスを取得してSetRenderTarget()でレンダリング対象にすればいい、かな?
やってみたことないので参考まで。
0148hoge3d02/05/16 19:42ID:???
>>144
(141とは別人ですが・・・。)
開発ターゲットはDirectX8になってるにしても、
安全に使えるハードウェア機能としては6〜7くらいという気もする。
開発力が十分あって、ハードウェアごとにレンダラの構造変えられるなら話は別ですが・・・。
0149hoge3d02/05/16 19:50ID:???
>>145 追記というか訂正
KanoさんBBSの過去ログからこんなのを発見
>残念ながら、D3DUSAGE_RENDERTARGET を指定してあるテクスチャは
>D3DPOOL_DEFAULT にしか置くことができないため、LockRect は使えません。
>結局、残された唯一の方法が CopyRects というわけです。

だそうです。

ここらへんより
http://cgi3.tky.3web.ne.jp/~tkano/bbslog/bbslog12.shtml
0150名前は開発中のものです。02/05/20 17:11ID:c/rCiqvY
現在使用しているビデオボードで利用可能な
テクスチャの最大サイズってどうやって取得すれば
いいんでしょうか。
0151マス大山02/05/20 18:20ID:???
>>150
きみィ〜基本がなっとらんよ。
見たまえ、このコブシの拳ダコは
そりゃあもう血の滲むような訓練云々〜
0152名前は開発中のものです。02/05/20 19:28ID:???
>>150
struct D3DCAPS8の
MaxTextureWidth および MaxTextureHeight
IDirect3D8::GetDeviceCaps使って
015315002/05/20 19:46ID:???
>152
それこそ求めていたものです
ありがとうございました!
0154hoge3d02/05/29 21:40ID:???
あげてみる
0155名前は開発中のものです。03/02/06 23:40ID:MWXJs3Hk
DX7でDirect3D IM の勉強をしてるんですが、
板ポリ表示すら出来ずに鬱入ってます。
初期化部分はクリアしたんですが、Viewportの設定や投影変換の所で躓いてます。。
いろいろ検索とかかけて調べてるんですが、出てくるのはDX5やDX8のサンプルなどで
DX7を解説してるようなサイトが見つかりません。
(見つかっても初期化の部分だけとか)

どなたかいいサイトご存知でしたら教えてくれませんか?
よろしくです。
0156名前は開発中のものです。03/02/06 23:48ID:PXQKBNV4
ここしか知らない。

ttp://www.age.jp/~writing/wws/programs.htm#Direct3DIM研究日記

つか、DX8にしときなさい、と忠告してみる。9でもいいけど・・・。
015715503/02/06 23:57ID:MWXJs3Hk
> 156
レスありがとです。
ここ前に見たんですが、レベル高くて結局基本的な事がわからずじまいで・・・。
DX8はHDC取得出来ないらしいので不便かなぁと言うのと、DX7の方が教材になるのではと思ってみたり(推測)。
9ではHDC取得が復活したらしいですが、出たばっかしなのであまり手を出したくないんですよね。
0158名前は開発中のものです。03/02/07 00:17ID:PWiq5PrS
う〜ん、漏れはHDCに頼ってるように見えるんだけど、そっちのが勉強になるんかな。
ちなみにテキスト表示が不便だってんならGetGlyphOutlineみたいなAPIもあるし
文字表示・入力のいい勉強になると思うけど。
015915503/02/07 00:36ID:teDPhK+Q
HDC云々ってのは勉強とは別であったら便利だよなぁーって事です。
取りあえず1度にいろいろな事覚えるのは出来そうにないんで3Dの基本的な部分を
やっつけていきたいと思ってます。
みなさんのレスから推測するに、やっぱり解説してる所って少ないんですね・・・。
0160名前は開発中のものです。03/02/07 02:45ID:iTMeZkvn
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に   /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /    ギコ猫より      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧  /
 (  ゚Д゚) /
 (    )つ
 | | |
 (__)_)
0161名前は開発中のものです。03/09/26 16:07ID:4vP7z/gC
9になってからDCが取得できるようになったけど、
αが使えないから結局自分でイメージ操作しなきゃいけないんだよね
0162名前は開発中のものです。03/09/27 08:23ID:QTyrRSDv
えーとD3D9で以下のような感じで Windoid モードで 60fps ほど画面を更新しているんですが、
なんだか微妙にテアリングが出てしまいます。D3D8 の SWAPEFFECT_COPY_VSYNC がなくなった
関係でこれは避けようがないのでしょうか。P4 3.0G + Intel 865G オンボード VGA です。
SWAPEFFECT は COPY, FLIP, DISCARD の全て試してみました。。。

// 毎秒 60 回呼ばれる
UINT cSwapChains = pd3dDevice->GetNumberOfSwapChains();
for (UINT iSwapChain = 0; iSwapChain < cSwapChains; iSwapChain++) {
 CComPtr<IDirect3DSurface9> pBackBuffer;
 pd3dDevice->GetBackBuffer(iSwapChain, 0, D3DBACKBUFFER_TYPE_MONO, &pBackBuffer);
 pd3dDevice->SetRenderTarget(0, pBackBuffer);
 pd3dDevice->BeginScene();
 ...描画処理...
 pd3dDevice->EndScene();
}
pd3dDevice->Present( NULL, NULL, NULL, NULL );

0163 ◆/lQMO72QVo 03/09/27 11:50ID:Zbl+k1GC
http://aa.2ch.net/test/read.cgi/mona/1063098214/l50
0164名前は開発中のものです。03/09/27 12:51ID:GhzIUXdM
>>162
ヘルプの「DirectX 9.0 への移行」をよく読むべし。
0165名前は開発中のものです。03/09/28 01:19ID:a+akW1WN
256x256のHeight DataがあるんですがD3Dで
グリグリするにはどう書けばいいですか?
ヒントだけでもいいので教えてください
0166名前は開発中のものです。03/09/28 01:52ID:tqpqQKn3
ふつうにポリゴンでつなげてみたら?
0167名前は開発中のものです。03/09/28 16:37ID:n87Rw2yc
>>165
1.BMPファイルから高さ情報を読む。
2.VERTEX構造体に取得した高さ(Y座標)とX,Z座標
(その他、必要なら法線ベクトルやUV座標)をセット。

後はゲームループ中で、
VERTEX情報をSetVertexShaderとかで指定して、DrawPrimitive系の
命令で描画する。

こんな感じかな? 1.の処理させるのが一番面倒くさいかも。
0168名前は開発中のものです。03/09/29 14:29ID:LJ4M8ydv
>>194
ヘルプを読んだ限りでは、D3DPRESENT_INTERVAL_ONE を使えってことみたいですね。。
D3DPRESENT_INTERVAL_ONE でもダメっぽいので、このアダプダ(ってもオンボードだけど)
だとDirectX9 では無理ということであきらめておきます。
0169名前は開発中のものです。03/09/29 15:50ID:u36ThLJ2

            ∧_∧
     ∧_∧  (´<_`  ) 
     ( ´_ゝ`) /   ⌒i   
    /   \     | |
    /    / ̄ ̄ ̄ ̄/ |
  __(__ニつ/  FMV  / .| .|____
      \/____/ (u ⊃
0170名前は開発中のものです。03/10/01 15:26ID:P7z7yNso
http://www.shaderx2.com/
日本語版まだでないの?
0171名前は開発中のものです。03/10/02 19:08ID:oRuaMBhV
マジレスならぬ、マジネタ。
DX7で。
3Dの当たり判定って、モデルのワールド座標を使用すんじゃん。
このワールド座標は、D3Dで描画する際に、内部で算出してるじゃん。
だから、それを使って当たり判定をしたいんだけど、
このワールド座標を取得することができね。
座標変換だけを実行するProcesVerticsを使うと、
ワールド変換、カメラ変換、ひし形の台変換、スクリーン座標変換
だかまで自動的にやっちまうじゃん。
だから、ワールド変換までを行った座標を取得したいんだけど、できねよな。
自分で計算プログラム作ると、無駄な計算じゃん。
他のサイトを見ようとおもたらD3Dを扱ってるサイトのねーこと。
0172オレー03/10/02 19:14ID:37nYM4r4
>>171
ワールドマトリクスを自分でかけてD3Dに渡すんじゃねーの?
内部で算出ってなんだよ
0173名前は開発中のものです。03/10/02 19:17ID:oRuaMBhV
おお!釣れた!。じゃなくって、レスはや。
>ワールドマトリクスを自分でかけてD3Dに渡すんじゃねーの?
なにそれ。自分で計算すんのかよ!

描画は、
1.モデルデータ作る
2.D3DMATRIX作る
3.SetTransformで、ワールドマトリックスセット
4.DrwaPrimitiv
じゃん。自分で計算なんてしてないだろ
0174オレー03/10/02 19:21ID:37nYM4r4
>>173
>3.SetTransformで、ワールドマトリックスセット

素直に↑このワールドマトリクスとモデルデータをかけたやつで計算しろよ
0175名前は開発中のものです。03/10/02 19:21ID:oRuaMBhV
>ワールドマトリクスを自分でかけてD3Dに渡すんじゃねーの?

んなことしねーよ!オレーは、そうやってんのか?
0176オレー03/10/02 19:22ID:37nYM4r4
>>175
いや、してない。勘違いしたんだ
0177名前は開発中のものです。03/10/02 19:23ID:oRuaMBhV
>174

だからそれやると計算が無駄になるつってんだろ
0178オレー03/10/02 19:24ID:37nYM4r4
>>177
俺はそうしてるけどな。描画しねーと衝突判定できねーなんてfps低かったら悲惨だしな
0179名前は開発中のものです。03/10/02 19:26ID:oRuaMBhV
だから、描画の際に、たぶんHALで計算してんだから、
そんときに算出されたワールド座標を流用すればいいでしょ。
それがムリなら、座標変換を、個別に指定できるべきだし
0180オレー ◆bJKvyv1OZU 03/10/02 19:28ID:gTkZ+ADQ
>>179
俺のは描画より内部計算のほうが多くなる場合があるからツカエネエ
まーガンバレヤ
0181名前は開発中のものです。03/10/02 19:39ID:oRuaMBhV
>180
ゲームだとそうなるだろ。描画はD3DがHALで高速になるから、
そうするとネックは、あたり判定になる。
ツカエネ理由が分からんが。

座標変換は、モデル→ワールド→カメラ→プロジェクション→画面
になってて、これって、D3DMATRIXを使った同じ方法を取ってると思ってる。
変換の名前は変わっても、コード的にやってることは同じ。
で、最初に、モデル→ワールドだけを行わせる。このワールド座標はあたり判定に使用。
そのワールド座標を、DrawPrimitiveに渡して、DrawPrimitiveには、
ワールド→カメラ→プロジェクション→画面
の範囲を行わせる。
とできるべきだろう。
0182オレー ◆bJKvyv1OZU 03/10/02 19:52ID:Jlg/RJFo
>>181
あああ。ProcessVerticesをもっと融通きかせろって話か!
そういえばそう書いてあるな。そうだな俺もそのとおりだと思うぞ。

しかしこの板は使いにく否
0183名前は開発中のものです。03/10/03 02:47ID:TURYwUXu
なんの話してるのかわからないんだけど座標変換って
モデル(頂点データ)→ワールド→カメラ→プロジェクション→画面
で、いんだよね。
でも、計算順序って
まず、
ミックス = ワールド→カメラ→プロジェクション
で、最後に
モデル(頂点データ)→ミックス
だよね。
途中もなにもねーと思うんだけどどうよ?
0184名前は開発中のものです。03/10/03 10:03ID:c42nfsnL
物体が視野に入っていなければ描画をパスさせるため
物体の中心座標をいちいち透視変換しているんだけど
こういうのもHAL側で一気に変換してもらえんかなぁ…
0185名前は開発中のものです。03/10/03 17:20ID:w9WLibzF
http://jbbs.shitaraba.com/travel/2226/
0186名前は開発中のものです。03/10/03 17:47ID:MBDW7FWT
>>183
普通はそうだと思う。よっぽどヘボい実装でなければ。
あと、ついでにビューポート変換まで一緒にやっちゃうかもね。
0187名前は開発中のものです。03/10/03 19:56ID:SyJm30wx
>>183
いや、パイプラインとの兼ね合いの話でしょ
0188名前は開発中のものです。03/10/12 03:20ID:KIwlleBu
>171

HALは、内部では1つの行列になってるから、分けると2倍遅くなる。
そもそも、当たり判定にモデルの描画用の姿勢は必要ない。
0189名前は開発中のものです。03/10/13 07:30ID:8OV7MIl9
>>171
>このワールド座標は、D3Dで描画する際に、内部で算出してるじゃん。
頂点のワールド座標の位置を求めるなら内部だけど
171が欲しいのはしてないでしょ?

SetTransform(D3DTS_WORLD,world);

とか突っ込んでるのがワールド座標じゃないの?
0190オレー03/10/13 08:09ID:B3HQr2aa
ってか、当たり判定を専門にやってくれるチップがビデオカードについて
それをあつかうDirectCollisionがあればいーんだよな!!
0191名前は開発中のものです。03/10/13 11:34ID:bV77mRDF
>>189
文脈的に変換後の頂点座標の事かと>ワールド座標
0192名前は開発中のものです。03/10/14 05:51ID:tEdriz0H
>188
何をいってんだかよくわからんね。
>HALは、内部では1つの行列になってるから、分けると2倍遅くなる。
当たり判定用に、トランスフォームすると、描画用と当たり判定用で2つで、2倍遅くなる?
>そもそも、当たり判定にモデルの描画用の姿勢は必要ない。
姿勢ってなんだよ。中身をはっきしいえや。
てか、こいつ、なに気取ってんだよ。ダサ!!
0193名前は開発中のものです。03/10/14 06:42ID:stBbbSEk
>>192
お前こそオブジェクトのワールドの姿勢行列がほしいのか
オブジェクトの頂点ごとのワールドでの位置座標がほしいのか
はっきりしろよ。(どっちなんだよ、いえよ馬鹿)

188の内容が理解できない馬鹿はお前ぐらいだっつの。
(いやマジで)
0194名前は開発中のものです。03/10/14 09:04ID:qbnFovZI
1. オブジェクトの頂点を全部変換するんじゃなくて、
当てられるほうの判定球とベクトルにワールド座標の逆行列をかけて判定。

2. 必要に応じて1の段階でリストアップしたポリゴンを詳細に判定
0195名前は開発中のものです。03/10/14 20:48ID:tEdriz0H
>196
>お前こそオブジェクトのワールドの姿勢行列がほしいのか
>オブジェクトの頂点ごとのワールドでの位置座標がほしいのか
>はっきりしろよ。(どっちなんだよ、いえよ馬鹿)
アホだなこいつ。気取ってるのを指摘してやったら、さらにアホなことを、、、。
ワールドの姿勢行列は、オブジェクトごとに持たせるに決まってんだろが。
だから、それは3Dでのオブジェクトには不可欠なデータだから有って当たり前。
だから、欲しいっていってんのは、頂点ごとのワールドの位置情報しかないだろが。くだらねぇこと聞くんじゃねよ
0196つか188は俺じゃねーの03/10/14 22:56ID:7kwhY3R9
>>195
おまえ行列の演算順序を理解してねーのか?
183に詳しく書いてくれた人がいるだろ?なんで読まない?

普通は

ミックス = ワールド→カメラ→プロジェクション
モデル(頂点データ)→ミックス

というふうになってるんだよ。
ようはワールド→カメラ→プロジェクションをバラバラに頂点データにかけてるわけじゃなくて
ミックスした行列を一回だけ頂点データにかけてるんだよ。
だから途中も何もないんだよ。理解できたら返事しろアホ。
0197名前は開発中のものです。03/10/14 23:46ID:tEdriz0H
おいおい!I/O別冊によれば、
座標変換はDrawPrimiticeメソッドなどがよばれたら、
ワールド、ビュー、射影の順に座標変換が行われるって書いてあるが。
0198名前は開発中のものです。03/10/15 00:11ID:LRGxbgsn
>>197
それは行列のかける順番(方向?)を強調したかっただけじゃねーの?
一度シェーダでも触ってみれば?
0199名前は開発中のものです。03/10/15 00:33ID:zBR2pFHf
頂点座標に何度も演算したら、行列作ってる意味無いじゃん。
ローカル座標→スクリーン座標が一発で変換できるのが行列の偉いところ。
0200名前は開発中のものです。03/10/15 01:38ID:EakjPa/S
つうかDirectXの機能使うしか理解出来ない奴ばっかなのか?
別に自分で座標変換した頂点を描画するなんて実装は誰だって理解して組めるだろ。
問題はそうじゃなくDirectXの機能で描画に使った部分を
自分が必要なワールドの処理に流用しようとしてアホな議論をしてる事だろ。
DirectXの仕様がそうなってない以上は、自分で用意して処理するのが当り前。
0201名前は開発中のものです。03/10/15 02:15ID:muRCTpui
>>200
いや、なんていうか195は
>DirectXの仕様がそうなってない
ってところから理解できてなかったように見えるけど。
まあ、はじめは誰でもこんなもんでしょ。

基本的に描画はゲームの処理にちょっかいを出すような設計にはしない
ってことがそのうち理解できるでしょ。
0202名前は開発中のものです。03/10/15 02:34ID:Xs8JLMZk
>それは行列のかける順番(方向?)を強調したかっただけじゃねーの?
そうなんか?しかし、どうよんでも順番に変換してると読めると思われ。
DirectX8実践プログラミングP30
DX7のヘルプみたがそれらしき説明は見当たらないが。(ミックスという用語すらない)
しかし、全ての行列をMultiplyして一度でスクリーン座標にできるならその方がよいな。
>HALは、内部では1つの行列になってるから、分けると2倍遅くなる。
こういった理由がそれと分かる。
0203名前は開発中のものです。03/10/15 02:43ID:Xs8JLMZk
>201
1個の行列にトランスフォームしてるだけなら、HALでワールドに変換してないから、
>200
>問題はそうじゃなくDirectXの機能で描画に使った部分を
>自分が必要なワールドの処理に流用しようとしてアホな議論をしてる事だろ。
これは、的はずれになる。

>201
>基本的に描画はゲームの処理にちょっかいを出すような設計にはしない
>ってことがそのうち理解できるでしょ。
何いってんだよこれは。基本的になら、裏技的にはやる場合もあるってことだろが。意味ねー
0204名前は開発中のものです。03/10/15 03:12ID:QGfW+W06
     / /-'''''| | /l /‐'''/'' .人   i'    .:: :;'" / / l  ノ゙i// ,,-‐'"──==
     //'"   ゙i;: | /‐' ./,, ,,ノ ゙i;,.  |     _,,-ヾ.// ノ ,-''" l |  ‐'"   ,,,-‐二
     レ'     ヽl:i' ./  )'、‐,\゙i;: | ,,,-‐二-┬ナ" /‐'"‐ 〉 ,i'───'''" ̄~-''"
         ,-‐',ヽ|'"  ./゙ヽ-ゝ='\゙i,'''ヽ -゙=‐'   '" ,‐'ノ,, /‐''" ,,-‐'''"~
        / / ;;:.  ──ヽ, ゙i;'''''' , ゙ "-‐'''''"""    〔_,/ ゙ヽ'-'"~
       / /   / ,; ,,_}_  ゙、 ./__,,  _,,       /      \    >>202-203おまえ
      ,;'  / ,;;;:;:/;: ,,   ~ ヽ ヽ.  ヽニ‐'、     / /       ゙i,_  ここおかしいだろ
    ./        ''  ,l,,,,,,/ 〉  ゙ヽ、 ''''    ,,-''" /        ゙i.\ \

■ このスレッドは過去ログ倉庫に格納されています