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

鬱だ氏のう DirectX (Part 8)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。03/03/03 16:25ID:bb2JYtGF
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。
■ 過去スレ
Part 1 http://piza.2ch.net/tech/kako/966/966655286.html (プログラム板)
Part 2 http://pc3.2ch.net/test/read.cgi/tech/997101556/ (プログラム板)
Part 3 http://game.2ch.net/gamedev/kako/1005/10051/1005119775.html
Part 4 http://game.2ch.net/gamedev/kako/1016/10162/1016276254.html
Part 5 http://game.2ch.net/test/read.cgi/gamedev/1027351925/
Part 6 http://game.2ch.net/test/read.cgi/gamedev/1033920036/
Part 7 http://pc2.2ch.net/test/read.cgi/gamedev/1039509250/
0071名前は開発中のものです。03/03/10 15:12ID:kvxfP2mg
>>68 Viewportの使い方くらい自分で調べなさい。
0072あぼーんNGNG
あぼーん
0073名前は開発中のものです。03/03/10 23:30ID:Q2chtoZB
>>70
そりゃ仕方が無いだろ
Direct Drawをやってるとこの辺りすごくよくわかるんだが・・・
隠蔽された分だけわかりにくくなってるんだな
0074名前は開発中のものです。03/03/11 00:10ID:GSTN6i2p
>68
スクリーンセイバーのプレビュー画面みたいのだったら、
子ウインドウを作って描画したほうが確実だと思う。
0075名前は開発中のものです。03/03/11 00:38ID:NTMUpZKB
>>74
フレーム無しのスタティックウインドウを子フレームとして持てば簡単だね。
0076あぼーんNGNG
あぼーん
0077名前は開発中のものです。03/03/11 06:02ID:di3kynWg
おはようございます。朝なんで人いなそうですが、よろしければお知恵をお貸しください。

8の頂点データ、12面×3のフェースデータ(最大三角形プリミティブ)、
そして各頂点にuvデータを12×3個持つ立方体のデータがあります。

これをFVFがXYZとUVの頂点バッファ、及びインデックスバッファ(D3DXMeshなので必須)に
納めたいのですが、この場合、uvを基準に頂点データを展開するしかないのでしょうか?

馬鹿正直にやったら、頂点データ36、1234…と順番に並ぶだけのインデックスバッファが
出来てしまい・・・さすがに無駄が多そうです。
おまけに期待してたD3DXMesh::Optimizeも、データを減らしてはくれなくて・・・。
0078名前は開発中のものです。03/03/11 07:06ID:jK6WixU/
いや、そーゆーもんじゃねーの?
00797703/03/11 07:22ID:di3kynWg
>>78
朝もはよから、レスありがとうございます。
そーゆーもんでしたかぁ。おかげでホッとしました<(*´Д`)
いやぁ、あまりにインデックスの並びが無意味になるので、ドキドキしてたもんですから・・・。

それにしても、自前データでD3DXMesh使うのは面倒ですねぇ・・・。
そんなに難しくないとはいえ、Attributeセットに関する資料なんかwebにひとつもないとは_| ̄|○
0080名前は開発中のものです。03/03/11 07:56ID:kBGOIwNh
なれればD3DXMesh使わんほうが楽だから

0081あぼーんNGNG
あぼーん
0082名前は開発中のものです。03/03/11 08:50ID:PTH/PMsZ
>>79
自前データならD3DX使わなくていいじゃんよ
0083あぼーんNGNG
あぼーん
0084名前は開発中のものです。03/03/11 12:44ID:1oP06HA3
落ちゲーのフィールドデータとか、スピードアップのためにDWORD使ってるけど、
DirectPlayで転送するときには8bitもあれば充分だからBYTEに落としたい・・・。
けど、そうするとキャストが転送時のボルトネックになる・・・。

こんな時お前らならどうします?
0085名前は開発中のものです。03/03/11 13:32ID:VdHk5beI
ボトルネックというのが速度のことを言っているのなら
お前はやる前から頓珍漢なことを理由に実践しない怠け者
ベンチマークもとらずに速度がどうこう言うのは十年早い
0086名前は開発中のものです。03/03/11 14:01ID:qWTVQCsb
ベンチマーク以前の問題な気がする。
リトルエンディアンならDWORD→BYTEなんて0クロックで変換できるぞ。

ところで、まさか毎フレームフィールドデータを送る気なんだろうか…
0087名前は開発中のものです。03/03/11 15:02ID:Bahtpq57
>>77
 俺も初心者だから詳しくないけど、
それだとインデックスバッファにする意味ないんじゃないの?
前スレの>912 >913 >923 >930でファイナルアンサー!
0088名前は開発中のものです。03/03/11 15:07ID:erqaZPIu
ネットワーク上の転送とメモリ上のキャストは
ベンチマーク以前の比較かも。

ネットワーク上でそのまま転送するのと
メモリ上で編集して縮めて転送するのとでは
どっちが早いかなんて言うまでも無い。
0089名前は開発中のものです。03/03/11 16:19ID:DEXRCllx
落ちゲーは結果同期でいいだろ
つまり、「どこに何を置いたか」だけを転送すればよろし
これだけだとかなりヒマになるので、
ブロックの移動(ユーザーの入力)をUDPの優先度最低かなんかで送ればよろし
0090あぼーんNGNG
あぼーん
0091名前は開発中のものです。03/03/11 23:38ID:izzJqt42
> そうするとキャストが転送時のボルトネックになる・・・。

冗談きついZE!
転送リクエスト一回のほうがよっぽどでかいYO!
0092名前は開発中のものです。03/03/12 01:52ID:34R3W5Qa
バンプマップってどうしてあんなに面倒臭いんですか?
S,T,SXTの求め方がわからずこまってたら
凶弾ってゆうゲーム作ってる人のところ辿り着いたけどあんな複雑になるのはしょうがないの?
0093あぼーんNGNG
あぼーん
0094名前は開発中のものです。03/03/12 08:04ID:EJtJSjyG
>>92
D3DXComputeTangentがあるじゃないですか。
0095名前は開発中のものです。03/03/12 08:28ID:YryHEYdf
んげ、そんな便利な関数が!?
あれ?おわっ!DirectX8にはないのか。
くそーくそーくそーうわーん
0096あぼーんNGNG
あぼーん
0097名前は開発中のものです。03/03/12 08:32ID:EJtJSjyG
8.1からある。
0098名前は開発中のものです。03/03/12 08:44ID:PnhUwZmn
まじすか!?
0099あぼーんNGNG
あぼーん
0100名前は開発中のものです。03/03/12 10:12ID:n9W18Flh
質問です。
以前、VB6 + DirectX8 で航空写真を立体表示するシステムを作成しました。
無事に動作していたのですが、先日、ユーザーから「DirectX9のランタイムを
入れたらエラーが出るようになった」と言われ、こちらでも調査してみたところ、
確かにエラーが発生しました。
具体的にはDirectX9を入れると、D3DX8 の ComputeNormals メソッドの引数が
D3DXMesh だったのが D3DXBaseMesh に変更されてしまい、
「型が一致しない」というエラーが出るようになってしまいます。
D3DXMesh から D3DXBaseMesh に変換するような関数があるのかと探してみた
のですが見つかりません。
エラーが出ないように修正する方法をご存知の方がいらっしゃいましたら、
よろしくご教授お願いいたします m(__)m
0101あぼーんNGNG
あぼーん
0102名前は開発中のものです。03/03/12 17:50ID:cEGESv7c
DX9のDX3DXのアニメーションをつかってるサンプル知りませんか?
0103あぼーんNGNG
あぼーん
0104名前は開発中のものです。03/03/12 19:05ID:0K/wKlGY
>>102
SDKのサンプルが使ってるだろ
0105あぼーんNGNG
あぼーん
0106名前は開発中のものです。03/03/13 16:48ID:Ii9bz48e
モデリングデータが三角形リストなのですが、三角形リストを効率いい
三角形ストリップの組み合わせに変換するアルゴリズムってあるんでしょうか?

総当りで最適解を探すと O(2^n)なのでとても使い物にならないです。
0107あぼーんNGNG
あぼーん
0108名前は開発中のものです。03/03/13 18:34ID:jwJvEsOx
簡単にDirectXのバージョンを取得する方法無いですか?
GetDXVersionとか言うのを聞いたことあるけど使い方が分からないです。

開発環境はC++.netです
0109名前は開発中のものです。03/03/13 19:32ID:k+shlABQ
>>106
腐るほど研究されてると思うが、googleで検索すらしてないのか?
0110あぼーんNGNG
あぼーん
0111名前は開発中のものです。03/03/14 01:24ID:ypb+B9/2
>>106
DirectXに限って言うなら、NVTRISTRIPを使ってみるのはどうよ?
http://developer.nvidia.com/view.asp?IO=nvtristrip_library
0112あぼーんNGNG
あぼーん
0113名前は開発中のものです。03/03/14 13:14ID:LEfIlZag
>>108
ttp://www.microsoft.com/japan/msdn/library/ja/jpdx8_c/hh/directx8_c/_dx_version_checking_dxintro.asp

ついでに、サンプルソースをよく探してみなされ。
0114あぼーんNGNG
あぼーん
0115名前は開発中のものです。03/03/15 03:37ID:lWsehBXV
アルファブレンディングでメッシュを描画する場合、Z書き込みをオフにして手前の
オブジェクトから順にレンダリングするって事は理解できるんですが、半透明オブ
ジェクト同士が重なった場合のことを考えると、ポリゴン単位でZソートする必要が
ありますよね。
さらに半透明ポリゴン同士が重なった場合、ポリゴンを分割して面が交差しないよ
うにする工夫も必要だと思います。
でもこんな事やるとRenderStateの変更や頂点バッファへのアクセスが頻繁に起こ
ってしまいますし、何よりこんなプログラムを作るのは難しいと思います。
実際、市販のゲームとかはどうやってるでしょうか?
0116名前は開発中のものです。03/03/15 04:48ID:DYNwlk+J
全描画物をソートしてZバッファ使用。
0117あぼーんNGNG
あぼーん
0118名前は開発中のものです。03/03/15 06:54ID:oN83Oao0
荒っぽいけどオブジェクト単位のソートで済ましても気にならない場合が多い。
これは作ってみるとわかる。
ポリゴン単位でソートしたくなる部分は、人物の髪の毛・草や木の葉だね。
この部分は気の済むまでやれ。

0119名前は開発中のものです。03/03/15 06:58ID:DSMrL0/+
http://homepage3.nifty.com/digikei/sample/sample.html
なんだかすごいことになっています
0120あぼーんNGNG
あぼーん
0121名前は開発中のものです。03/03/15 13:18ID:N4pcUhcX
LightWaveのDirectX Export使っても サーフェイスのアルファ設定が出力されない(´・ω・`)ショボーン
0122名前は開発中のものです。03/03/15 13:24ID:lWsehBXV
>>118
今やりたいのが、円柱にテクスチャを貼った半透明の竜巻のエフェクトと
加算合成の爆発のエフェクトなんですけど、この両者が重なってもちゃん
と見えるようにするには、ポリゴン単位ソート+重なったポリゴンを分割
ってのをやるしかないんでしょうか
0123クラッシュ ◆zmflhpEGDw 03/03/15 13:55ID:5kjc56l/
半透明を含まないものだけをZソートして前から描画(Z書き込み=TRUE Z比較=TRUE)
半透明を含むものだけをZソートして後ろから描画(Z書き込み=FALSE Z比較=TRUE)
でいいんじゃない?
0124名前は開発中のものです。03/03/15 14:13ID:lWsehBXV
>>123
しかし、今回の竜巻は大きくて奥行きもかなりあります。
かなり太い竜巻で街が壊されて爆発が起きてるところを想像して下さい。
断面図はこんな感じで。。
  |    |
  |竜巻 |
  |    人
  |   < > ←爆発
  |    V
凸凸凸凸凸凸凸凸凸←街

爆発は円柱状の竜巻の中でも外でも起こりますし、図のように竜巻と
かさなっている場合もあります。オブジェクト単位のソートだと、こういう
表現で問題が出ます。どうしたらいいですか
0125名前は開発中のものです。03/03/15 14:20ID:CBUe4G93
竜巻を細かく区切る?
0126名前は開発中のものです。03/03/15 14:24ID:pQd+YFZG
よく描いた
0127クラッシュ ◆zmflhpEGDw 03/03/15 15:34ID:rik7CotW
>>124
竜巻を表と裏に分割なり縦に分割なりするのがベストかなあ。
リアルタイムだとどうしても制約はできてしまうから、その制約を
前提にしたデータ作りは避けられないと思うよ。
0128名前は開発中のものです。03/03/15 22:04ID:lWsehBXV
とりあえず竜巻と爆発を細かく切って別オブジェクトにすることでそれらしく見えるようになりました。
ありがとうございました。

今回はこれで対応できましたけど、プレステのゲームとかってどうやってるんでしょうか。
最近出たアヌビスなんてアルファブレンド使いまくりですが・・・
0129名前は開発中のものです。03/03/16 01:57ID:IqCtVYEP
3Dでときめもみたいなギャルゲーを作ろうとしています。
スキニングやトゥーンシェードはサンプルが山ほどあるから大丈夫なんですが、
顔のアニメーションをどうやったらいいのかわかりません。
くちパク、まばたき、視線操作、表情変化などをやりたく思います。
FFXくらい動いたら言う事無しなんですが。どうやればいいのでしょうか。
0130あぼーんNGNG
あぼーん
0131名前は開発中のものです。03/03/16 03:54ID:8C6BxU15
モーフィングとリップシンクで検索だな。
0132あぼーんNGNG
あぼーん
0133名前は開発中のものです。03/03/16 11:39ID:XeJMShXc
>>129
Tweening使ったら?
0134名前は開発中のものです。03/03/16 12:07ID:h9gzgqqk
頂点バッファの数を減らすために、インデックスバッファを使っていると思うのですが
さらに頂点バッファを減らすために、座標、テクスチャ座標、頂点の色、法線などを
別個に作ってそれのインデックスをつくって、インデックスバッファがそれを参照
するような形にしようと言う動きは無いんですか?
0135名前は開発中のものです。03/03/16 12:47ID:RPGdgCPg
>> 134
すでにストリームが複数あるだろうが。
0136名前は開発中のものです。03/03/16 14:43ID:io+cbLoF
>>135
IDがIDがああっ
0137名前は開発中のものです。03/03/16 14:53ID:JNj+EWjl
>>135
すごい!!あんたは神!!
0138名前は開発中のものです。03/03/16 14:55ID:aUQnrCrn
>>135
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0139名前は開発中のものです。03/03/16 16:09ID:NSlDXVUj
むしろこのスレ的には133のMSの方が神かもしれない。
で、この場合ってあっちのスレは終了なの?
0140名前は開発中のものです。03/03/16 16:53ID:zCeAM5Bb
>>139
神だ!神がどう動くかだ!
0141あぼーんNGNG
あぼーん
0142名前は開発中のものです。03/03/16 19:00ID:UGGnfUeC
容量気にするならテクスチャの枚数を少なくするほうが楽で効果的じゃねーか?
0143あぼーんNGNG
あぼーん
0144名前は開発中のものです。03/03/16 20:29ID:Q9bXqTGR
DirectXの英語の技術情報をgoogleで検索しようとしたらフランス語のサイトがでてきてうざい。
0145名前は開発中のものです。03/03/16 20:30ID:roqGfuoV
>>144
googleは特定の言語のサイトだけを検索できるよ。
0146あぼーんNGNG
あぼーん
014714403/03/16 21:25ID:t5LcL5Kk
>>145
できねーよ馬鹿!
氏ね馬鹿!
お前のような馬鹿は馬鹿の一等賞だ馬鹿!
0148あぼーんNGNG
あぼーん
0149名前は開発中のものです。03/03/16 23:27ID:GWAdr3Lx
>>144
ほらよ。これで検索しな。
ttp://www.google.co.jp/search?as_q=DirectX&num=10&hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&lr=lang_fr&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=
0150名前は開発中のものです。03/03/17 00:16ID:XSMSvRu2
まあ、気付かないときはそんなもんさ
0151名前は開発中のものです。03/03/17 00:43ID:6HdY2/hF
「表示設定」で日本語と英語だけマークしてるにょ。
0152あぼーんNGNG
あぼーん
0153名前は開発中のものです。03/03/17 11:01ID:cUb9kLSC
テクスチャの枚数を減らすために、頂点や頂点座標の数を減らしたいのでは?
0154名前は開発中のものです。03/03/17 18:36ID:VGpS7TLv
━━━━━( ・∀・)=終)´Д`(了=(・∀・ )━━━━━
0155名前は開発中のものです。03/03/17 21:39ID:Odh3Hm+m
Direct3Dを使った場合、考えうる全ての高速化法を教えてください。
0156名前は開発中のものです。03/03/17 22:02ID:GnLbo7lb
>>155
CPU・ビデオカードをグレードの高いものにする
0157名前は開発中のものです。03/03/17 22:09ID:r8FTcU4J
>>155
描画しない
0158名前は開発中のものです。03/03/17 22:28ID:Odh3Hm+m
>>156 >>157
ワラタ
0159名前は開発中のものです。03/03/17 23:03ID:ZJJFntE0
解像度をもっとも低いものにする。
うちのモニタは320x200できるぜ。
0160名前は開発中のものです。03/03/17 23:11ID:bYoYst8T
>>159
はいはいダウト
解像度を下げても速度は変わらないよ
勉強し直してまた来てね
0161名前は開発中のものです。03/03/17 23:11ID:CC77FEGd
>158
157はマジレスだとおもうが。
0162名前は開発中のものです。03/03/17 23:13ID:CC77FEGd
>160
解像度を低くすれば低解像度のテクスチャを使ってもあまり気にならんし、
普段よりもローポリゴンモデルを使ってもだませると思うんだが。

普通はやらんがナー
0163名前は開発中のものです。03/03/17 23:17ID:bYoYst8T
>>162
はいはいダウト
解像度を下げごまかそうにもフルスクリーンでは意味無いよ
勉強し直してまた来てね
0164あぼーんNGNG
あぼーん
0165名前は開発中のものです。03/03/17 23:21ID:F3tILkQF
0166名前は開発中のものです。03/03/17 23:26ID:bYoYst8T
>>164
はいはいダウト
あなたは159
勉強し直してまた来てね
016714903/03/17 23:48ID:ihVjtNNd
誰も突っ込んでくれなかった・・・
0168名前は開発中のものです。03/03/17 23:52ID:TEZKAErQ
>解像度を下げごまかそうにもフルスクリーンでは意味無いよ
この発言、かなり謎
VSYNC待ちとかやっててFPSあがらなかったから意味が無いと勘違いした
位しかこんな発言をする状況がわからん

解像度を下げても速度は上昇しない が真であるとすると
解像度を上げても速度は低下しない も真になってしまう
これが真だったらすばらしい世の中になるんだが・・・
0169名前は開発中のものです。03/03/18 00:07ID:LaTsV02p
んー…解像度下げたら速度上がらん?
転送量減るから明らかに下がると思うんだけど……ってこれは2Dか。
3Dの場合はレンダリングの負担が減るから上がる?そうでもない?
0170名前は開発中のものです。03/03/18 00:15ID:MB/llWqv
解像度が下がると、ピクセルの描画個数が減るから、フィル帯域の節約にはなる。
ポリゴン数が少なめで、αでの重ね描きが多いなら、速度の変化は大きいだろう。

逆にポリゴン数がむっちゃ多ければ、頂点転送がネックになるだろうから、
速度はそんなに変わらんだろうね。

解像度、というか描画されるときのピクセル数に応じて
モデルをLODしてあげるのがベスト。ああ、言うのは簡単。
■ このスレッドは過去ログ倉庫に格納されています