鬱だ氏のう DirectX (Part 3)
■ このスレッドは過去ログ倉庫に格納されています
初心者用相談室では扱わないような少し高度な話題も受け持つ。
■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/ (Part 2)
006253
01/11/26 09:59ID:hxuvWaP4なるほど…、つまり
・頂点キャッシュ自体がDirectXではっきりと定められたナニがあるわけではない。
・DirectX自体のOptimizedMeshも厳密ではない。(確かにincrease the cache hit rate…
と書いてあって optimized ...とは書いてない。)
ということですか?
ビデオアダプタ毎に頂点キャッシュを考慮したインデックスのストリップを生成する、
という野望はここに潰えました。(w 多謝。
0063名前は開発中のものです。
01/11/27 14:14ID:1vtcUAvOメッシュやらなんやらのオブジェクト(構造体?)を複数作って、
そのアドレスを格納する配列変数を用意しようと
思ってるんですけど、どうなんでしょう・・・。
006463
01/11/28 19:28ID:???Windows氏に大ダメージを与えてるかも・・・。
0065名前は開発中のものです。
01/11/29 17:43ID:???パッチ当てればインストールできるけどね
0066名前は開発中のものです。
01/12/01 19:23ID:VdJIOFPJその名もAGEnt(アーゲント)
0067名前は開発中のものです。
01/12/01 19:25ID:???人型エージェント兵器?!
なんてこった・・・
というより元気0ですね。このスレ。
0068名前は開発中のものです。
01/12/02 06:35ID:iC96WwYm0069名前は開発中のものです。
01/12/02 19:37ID:???0070名前は開発中のものです。
01/12/03 14:33ID:???DirectXの勉強勉強・・・
0071名前は開発中のものです。
01/12/04 01:48ID:???まぁ一つずつなおしていくのも快感なんだけど
0072初心者(A)
01/12/04 17:42ID:RhHCipx6・・だとうれしいな。
とりあえず、マップオブジェクトの当たり判定設定法で
詰まってます。どうしょっかなぁ。詰まってるけど楽しい。。。
0073名前は開発中のものです。
01/12/04 18:00ID:dLjsBJIC1608: Unable to create InstallDriver instance
って出てインストールシールド終わっちゃいます。
Win2000ですが。8.0aは入るのに・・・鬱だ
0074名前は開発中のものです。
01/12/04 18:59ID:???まあ、この程度の利用者数なら分離しなくていいだろうけど。
0075名前は開発中のものです。
01/12/05 04:47ID:s6xIWrxUC++でやってるでしょ?
ならダブルポインター(**)で関数に渡さず、参照(&)で渡しなさい。悩まなくてすむから。
DirectXの関数がダブルポインターを使ってるのは、Cでも使えるように、という配慮。
C++使ってるならそんなところを真似ることはないよ。
007675追記
01/12/05 04:50ID:???Create(LPDIRECT3DDEVICE8 **pd8) {
↓
Create(LPDIRECT3DDEVICE8* &pd8) {
0077名前は開発中のものです。
01/12/06 00:11ID:lsy8aQarDirectXで苦労し始めたらお世話になります。
0078名前は開発中のものです。
01/12/06 00:30ID:???8.1が最初から入っておるのかこれは。
0079名前は開発中のものです。
01/12/08 11:50ID:8/HBzjJB0080名前は開発中のものです。
01/12/08 14:54ID:???いいと思うよ。おれはあんまりわかんないけれどね
0081名前は開発中のものです。
01/12/08 21:45ID:???このスレで質問させてもらってもいいんでしょうか?
0082名前は開発中のものです。
01/12/09 23:30ID:3yOdEVMh2000ポリゴンで60fps〔50台〕切ります。これは不味いんでしょうか?
平行光源を使っただけのかなり単純な表示で、です・・・
どれくらいがゲームとして普通か教えて下さい。
0083aa
01/12/09 23:40ID:9FnPiTzc俺も知りたい。最適化の方法、、誰か挙げて。
自分で思う所は、
DrawPrimによるGPU待ちとLockによるCPU処理の平均化。
Prim種類の分類等、バッチ処理
テクスチャ切り替えを頻繁にやらない。
’’サイズ大き過ぎないようにする。
ぐらいか、、。
0084名無しサソ
01/12/09 23:43ID:???表示の方法によると思う。Xファイルを読み込んで表示して
いることを前提にすると、D3DXMESHをサンプルのやり方の
まま使うと、オブジェクトの階層が深いとポリゴン数の割に
どんどんFPSが落ちていくよ。
当方もサンプルで6000ポリゴン程度の物を出しただけで
40fpsとかになったし。ちなみに、PentiumIII728MHz、G400・32MB。
OptimizedMeshサンプルを走らせると、最高で3MPolygon/sec弱出る。
速度に関する質問をするなら、自身の環境を書いて置いた方が
良いと思うよ。
008582
01/12/10 00:15ID:???すいません・・。環境はこんなかんじです。
CPU:PentiumV 700Mhz
ビデオカード:NVIDIA GeForce2 MX/MX400 VRAM 64MB
メモリ:180MB
呼び出しが重なると遅くなる、ってことでいいでしょうか?
出来るだけ浅くしてみます。ありがとうございました。
0086名無しサソ
01/12/10 13:13ID:???プログラムで最適化するのが面倒な場合は、そもそも
階層の深いモデルを使わない、という手もある・・・かもしれない。
手抜きです。ゴメソ。
008782
01/12/10 14:27ID:7ZQwqnD1そうですか・・
なんかLOCKをして頂点データを読むと、
ちゃんとUNLOCKしたのに(メインループの前の前処理内で)
またfpsが20ほど下がっちゃいました・・・。
これも階層に関係してるのでしょうか?
0088名前は開発中のものです。
01/12/10 14:31ID:???SDKのヘルプとかMSのFAQとかちゃんと読んだ?
0089名無しサソ
01/12/10 16:47ID:???ここのD3Dスレでも同じ話題が出てたんだけど・・・Unlockしても
スピードが下がるという表現が意味不明。Unlockしたからといって
スピードが保てるわけでも無し。というか付けないとエラーが起こる。
0090名前は開発中のものです。
01/12/10 18:04ID:???0091_
01/12/11 01:23ID:ZXve+/Jbドキュメント読んでも、よく解らない(引数の説明等が)
DrawIndexedPrimitiveなんか特に。
なんとなくは、判るというか、動いてるけど、気持ち悪いので。
お願いしまっす。
0092名前は開発中のものです。
01/12/11 01:26ID:???何がわからないのかわからないんだが(w
とりあえず、インデックスは頂点の番号を指しているのはOK?
0093_
01/12/11 03:04ID:ZXve+/Jb>インデックスは頂点の番号を指しているのはOK?
と言う事は、頂点バッファと1対1で対応(要素数が同じ)て事ですか?
番号は、Uint16頂点以下が、D3DFMT_INDEX16、以上が、32って事ですよね?多分。
で、
lpD3DDEV->SetIndices( pIB, 0 );
でストリーム番号を指定(合ってます?)
で、
DrawIndexedPrimitiveの2、4番目の引数が良くわかりません。
DrawPrimを複数に分けてコールする際のindexだと思うんですが、
1つのプリミティブで4頂点使ってたら、
(頂点数*FVFタイプ)のバイト数指定、、て事ですか?
0094_
01/12/11 03:09ID:ZXve+/Jbストリームを複数作って、片方は静的なバッファ、頂点座標(D3DFVF_XYZ)、
もう1つは、動的なバッファ(D3DUSAGE_DYNAMIC)、
同じく(D3DFVF_XYZ)こちらはポジション用、、とすると、
これらはラスタ化の時に、自動的に合成(加算?)されるのでしょうか?
0095名前は開発中のものです。
01/12/11 04:22ID:???2番目は頂点バッファの何番目の頂点から使うか。指定した頂点がIntexの0番になる。
これは主に1つの頂点バッファに複数のモデルデータを入れておくときに使う。
頂点バッファはオーバーヘッドがかなりあるから(2048バイトだっけ?)、小さい
バッファを沢山作るのは無駄が多いので、頂点フォーマットごとにまとめるようにする。
4番目はIndexの範囲指定だけど、Indexの一部を描画するってことはあまりないから
0入れとけば良し。
>>94
言ってる事が意味不明。ポジション用って何?
0096名前は開発中のものです。
01/12/11 23:07ID:???GeForceのドライバーを換えてみたら?
http://www.nvidia.com/view.asp?PAGE=drivers
うちは似たようなマシン構成で1フレで3万ポリは固い。
もちろんストリップぐらいやってるが。
0097名前は開発中のものです。
01/12/12 00:15ID:???もうイヤだ!!
0098名前は開発中のものです。
01/12/12 00:53ID:???仕事でやってると将来が無さそうなのでイヤだが。
0099_
01/12/12 01:21ID:u1VHByE9サンクスです。大体w理解出来ました。4番目の引数使うと、どのような
効果があるんでしょうね。取り敢えず、0いれときます。
>言ってる事が意味不明。
すんません。聞かなかった事にして下さい。w
0100_
01/12/12 03:04ID:u1VHByE9GF3でw
MESHのサンプルでは、1秒に1500万triぐらい出てるけど。w(vキャッシュなしで)
でも、1スプライト2triだし、tri-listだし(strip無理ですよね?)、
毎ループ、全頂点Lockしてるし、こんなもんかな?
多分、ほんとはもっといくとは思う、、。
0101名前は開発中のものです。
01/12/12 06:44ID:???やっぱりXファイルは一つにまとめてインデックス読み
するのが基本ですか?
0102_
01/12/12 08:48ID:u1VHByE9今回は、担当じゃないから、あれだけど、1つのSTRIPでやるのが、
良いみたいよ。重複する頂点があっても、その方がいいとか、、。
でも、複数のTEXTURE貼ってたりすると、難しいかも。
Meshのサンプル見たら、Vキャッシュにヒットした場合、一機に+500万
いってたんで(1秒2200万ぐらい)どうなんだ?て感じだが。
暇があったら調べてみるよ。
0103名前は開発中のものです。
01/12/12 19:44ID:???解答ありがとうございます。
2200万て僕には考えられませんけども(汗
ゲーム速くするため、色々やってみます。
0104名前は開発中のものです。
01/12/13 16:52ID:7ycqn6lq何かいいお知恵を拝借できないでしょうか?
shdからshadeでDXFにしてから、Xへ変換したのですが
どうしてもD3Dビューで表示されません・・
ShadeでMesh作ってる方、お願いします
0105名前は開発中のものです。
01/12/13 18:32ID:???Shadeで作るな、と言われそうだね。
Shadeはポリ数が多くなってリアルタイムレンダリングには向かないんじゃないかなあ。
DXFを介している時点でアニメ情報やUV情報なんか消えていそうだし。
とりあえず、単純なモデルをテキストXに変換させてみて、
データを読んで何がおかしいか調べてみるといいかもよ。
メッシュが裏返ってたり、スケールがものすごく違ってたりするのかも。
0106名前は開発中のものです。
01/12/13 21:51ID:d41h5h24ありがとうございます。
やはり鬼門ですか・・・・
難しいなぁ・・・ ナムナム
0107名前は開発中のものです。
01/12/14 13:20ID:EZLqVsislightwave3Dに乗り換えます・・
0108名無しサソ
01/12/15 01:24ID:???各xyz座標をダラダラと羅列しているだけの素敵な仕様だよ。
当然、UV座標や法線を持ち合わせているわけではないので、
独立頂点で分けて作った筈のエッジも潰れてしまう。
というわけで、DXFから直接Xファイルを作るのは出来るだけ
避けた方が良いと思う。
0109名前は開発中のものです。
01/12/16 05:25ID:8r+MK5URを使おうとしたら、どういうのがいいですか?
1、諦めろ。
2、むしろゲーム作成支援ソフトを使う。
3、頑張ってEasyLinkLibraly を導入して間接的に。
4、DXだけ学び、DXだけでゲームを作る (…できるの?)
5、DX、WinAPI、VC++、その他一式を全て究めて攻略。
とりあえず5はやだ。
0110名前は開発中のものです。
01/12/16 05:29ID:???6.SDKのサンプル弄ってみる。
0111名前は開発中のものです。
01/12/16 06:10ID:/+Yh7d/w110が正解っぽいな。 まあどもみち、5を選ばざるえないんだろうが
最初から気張って、つまづいた拍子にやる気をなくすより
サンプルでも弄ってなさいってこった。
0112名前は開発中のものです。
01/12/16 10:51ID:???そのつど調べて覚えていけばいいんだし。
やっぱC++でプログラム書きまくって慣れておくことだろ。
0113NAME OVER
01/12/16 17:56ID:???ポリゴン&スプライト表示することはできますか?
0114名前は開発中のものです。
01/12/16 19:03ID:???できる
0115>>109
01/12/16 19:25ID:Ar8VngeJVC、C++、D3D8、をやってた。
2週間もあれば、読み書きぐらいは出来ると思うよ。
どういう設計が1番か?てのは、わからないけど。
0116名前は開発中のものです。
01/12/16 22:30ID:???絶対イジッタほうがいい。
DX7の頃は使い始めが異様に難しかったけど、
8からは初期化も簡単、すぐに画面に表示できるような
作りになってる。画面になんか出ればイジリがいもあるでしょ。
0117名前は開発中のものです。
01/12/16 22:46ID:CihImbigとりあえず4、6の組み合わせで十分ではござらぬか。
追々必要なら5にも手を出すと。
0118名前は開発中のものです。
01/12/16 23:25ID:iGqGEygK皆さんSSEって何経由で使ってますか?
やっぱしVC++のProcessor Pack?
しかし、これなんか問題が多いと聞いたのですが、、、
0119名前は開発中のものです。
01/12/16 23:39ID:???0120あぼーん
NGNG0121名前は開発中のものです。
01/12/17 11:15ID:???初心者ですが、サンプルとか参考にしながら
動く状態のものをちまちま改良していってます。
一度に色々やろうとすると行き詰まるっぽいです。
あとEasyLinkLibralyは解析しづらいのでイヤンです。
0122名前は開発中のものです。
01/12/17 21:29ID:???作れないっていう制限ってver7でもありましたっけ?
0123名前は開発中のものです。
01/12/17 21:43ID:???それはビデオカードの制限によるものでは?
0124名前は開発中のものです。
01/12/17 22:28ID:???じゃあなるべく使わない方が良いな・・。
レスどうもです。
0125名前は開発中のものです。
01/12/18 00:02ID:???まぁ、作れる場合でも無制限ではないし、解像度によって上限が変わったり
するんだが。
320*240の解像度で横幅が1024のサーフェス作ろうとしたらエラー出たり。
800*600では大丈夫だった。ちなみにGeForceでの話。
0127名前は開発中のものです。
01/12/18 00:56ID:???αブレンド
0128_
01/12/18 03:22ID:KNjSRTW50129名前は開発中のものです。
01/12/18 12:26ID:???システムメモリーを使えば、どうにかならんか?
0130名前は開発中のものです。
01/12/23 02:51ID:???なんか初期化やら色々な作業がスゲー簡単になったらしい?
0131名前は開発中のものです。
01/12/23 09:32ID:???あと、8はサーフェスがロストしても勝手に内容を復元してくれる機能あるけど、
7のD3DXも同じようなことしてくれたのであまり変わってないかも。
というわけで、7でD3DX使ってたんならあまり便利には感じないかと。
むしろ細かい制御ができなくなったから不便に感じるかも。GDIも使えないし。
GDIに関しては9で少し改善されるようだけど、どうなることやら。
0132名前は開発中のものです。
01/12/23 14:00ID:5HaRG1wG実際にやったところ、ウィンドウハンドルが存在しない為に、強調レベル設定
(SetCooperativeLevel)が使えず、その後のプライマリバッファの作成でも失敗します。
0133名前は開発中のものです。
01/12/23 17:11ID:bm9n9GFODOS窓のWindowハンドルとるんぢゃダメ?
0134132
01/12/23 17:17ID:5HaRG1wGそれでいいの!? ちょっと調べてみます。
0135名前は開発中のものです。
01/12/23 17:28ID:OXvxcNRi非表示のWindowつくるとかでもいけるんじゃないかな?
0136132
01/12/23 18:31ID:5HaRG1wGそういうのもありかー。
でもWindow作るときにWinMainの第1引数を使って
RegisterClass で登録しなくちゃいけないような。。。
RegisterClass 呼ばずにいきなり CreateWindow 呼んでもいいのかなぁ。。
これも調べて見ます。
0137名前は開発中のものです。
01/12/23 19:03ID:bm9n9GFOHINSTANCEでしょ?
GetModuleHandle(NULL);で取れないかねぇ?
DOSアプリだとダメかな?
0138名前は開発中のものです。
01/12/23 19:05ID:OXvxcNRiを代わりに使うんじゃなかったっけ?
おぼろげな記憶。
0139名前は開発中のものです。
01/12/23 19:06ID:OXvxcNRi0140132
01/12/23 19:28ID:5HaRG1wG0141132
01/12/23 19:39ID:5HaRG1wGGetModuleHandle(NULL) で取得出来る事を確認しました!
0142名前は開発中のものです。
01/12/23 20:07ID:N4+GBleN8.1SDKを落としてきた
初期化がさくっと終わってるのに感動した!
でも新しい言葉がいっぱい出てきて正直困惑
0143名前は開発中のものです
01/12/24 03:46ID:w3zASyI195捨ててるから今迄のVerUPとは同じに考えられないよな。
マジどうすんのか聞きたい。
0144名前は開発中のものです
01/12/24 04:34ID:???むしろ95ユーザの為にステンシル他を使わない方が馬鹿げているような。
それともオレ、異端か?
0145名前は開発中のものです。
01/12/24 05:43ID:???0146名前は開発中のものです。
01/12/24 10:48ID:???エロゲとかは95もターゲットにすることはあるかもね。
昔は(DirectX3くらいのころ)オールGDIで作ってあったのもあったしなぁ。
0147名前は開発中のものです。
01/12/24 10:59ID:???いまだにWin95を使っているのか統計を取ってみたい。
ていうかいるのか?
0148名前は開発中のものです。
01/12/24 11:35ID:???まあ、そうだろうな。
俺もボロマシンに95入れて使ってるけど、最新のゲームやら
ビデオ編集やらはできないって割り切って使ってるよ。
自分で書いたプログラムが他人のマシン借りないとマトモに
動かないってのはかなり鬱だが。
0149名前は開発中のものです。
01/12/24 12:16ID:ri5i/9hM動作確認のために、今使っている屑を手放せナイーヨ
0150名前は開発中のものです。
01/12/25 13:28ID:FrMhTu1FD3DXVECTOR3 vecがあって
"vec."と打つとメンバがポップアップされて表示される機能
あれが働かないのですが,どうすればいいのですか?
以前D3DVECTORを使用していたときは出ていたのですが...
擦れ違いとか言わないでそこをなんとか
0151名前は開発中のものです。
01/12/25 13:41ID:bGbvaKtQ0152名前は開発中のものです。
01/12/25 14:08ID:???0153名前は開発中のものです。
01/12/25 14:48ID:???未だに5.0対応のコードで書いていますが、何か?
0154名前は開発中のものです。
01/12/25 15:42ID:FrMhTu1F”外部依存関係”ってとこからヘッダのほうに持っていくと
上手く行きました.
thx!
0155名前は開発中のものです。
01/12/25 15:43ID:???0156名前は開発中のものです。
01/12/26 02:13ID:???ソフト作者に「95使ってる奴が世の中に大勢いる!」と錯覚与えてる罠。
0157名前は開発中のものです。
01/12/26 12:53ID:???インストール禁止なんかになると、DirectXすら入ってない。
下手するとI.Eのアップデートすらされてなくて(以下略
サイズの大きいBMPだとうまくいきません、原因分かりますか?
0159名前は開発中のものです。
01/12/26 15:02ID:Q2518lPu仕方ないダウンロードするか。
DirectShowのGraphEditで遊んでます。
AudioCompressor に MPEG Layer-3 が出てきます。
これをSoundBlasterのキャプチャーにつなげても何も出力してくれないけど、
これってやっぱりエンコードが"32kBits/s, 22,050 Hz, Mono"までしか対応してないって
ことですかね。そうだろうなー。
MSとFraunhoferのケチ。
■ このスレッドは過去ログ倉庫に格納されています