鬱だ氏のう 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)
http://www.microsoft.com/japan/developer/directx/default.asp
http://msdn.microsoft.com/library/default.asp?url=/nhp/default.asp?contentid=28000410
0003名無しさん@お腹いっぱい。
01/11/07 20:26ID:mfMymfYHってことで。ここ常駐決定です。
0004_
01/11/07 20:47ID:p+pcCFj/バージョン違い、3Dスレと3D以外スレで分けるともっと利用しやすくなると思うんだが。
0005名無しさん@お腹いっぱい。
01/11/07 20:48ID:mfMymfYHわかりました。
0006名無しさん@お腹いっぱい。
01/11/07 20:51ID:???おい、やるならちゃんと立ててくれよ。
自信ないなら無理にやらんでもいいぞ。(マジで)
0007名無しさん@お腹いっぱい。
01/11/07 20:53ID:mfMymfYH0008名無しさん@お腹いっぱい。
01/11/07 20:57ID:???余計なことを書いて厨房を躍らせないで下さい。
>>7
止めてください。余計なお世話です。
0009名無しさん@お腹いっぱい。
01/11/08 04:48ID:???意味が違うでしょ。
0010名無しさん@お腹いっぱい。
01/11/08 07:27ID:???PixelShaderとかVertexShaderとかのバージョンアップがメイン?
0011名無しさん@お腹いっぱい。
01/11/08 08:30ID:K/EXc4zs0012名無しさん@お腹いっぱい。
01/11/09 09:00ID:???0013コピペ
01/11/09 18:09ID:GhCVy+uiライブラリを使ったときに、そのソフトを実行するのに
DirectXのどのバージョンが必要ですってのはどうしたら分かるんだろう?
例えば>>50のはWin上ではDirectXを使用するみたいだけど、
どのバージョンが必要なのか書いてある場所は見つからなかった。
ソースを読んで、この機能はバージョンいくつで…って調べるしかないの?
0014_
01/11/09 19:37ID:DTKrpsAyいや現時点での最新バージョン入れればいいんでないの?
明記するバージョンは、自分が動作確認できたバージョンってことで。
まあ、ソース読むか実際走らせてみるしかわかる術は無いと思うな。
0015名無しさん@お腹いっぱい。
01/11/09 23:20ID:+WQbSy6P0016名無しさん@お腹いっぱい。
01/11/12 19:42ID:aPZmJhKthttp://www.microsoft.com/japan/developer/directx/default.asp
0017名無しさん@お腹いっぱい。
01/11/12 19:48ID:???> DirectX 8.1
0018名無しさん@お腹いっぱい。
01/11/12 20:29ID:5s6Lshizマジすか?
英語マニュアル読めないからワカラン。
0019名無しさん@お腹いっぱい。
01/11/12 20:43ID:???002017
01/11/12 20:43ID:???http://www.microsoft.com/japan/developer/directx/downloads.asp
0021名無しさん@お腹いっぱい。
01/11/12 20:49ID:???あ、SDKの話か。汎用ランタイムが95切り捨てたのかと思ったYO!
0022名無しさん@お腹いっぱい。
01/11/12 21:02ID:???0023名無しさん@お腹いっぱい。
01/11/12 21:08ID:???98x1はDirectX8と無関係になったんだよ。完全に。
0024ん
01/11/12 21:19ID:b2SUcAxdとあるが結局のところ何が変わったのだろうか?
英語が読めないのもつらいな・・・
0025名無しさん@お腹いっぱい。
01/11/12 21:21ID:???変わったというより、直した、ということかも。(w
0026神@お腹いっぱい。
01/11/12 21:29ID:???PC98がMSに三行半を突きつけたのだ
0027名無しさん@お腹いっぱい。
01/11/12 21:38ID:Nj12cbSNhttp://www.microsoft.com/japan/directx/homeuser/downloads/default.asp
0029_
01/11/12 22:03ID:K6hf8hPr8.1まんせ〜(;▽;)/
0030ん
01/11/12 22:06ID:b2SUcAxdおお、よかったですね〜
おめでとう!!
0031名無しさん@お腹いっぱい。
01/11/12 23:16ID:???すげぇ、漏れと全く逆だ!おいらは8.1入れたらみごとにTVでブルースクリーン。
おのれリードテックめ!もはやドライバサポートすらなくなったわい(ワラ
それでもおめでとう〜。
0032ん
01/11/12 23:57ID:b2SUcAxdやった〜
自分におめでとう!!
0033_
01/11/13 02:10ID:4oFYuP+XSDK落としてリビルドしたの?
いいなあ、落とせる環境の人は。
とりあえず、あけおま!!
0034名無しさん@お腹いっぱい。
01/11/13 09:21ID:???Cマガの役割は終わったよ。
0035名無しさん@お腹いっぱい。
01/11/13 10:42ID:???鬱だ氏のう...
0036名無しさん@お腹いっぱい。
01/11/13 12:33ID:???ReadMe通りリコンパイルしてもスキンデータ取れず。鬱だ。
Max4.2 CS3.2使用。
0037ラム
01/11/13 13:26ID:mgbUHY3r0038名無しさん@お腹いっぱい。
01/11/21 22:36ID:J9hq8ojk0039名無しさん@お腹いっぱい。
01/11/21 22:59ID:PMrX3bZuメモリブロックに何かする、という感じでしか理解できてません。
どなたか説明をば・・・・お願い・・・。
0040名無しさん@お腹いっぱい。
01/11/21 23:08ID:zJxGH1jK……ってとこじゃないです?
004140
01/11/21 23:09ID:???ハードウェア(ビデオチップ)のレンダリング機構だったり。
0042名無しさん@お腹いっぱい。
01/11/21 23:15ID:PMrX3bZuありがとうございます。
ほっとくといじられてしまう可能性があるんで
他からいじくれないように鍵をかけるってことでいいでしょうか。
ようやく理解できました・・・
004436
01/11/22 14:41ID:???だれかMax4.2使ってる奴いないのかよぅ!ヽ(`Д´)ノ ウワァァァン!
0045名無しさん@お腹いっぱい。
01/11/22 16:24ID:???Direct3D8: (INFO) :MemFini!
このエラーは何なのでしょうか?どなたか教えてください!
0046名前は開発中のものです。
01/11/23 05:04ID:???-----------------------------------
エラー内容
Error : -2005532477 on
CreateDevice
-----------------------------------
エラーコードの見方がわからない・・・
って使えるのだろうか?
デモとかプロテクトかけてないだろ〜な〜?
ATIのデモはGF3で動かなかった(ま、コチラは8.1非対応だから)
0049名前は開発中のものです。
01/11/23 14:08ID:3FAfwpoRDirectX系のデモなら結構動くっぽい。
OpenGL系のデモはハードウェア依存な命令(NV_*)があるものが
多いのでダメっぽい。
つか、俺GF3ユーザーなんだけど、下のデモ見たいなぁと思ってさ〜
http://www.ati.com/na/pages/resource_centre/dev_rel/demos.html
0051名前は開発中のものです。
01/11/23 15:59ID:???面倒くさいね。
0052名前は開発中のものです。
01/11/24 01:52ID:???ドライバー周り 怖そう。
とりあえず、新しいPCを組んだ方が良いと思われ
0053名前は開発中のものです。
01/11/25 08:41ID:u25RwZVoDirectXでビデオアダプタの頂点キャッシュの量を調べたいんだけど
どうすればいいの?
CONST_D3DXMESHOPTで、D3DXMESHOPT_VERTEXCACHE っての
があるからDirectXから参照できるのは確かなんだろうけど…。
あとGeforce/2/3 以外のTnLハードウェア(Radeon7500/8500とか
MatroxG550とか?)の頂点キャッシュの量ってどれくらいあるの?
0054名前は開発中のものです。
01/11/26 01:42ID:???プログラム上で頂点キャッシュの量を調べるのはDirectXでは無理だと思うよ。
D3DXMESHOPT_VERTEXCACHEは「ヒット率を向上させる」と書いてあるだけで、
最適にするとは書いてないから、適当にキャッシュにヒットするように並べ替え
てるだけじゃない?
それに頂点キャッシュの数だけ分かっても、アルゴリズムが分からないと意味が
ないと思うよ。まぁ、普通はFIFOだと思うが。
0055名前は開発中のものです。
01/11/26 03:06ID:lv2Xao9j手に入らないでしょうか?
個人的にDirectX8はまだ使う気はないです。
今はDirectX7で十分。
0056名前は開発中のものです。
01/11/26 05:31ID:???0057初
01/11/26 07:24ID:+2l/lKyZポインタ(LPDIRECT3DDEVICE8* pd8)を消すときってリリース関数を
使わないといけないんでしょうか。あとこういうポインタの使いまわし
ってマズイんですか?
0058名無しサソ
01/11/26 07:57ID:???COMについて調べてみよう。Releaseは何をしているのか、
というのが分かったらどうすればいいのか分かるよ。
「参照カウンタ」はどこで加算されるか、もしくは減算されるか、
というのを理解するのがポイント。
と知ったような口をきいてみる。
0059名前は開発中のものです。
01/11/26 08:46ID:???関数の引数なら分かるが。
57はポインタに対する理解が足りなそうだから、そんな複雑なことは
やめて置いた方がいいと思う。
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ファイルは一つにまとめてインデックス読み
するのが基本ですか?
■ このスレッドは過去ログ倉庫に格納されています