Direct 3D
■ このスレッドは過去ログ倉庫に格納されています
0001.
01/11/09 17:06ID:wrfy6OtCとりあえずDX8以降は初期化が簡単になったり関数が変わったり
結構大幅に変わりましたがその辺も踏まえてお願いします。
005534
01/11/12 06:23ID:DmTmPUJO悪ぃな、滑稽に映るだけなら構わねぇんだが
不愉快に感じたんなら謝るぜ。そういうつもりはねぇんだ。
てわけで消えるます。それじゃネ。
005634
01/11/12 06:37ID:???>>13は「加算合成」つってるから、
ブレンドファクターでアルファ使うのはルール違反だぜ。
引っかけ問題ってやつか?その辺も踏まえてお願いします。
んじゃ、今度こそ本当にサヨナラです。
0057名無しさん@お腹いっぱい。
01/11/12 06:43ID:VxqY6PcNいい加減な比較テストだけど、一応そんな結果んなった。
環境は、GeForceでT&L有効のときの頂点バッファ。
頂点数300〜400程度のトライアングルリスト。
>>55
54=me
00581
01/11/12 07:37ID:JGmI7m9853さんが言ってるとおりDrawPrimitiveじゃなくてDrawPrimitiveUPで
毎回指定していましたけど、これっておかしいですかねぇ。
他の人は全部頂点バッファ使っているのでしょうか。
頂点が頻繁に変わる時とか、逆に効率悪くならないですか?
0060名無しさん@お腹いっぱい。
01/11/12 15:35ID:IxLumFOK別に効率は変わらないと思う。
というか頂点バッファをロックして値を変更するってこと自体あんまりやらない。
簡単なモーフィング等ならD3Dのファンクションで十分表現出来るし。
あと、DrawPrimitiveUPを使う事は全然問題なし。
アホな煽り豚は無視するべし。
0061名無しサソ
01/11/12 17:43ID:???HT&Lが使えない時はシステムメモリにVertexBufferを確保する
様にするから、頂点操作にLockが必要だとしても目立つほどの
オーバーヘッドは無いように思う。それなら、新しいデバイスを利用
してVertexBufferは積極的に使って良いと思うんだけど。とりあえず、
自分はG400だけど使ってるよ。毎度Lockして書き換えてるけど(苦笑)
さっさとUV自動生成使ってマルチテクスチャにしてしまおう・・・。
0062名無しさん@お腹いっぱい。
01/11/12 17:43ID:???毎回データを内部のバッファにコピーしているから。
頂点バッファを使うとこのコピーが無くせる。
でもUPは実験用には便利。
頂点バッファをロックして値を変更は
頂点数が不定なパーティクルでは使うかもしれない。
PointSpritesというサンプルがやってるよ。
0063名無しサソ
01/11/12 17:48ID:???事になるから、逆に不利になるかも。でも、その時はその時でVertex
Bufferを使いつつ別の工夫をした方が良いような・・・。さすがにあまり
にアクセスが頻繁だと使わないほうが良いだろうけど。
0064名無しさん@お腹いっぱい。
01/11/12 18:44ID:???黙ってそれに従うほうが幸せになれるってものさ。
0065名無しさん@お腹いっぱい。
01/11/13 09:14ID:???VRAM上に頂点バッファを作らないようにするためのフラグが
CreateVertexBuffer()にあるよ。
PointSpritesでは使ってる。
006634
01/11/13 10:20ID:???>>60
アホな煽り豚より知能足りてねぇ昆虫野郎の方がよほど有害だ。
UPが(カードにもよるが一般論として)非効率的なのは常識だろが。
それともあれか?初心者虐めってやつか?
まぁいいや、とりあえず逝っとけ。
つうか、頂点いじりたきゃvs使え。テメェの将来の為にもな。
006760じゃないけど
01/11/13 12:30ID:ppy9bP4V(゚Д゚)ハァ?
DrawPrimitiveかDrawPrimitiveUPかなんて状況によって使い分ける
のが普通だろ?
一概にどっちが速いなんていえねーよ。
こいつはタダの知ったか野郎だな。
ひょっとして頭でっかちのVB房なんぢゃねーの。
0068名無しさん@お腹いっぱい。
01/11/13 12:36ID:???0070名無しさん@お腹いっぱい。
01/11/13 13:04ID:???>>51で1を馬鹿にしているのにも関わらず自分が馬鹿にされると
このキレ模様。
バカ丸出しだねっ
007168
01/11/13 13:09ID:???0072名無しさん@お腹いっぱい。
01/11/13 13:21ID:???0073名無しサソ
01/11/13 17:28ID:???あ、それは知ってるよ。ただ、メカニズム的にシステムメモリに
VBufferを作った時に、HT&Lってどう言う風に動作しているのか
がよく分かって無いのだけど。自動的にVRAMに転送して処理
してくれるのかな?それとも、CPUが座標変換??
0074名無しさん@お腹いっぱい。
01/11/13 18:34ID:???システムメモリのAGPメモリに置いてある頂点バッファから
グラフィックチップがダイレクトに読み込んでくれるメカニズムだよ。
AGPメモリ以外のシステムメモリにある頂点バッファでは駄目だけど。
AGPメモリに頂点バッファを置くように指定するのが
CreateVertexBufferのフラグの組み合わせで
PointSpritesの通りにやればOK
0075名無しサソ
01/11/13 23:21ID:???成る程。AGPメモリに置けばビデオカードからはVRAMとして
見えて、実際はメインメモリだからLockしての書き換えもそこまで
遅くはならない、と。ありがとう、完全に疑問が解けたよ。
となると、書き換えが頻繁でも充分VertexBufferは使えるかな。
0076レックス
01/11/18 00:50ID:k3asQ08Vアニメーションさせる場合は、パーツをバラバラの
状態で読みこんで自分で一つ一つモーションを付けるものなんでしょうか。
他に効率のいい方法があれば教えて下さい。
0077名無しさん@お腹いっぱい。
01/11/18 01:28ID:IsgYCSXR(階層構造と行列のデータ群)それをそのまま再生させるよ。
で、モーションと別のモーションの間は補間でつなぐ。
モーション中に別のモーションに移りたいことがあるからね。
あとは例外的に特定のパーツに差分行列かけて個別に動かすこともある
ケースバイケースばい。
0078レックス
01/11/18 01:37ID:???そうやるんですか・・アニメXファイルが出せるモデラ
は高いんでゲームでは使わないのではと勘違いしてました。
ありがとうございます。
007977
01/11/18 02:48ID:???おれは自前ファイルだけど目で読めるテキストXファイルからモーション情報だけ
取り出させて使わせてもらうことがある。
逆にXファイルのケツに他のフォーマットから取ったモーション行列を
自分でくっつけてやればモデラが対応してなくてもアニメXファイルの出来上がりじゃないか?
0080名前は開発中のものです。
01/11/26 03:08ID:???0081名前は開発中のものです。
01/11/26 23:02ID:uAFlRpp20082
01/11/26 23:49ID:e4V2gjyGヘンテコXファイルなんていつまでも残してもしょうがないだろ〜
0083名前は開発中のものです。
01/11/27 00:13ID:???・拡張性はあるけど拡張は出来ないに等しい。
・ストリップ等、データの最適化をデータ段階で出来ない。
・テキストだとバカでかい。バイナリでもかなりデカイ
・読み込みが遅い。
・モーションデータを不動少数マトリクスで持つために無駄が多すぎる。
ま、こんな感じ?それにしてもリアルタイム系のモデル
フォーマットをどこかが提唱してくれないとそれそろ、個人で
手が届く時代じゃなくなってきたね。
0084名前は開発中のものです。
01/11/27 06:31ID:???http://www.xglspec.org/
0085名前は開発中のものです。
01/11/27 07:00ID:???とりあえず質問とかする前に最低限↓くらいは読んでおこうよ。(下の2つは暗記するくらいのつもりで)
ttp://www.microsoft.com/japan/developer/directx/techart/DirectX8faq.asp
ttp://www.microsoft.com/japan/developer/library/jpdx8_c/_dx_d3drenderstatetype_graphics.htm
ttp://www.microsoft.com/japan/developer/library/jpdx8_c/_dx_d3dtexturestagestatetype_graphics.htm
それと、DrawPrimitiveとDrawPrimitiveUPだけど、速度だけで言ったら
DrawPrimitiveの方が速いよ。適切な使い方をする必要があるけど。
確かにいちいちLockするのは面倒だし、使い方を間違えるとだいぶ遅くなって
面倒ではあるけど。得にTnL使用時は気をつけないとパフォーマンスがた落ち。
ただ、1はそこまで気にするような段階には見えんが。
0086名前は開発中のものです。
01/11/30 01:05ID:???0087名前は開発中のものです。
01/12/01 03:26ID:3MhhzyVSLightwaveのデータ形式なら比較的読み込みが楽なんで自前で読み込み
作ってもバチはあたらないと思うが、以下のライブラリがとっかかりには
なると思う。
http://www.dstorm.co.jp/dev/sdk/sdk.html
のObject, Sceneライブラリ。
もしLightwaveのデータを何も考えずに表示したいのなら、X形式にコンバート
すればよいし、自前のフォーマットを作りたいのならそれを改造するもよし、
直接読み込むような形であれば、親切なドキュメントとOpenGLのサンプル
プログラムを参考にしてみれ。全部ソース付きなので根気よく解析すれば
かならずわかるはず。
0088.
01/12/07 12:54ID:Wr0guOjeきたよ、毎度のごとく現れる高飛車君。
この程度っていうぐらいだったら自分で高度(?)な話題でもふってみれば?
0089名前は開発中のものです。
01/12/07 20:53ID:???「3Dやってるプログラマは人を小馬鹿にしたやつが多い」
と言われる。
0090名前は開発中のものです。
01/12/07 22:33ID:DT4mxdiM高度な話題振っても付いてこれる奴がいない(アマだから)
or付いてこれても書きこまない(プロだから)
0091名前は開発中のものです。
01/12/07 23:29ID:???0092名前は開発中のものです。
01/12/07 23:43ID:???ガイジンはプロもアマも出し惜しみしないあるよ。
0093名前は開発中のものです。
01/12/08 00:02ID:???下手な言い訳はやめなさい。
単に高度なネタ持ってないだけでしょ?オレモナー
0094名前は開発中のものです。
01/12/08 09:59ID:???そこが日本特有の長所でもあり短所でもあるな。
0095名前は開発中のものです。
01/12/08 15:21ID:???>ガイジンはプロもアマも出し惜しみしないあるよ。
アマだったら日本でも出し惜しみしてない良質なコンテンツが豊富にあるだろ?
プロに関しては、技術隠蔽するのは当然。それは海外も同じ。
ただ、海外はプログラマー社長が極めて多いので、
社長判断で勝手に公開している例が目立つ。
0096名前は開発中のものです。
01/12/08 21:46ID:???Stable Fluids使わせろやゴルァ
0097名前は開発中のものです。
01/12/09 01:04ID:???もし使ったとして、A|Wがお得意先の日本のゲーム会社を訴えるんだろうか?
0098名前は開発中のものです。
01/12/16 21:46ID:???レベルも人数もちがう。
まぁ、日本は少数精鋭ってことにしとこう。
0099名前は開発中のものです。
02/01/03 20:37ID:3/AaBPnv0100名前は開発中のものです。
02/01/03 22:50ID:???何、アげてんの?
0101名前は開発中のものです。
02/01/04 01:50ID:???何、サげてんの?
0102名前は開発中のものです。
02/02/10 14:33ID:???0103名前は開発中のものです。
02/02/10 21:33ID:???ヴォケどもが。
0104.
02/02/12 21:05ID:9lA8tETCという事で質問させてください。
D3DXLoadMeshFromX関数でXファイルを読み込んだ後、
このオブジェクトに対して行列を設定するには(既にローカル座標は作っているのですが)
どの関数を使うのでしょうか。
とりあえずそのままだと座標(0,0,0)に表示されているのですが、、
0105名前は開発中のものです。
02/02/12 21:06ID:???うるせー馬鹿
0106名前は開発中のものです。
02/02/12 21:09ID:???質問はこちらへ
プログラム板
Direct3D
http://pc.2ch.net/test/read.cgi/tech/1011762546/
0107104
02/02/12 21:25ID:9lA8tETCそれってココじゃないんですか?
0108名前は開発中のものです。
02/02/13 04:05ID:NOxt2cqPオブジェクトに対し、トランスフォーム行列を設定するという認識がそもそも間違い。
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 に座標を設定するらしい。
が、ヘルプ読んだが良くわからん。
どうやればいいか、分かる人教えてみないか。
0110↑
02/02/22 18:53ID:Lhsx7X1+ずれてる。こっちに差し替え。
描画先エリア サーフェース
↓ ↓
ret=pDDSBack->Blt( &rect1, g_pDDS,NULL, 0, NULL );
●D3Dでのやり方
テクスチャサーフェース
↓
pd3dDevice->SetTexture( 0, g_pDDS );
0111名前は開発中のものです。
02/02/22 21:30ID:???> D3Dで表示して、回転できるようにしたい。
この程度の処理が
> DX8には、ハードウェアが対応してないようなので、DX7で。
DirectX7で対応していて、DirectX8では対応していない
ハードウェアがなんなのか教えて欲しい。
そんなものあるの?
0112なかまかな
02/02/22 23:09ID:8+9pSBiPDX8だと、ハードウェアが新しくないと機能しないよね。
サンプルを実行したら、ダイアログボックスがでて、ソフトウェアモードで処理された。
DX7のサンプルは、ハードウェア(HAL)で動いた。
それとも、回転だけなら、今までのビデオカードでもハードウェアで動くの?
0113名前は開発中のものです。
02/02/22 23:15ID:???0114名前は開発中のものです。
02/02/22 23:32ID:lyn6ieNNつまんねぇネタだな
0115名前は開発中のものです。
02/02/23 02:42ID:???持ってるハードが古いorメーカが既に逝っててドライバが更新されてないとか(w
0116なかまかな
02/02/23 10:43ID:OEDm8gEoでもほかのDXのスレで、DX8は、ビデオカードとかが新しくないと
ダメだったようなこといってたよーな
0117名前は開発中のものです。
02/02/23 11:32ID:???板ポリゴンにテクスチャ張ってD3DXMatrixRotationXなどで
回転させてる。
0118名前は開発中のものです。
02/02/23 11:53ID:???DirectX8固有の機能でなければ古いドライバでも動作します。
動かないのはサンプルに新機能のデモが多いせいでは?
0119109
02/02/23 15:23ID:u/EZFxFIでもXファイルを表示するだけのサンプルも、ソフトで処理された。
>117
なんだ。D3DXってライブラリ、付属してるのか。別途かと思った。
最初からコレ使えば良かった。どうしようかな。
おわる。
0120プログラマになりたい厨房(ひきこもり)
02/03/05 01:37ID:???このスペックのPC使ってDirect3Dimモードで作成して動かしても普通に動くかな?
VRAMは8Mバイト3Dチップ付き
メモリ64MB
CPUはPentium2 400MHz
0121名前は開発中のものです。
02/03/05 02:36ID:vchuM+1Wチップの名称くらいかけ。
ちなみにi810とかsisみたいなチップ内蔵の場合、UMAの方で
不具合でるからむり。
0122名前は開発中のものです。
02/03/08 01:28ID:WfC+A2/Gピクセルシェーダーの紹介されている書籍やサイトをおしえてくださぃ・・・。
でかい本屋を何件か回ったのですが、どのDirectX8本も
プログラムよりの基本的な3D表示のことしか書かれていないので
Direct3D固有のビジュアル表現の可能性がわからないのです。
・・・なんとなく放置されそうですが(w)、よろしくおねがいします。
0123名前は開発中のものです。
02/03/08 01:32ID:???http://www.microsoft.com/japan/developer/directx/welcome/dsmsdn/directx08202001.asp
http://www.microsoft.com/japan/developer/directx/japan/dx8/DX81PS.asp
こんなのでいい?
0124122
02/03/08 01:50ID:WfC+A2/Gすばやいレスありがとうございます。
そーです。そんなのですー。
かなり詳しく載っているのでじっくりと見させてもらいます。
親切な方、ありがとうございました。
0125名前は開発中のものです。
02/03/09 01:34ID:???ttp://developer.nvidia.com/
24h遅れスマソ
0126名前は開発中のものです。
02/03/26 19:25ID:???困っているんですが原因と対処方法わかりますでしょうか
http://mrpackman.hoops.ne.jp/D3DLearn.zip
大きくて申し訳ないですがこんな感じです
0127名前は開発中のものです。
02/03/30 17:45ID:???Xファイルは何で作ってる?
ツールによっては反転させないとおかしな事になる
0128名無しさん
02/04/15 21:05ID:HOmtp0LM0129名前は開発中のものです。
02/04/15 21:59ID:???むしろDirectXがライブラリ。
0130名前は開発中のものです。
02/04/15 22:05ID:???http://www.geocities.co.jp/SiliconValley-SanJose/8134/
0131名前は開発中のものです。
02/04/16 05:10ID:rxWSPVEMD3DX8
0132名前は開発中のものです。
02/04/16 08:54ID:wEjyLAPYhttp://www.ah.wakwak.com/~jey/
こんなのもあるよ。オープンソース
0133名無しさん@お腹いっぱい。
02/04/25 09:07ID:KWIZFbqs0134名前は開発中のものです。
02/04/25 11:57ID:???以前は良く見たけど。
最近はめっきり見なくなったねえ
0135名前は開発中のものです。
02/05/03 13:47ID:.VzbAcu.0136名前は開発中のものです。
02/05/03 13:47ID:???0137名前は開発中のものです。
02/05/14 00:58ID:???〜DirectX 9、10bitカラー処理、Triple Headなど多くの新機能
http://www.watch.impress.co.jp/pc/docs/2002/0514/matrox.htm
遂に正式発表されたみたいだ。え?板チガイか!?
0138名前は開発中のものです。
02/05/14 18:40ID:iHWdaZs2いつごろになるのだろう?
0139名前は開発中のものです。
02/05/14 19:34ID:???XBOX2の頃かな?なんちて
0140名前は開発中のものです。
02/05/14 21:32ID:gp9yAFEg0141名前は開発中のものです。
02/05/15 00:13ID:???正直、DirectX6くらいな気がするよ……。
0142名前は開発中のものです。
02/05/15 00:14ID:???0143名前は開発中のものです。
02/05/15 03:32ID:1hyuY9to何をやっても駄目だぁ、エラーコードもUnknownだしィィ
つーか、もっと根性みせろやD3DXが!!例外出てる訳でもねーんだろ!!
それが出来ねーんならソース公開しろォォ!!
ID3DXSkinMesh::Convert系で作ったスキンメッシュはリストアで必ず失敗するしよォォォ!!
0144名前は開発中のものです。
02/05/15 14:05ID:???実際、7あたりが標準になってるんじゃない?
0145名前は開発中のものです。
02/05/16 04:32ID:???一度サーフェイスにレンダリングした後にコピーするしかありませんか?
0146名前は開発中のものです。
02/05/16 04:32ID:rbiFXjkI0147hoge3d
02/05/16 19:32ID:???IDirect3DTexture8::GetSurfaceLevel()でサーフェスを取得してSetRenderTarget()でレンダリング対象にすればいい、かな?
やってみたことないので参考まで。
0148hoge3d
02/05/16 19:42ID:???(141とは別人ですが・・・。)
開発ターゲットはDirectX8になってるにしても、
安全に使えるハードウェア機能としては6〜7くらいという気もする。
開発力が十分あって、ハードウェアごとにレンダラの構造変えられるなら話は別ですが・・・。
0149hoge3d
02/05/16 19:50ID:???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テクスチャの最大サイズってどうやって取得すれば
いいんでしょうか。
0152名前は開発中のものです。
02/05/20 19:28ID:???struct D3DCAPS8の
MaxTextureWidth および MaxTextureHeight
IDirect3D8::GetDeviceCaps使って
0153150
02/05/20 19:46ID:???それこそ求めていたものです
ありがとうございました!
0154hoge3d
02/05/29 21:40ID:???■ このスレッドは過去ログ倉庫に格納されています