DirectX総合スレ (Part2)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/09/22 23:30:32ID:anobjZYP基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き
このスレの回転を早めて常にアクティブなスレにしたいと思っております。
このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。
質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。
テンプレは >>2以降で
0720名前は開発中のものです。
04/12/10 07:23:56ID:jq48CoU8うん。
>>719
技術板だ、理由を言え。
0721名前は開発中のものです。
04/12/10 10:23:46ID:PRMmN4dx0722名前は開発中のものです。
04/12/10 10:26:21ID:L+RmPzsY今は俺もシェーダ使ってるし、もう固定機能には見切りを付けてるもん。
最終目的は映像を表現することで、それが出来るなら手段は何でもいいんじゃない。
話聞いてるとどれもそう手間は変わらなさそうな内容だし、そこまで貶す必要もないと思った。
世の中頂点シェーダですらできないような頂点処理もあるわけだし、
馬鹿にするのはそういうのを無理して固定機能でやるとき位にしてやってくれw
0723名前は開発中のものです。
04/12/10 10:57:07ID:b5UiCi3W同意、まぁどっちの派にしろ、自分が慣れた方しか認めないのは見苦しいね。
固定の良いところか…ある程度決めうちできるゲームは良いけど、
アプリなんか作ってると固定の方が楽に感じることはあるかな。
(今使える)OpenGLと共用する時とか。
0724名前は開発中のものです。
04/12/10 11:03:49ID:KYyRlGH40725名前は開発中のものです。
04/12/10 13:50:58ID:evJV8sI6上げるとすれば、プログラマブルでないTnLを持ってるGPUでは固定パイプラインを使った
ほうが高速ってことはないかい。GeForce MXとかそうじゃなかったっけか。
測定したわけじゃないんで、間違ってたらごめん。
0726名前は開発中のものです。
04/12/10 16:38:27ID:Y4Ud5gjc0727名前は開発中のものです。
04/12/10 16:53:28ID:KYyRlGH4ただしCPUの空きが増えるので、使った方が負荷は軽くなる。
0728名前は開発中のものです。
04/12/11 20:11:30ID:ENo3zpOh2D描画にDrawPrimitiveUpを使っています。
基本的な動作としてはオブジェクトごとに
動きを計算し
行列の計算→D3DXMatrix系の関数
描画時に
SetTransform → DrawPrimitiveUp
を毎フレーム繰りかえすという形でいいんでしょうか?
無駄が多い気がするんですがほかにいい方法は思いつきません。
0729名前は開発中のものです。
04/12/11 20:26:22ID:fhqnR+WK明らかに無駄だな。
必要ねーぞ。
マジで。
SetTransform必要ないだろ。
だってTL_VERTEXとかそんなんじゃねーの?
0730名前は開発中のものです。
04/12/11 20:30:06ID:Fu3sSY9f上でも議論があるが、Up じゃなくて UP な。
3Dの複雑なモデルならともかく、2Dのキャラクタで、
DrawPrimitie系メソッドを「オブジェクトごとに」呼び出すのはいけてない。
UP系を使ってるんなら、
一つの頂点配列に複数のオブジェクトで使う頂点をまとめて格納しておいて、
頂点の座標を全て書き換えてから一度だけDraw。
0731名前は開発中のものです。
04/12/11 20:47:23ID:RsIq+yY4全体のパフォーマンスは大して変わらない。
細かいことを気にしている暇があったら、まず全体を完成させて、
後からチューニングしても遅くない。
0732728
04/12/11 20:51:15ID:ENo3zpOhありがとうございます。
他のやり方があるということがわかっただけでもよかったです。
全体完成させてからいろいろ改良することにしてみます。
0733名前は開発中のものです。
04/12/11 21:10:24ID:fhqnR+WK固定機能パイプラインのときって2D描画(3D空間に無い)ってどうやってやってたんだっけ?俺。
いまのソースだとシェーダに値を渡してるけど、固定機能だと値を渡すようなものってないのか?もしかして。
頂点バッファを毎フレームごとにロックしたりしてたんだっけ?いや、それは無駄だよな。うーん?ん?
0734名前は開発中のものです。
04/12/11 21:17:01ID:Gc6vRMJF0735名前は開発中のものです。
04/12/12 00:18:36ID:u0O7CTPqすこし昔の話だが
0736名前は開発中のものです。
04/12/12 01:17:45ID:tfjyzDT/DirectX9 SDKと日本語ドキュメントをDLして
インストールしたところ、日本語ドキュメントは
SDKとは別のフォルダへインストールされました。
で、日本語ドキュメントのインストールされた
フォルダを見てみると、拡張子がHx○というファイル
が複数できましたが、クリックしても実行できない
もののようです。このヘルプはどうやって見るもの
なのでしょうか?開発環境はVC++.netです。
0737名前は開発中のものです。
04/12/12 01:39:20ID:FwlKHgFV英語ドキュメントのショートカットのプロパティみてみ
拡張子何になってる?
0738736
04/12/12 02:28:00ID:tfjyzDT/英語ドキュメントのショートカットとはどこにあるのでしょうか?
SDK本体のフォルダの中のDocumentationというフォルダの
中には英語ドキュメントらしきものがありますが、ショートカットは
ありません。ここには、Hx○がいくつかと、chmというコンパイル済み
HTMLファイルがあります。これはクリックして読めるようですね。
0739名前は開発中のものです。
04/12/12 02:42:29ID:FwlKHgFV>英語ドキュメントのショートカットとはどこにあるのでしょうか?
スタート→プログラム
0740名前は開発中のものです。
04/12/12 09:42:01ID:BNsUi8qI勝手にアンチエイリアシングが掛かってしまうようなのですが
何が問題なのかわかりますか?
この現象が起こるのは今のところ Radeon9800PROだけです。
スクリーンショットを撮るとボケてない画像が撮れます。
Windowモードならボケないようです。
0741名前は開発中のものです。
04/12/12 11:29:17ID:NVOf1hrqダウンロードしインストールしようとしましたが、何回やっても
インストール進行状況の緑のバー(?)が途中で左へ戻ってしまい、
your system has not been modified to complete installation at another time, please run setup again.
と表示されて失敗してしまいます。
いろいろヘルプドキュメントやネットで調べましたが解決方法はわかりませんでした。
OS は XP Home Edition Service Pack 2 です。
0743名前は開発中のものです。
04/12/12 13:41:45ID:yiVn8EQzみつかりにくいんだけどたしかどっかにあったよ。
拡張子はchmだからマイコンピュータを拡張子で検索かければそのうちあたんじゃねぇの?
0744名前は開発中のものです。
04/12/12 14:03:17ID:lh5zcFYtDX9_Oct04_JpDoc.exe を展開するとその中に入ってる。
ちなみに同じフォルダに DirectX9Oct04JpnDoc.msi ってのがあって
これをインストールすると、確かに *.Hx○ってファイルができるんだけど
これって何なんだろうね。自分はアンインスコした。
0745名前は開発中のものです。
04/12/12 14:32:28ID:JZcZNH0C統合環境からF1でヘルプを見た時に、DX9用のヘルプが出るようになる。
MSDN用。
0746名前は開発中のものです。
04/12/12 14:56:21ID:tfjyzDT/見れないということでしょうか?
つまりは、いらないってことか。
0747740
04/12/12 15:30:54ID:BNsUi8qI手元に再現する環境がないので色々面倒です・・・。
EFZは「640*480で起動」にするとボケないが
320*240で起動するとダメだというので
単純に解像度を640*480にしてみたんですが、解消されず。
うーん、困った。
0749名前は開発中のものです。
04/12/12 21:37:10ID:1/NB2K9W749 :デフォルトの名無しさん :04/10/24 21:08:30
次はDecember2004である、に一票。
10月の段階で言い当てるとはすげーな。
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=4E825A37-0C94-4421-9EC8-156E52525D11
0750名前は開発中のものです。
04/12/12 22:00:40ID:u0O7CTPq本人ならかわいいもんだが
それはともかくキタ━━━━━━(゚∀゚)━━━━━━ !!
0751名前は開発中のものです。
04/12/12 22:37:47ID:FwlKHgFVアンチエイリアス?
バイリニアじゃなくて?
D3DTEXF_POINT(だっけ?)つかってもだめってこと?
0752740
04/12/12 23:03:56ID:BNsUi8qIそれ以前の問題でした・・・
ドット数比が5:4の液晶ディスプレイ使ってるのが原因でした。
画面サイズを変えないでD3DTEXF_POINTつかって
引き伸ばし表示するモードをつけることになりそうです。
0753名前は開発中のものです。
04/12/13 00:00:08ID:OHILwBcGPresent(&src, &dst, hWnd, NULL); で
srcの整数倍した矩形を dst に設定してみたら
D3DTEXF_POINTを指定してあってもエッジがボケてしまいます。
この部分でバイリニアフィルタが掛からないようにすることは可能でしょうか?
0754名前は開発中のものです。
04/12/13 00:16:23ID:Yp5fFNZwよくわからんが、テクスチャの領域外をエッジのに指定するフラグなんだっけ?
それつかってみたら?
0755名前は開発中のものです。
04/12/13 00:37:02ID:O19OklazRPGなどのゲーム中に出せるメニュー画面(戦闘中・フィールド)についてでしゅが
1.スプライトで表示
2.UV座標に応じて4つの頂点を指定して表示(rhwの設定のやつ)
3.カメラ設定に応じて4つの頂点を指定して表示(座標変換有り)
の3つが僕の現在ある知識ではできるのでちゅが皆さんはどれ使ってましゅか?
他に方法あったりしたらそれも教えて欲しいでチュ
0756名前は開発中のものです。
04/12/13 00:46:29ID:4OFGfkHNゲームによっては
半透明のメニュー画面があるし
他の人がどうしてるのか、気になるなぁ
BBX見たらスプライトでやってる人も居るようだ
0757名前は開発中のものです。
04/12/13 01:02:03ID:Yp5fFNZw1と2は同じことだろ?
あ、D3DXSPRITEとかいうやつか
あんなん使うな
2Dのメニュー表示だったら3の意味はなし
0758名前は開発中のものです。
04/12/13 01:26:33ID:w/QQwN3S0759名前は開発中のものです。
04/12/13 01:36:39ID:Yp5fFNZwさすがにそれはわかって…るよな?>755
0760名前は開発中のものです。
04/12/13 03:12:40ID:4OFGfkHNためになった。
でも、Spriteを触ることは無いだろう
0761753
04/12/13 10:45:56ID:65Upxz8jちょっと探した感じでは見つからなかったです。
今回の件とはちょっと違うかな・・・?
IDirect3DDevice8::Present の説明に
「必要に応じて、転送元矩形内のピクセルをターゲット
ウィンドウのクライアント領域の転送先矩形に転送するために
拡大処理が適用される。」
と書いてあるので、この部分の拡大処理でバイリニアフィルタが
適用されているようですね。
ここを制御できればいいんですけど・・・。
0762753
04/12/13 16:57:51ID:65Upxz8jレンダリングターゲットをテクスチャにして描画
⇒テクスチャからバックバッファに拡大して書き込み
⇒Present(NULL,NULL,NULL,NULL)
とすることでうまく行きそうな予感・・・?
#今まではバックバッファに直接描いてました。
Present()内部で行われる拡大処理を制御するのは無理なのかな。
0763名前は開発中のものです。
04/12/13 21:45:53ID:CpqQPaPGあとはベタだが0.5ピクセルずらして張る
サイズ256だったら一番端のUVは
1,0じゃなくて
1.0f - (0.5f / 256.0f)
0.0fのところも
(0.5f / 256.0f)
とか
0764753
04/12/13 22:08:26ID:OHILwBcG0.5ドットずらす方法は既に実践済みなんですよ。
結果はずらしてもずらさなくても同じでした。
762に書いた方法で実装してみたら結構遅くてショック。
0765名前は開発中のものです。
04/12/14 02:35:51ID:Uw1p0s/Zつい最近まで流行ってた、TOWNSとかのハードウェア0.5ドットスクロールのことかと思った。
あれは滑らかだったからなー。
0766名前は開発中のものです。
04/12/14 17:10:23ID:52nIwGgvレースゲーム中のメーターと針を表現したいのでちゅが、
メーターはRHWを設定するので描画してるんでちゅが針のほうをRHWで
描画してるんですがRotationXでしたっけそれでは回転できないんでちゅが
どうすれば針を回せますか?
0767名前は開発中のものです。
04/12/14 17:20:06ID:jWlJyjib0768名前は開発中のものです。
04/12/14 19:20:41ID:6EayMZnDRotationZじゃないか?
0769名前は開発中のものです。
04/12/14 19:57:45ID:mfmTbhdO出来ないヘタレがプログラム組むな反吐が出る
0770名前は開発中のものです。
04/12/14 19:58:45ID:9a+RZ13R0771名前は開発中のものです。
04/12/14 20:17:39ID:0pW6uqIM0772名前は開発中のものです。
04/12/14 20:24:03ID:6EayMZnDなんてったってアーイドー
0773名前は開発中のものです。
04/12/14 20:34:32ID:eLHDZvTkないとしても叩かなくてもいいんじゃないか?769は少し言い過ぎかと思う。
0774名前は開発中のものです。
04/12/14 20:55:40ID:mfmTbhdOお前の書き込みと俺の書き込み、どちらに中身があるかもう一度読み返せ
本当にお前の頭の中は空っぽだな
0775名前は開発中のものです。
04/12/14 20:59:10ID:6EayMZnDSetTransformはやってるよな?
0776名前は開発中のものです。
04/12/14 21:02:46ID:0pW6uqIM>>774はヘタレ質問見るのが嫌なら鬱だ氏のうスレ行っとけ。
0777名前は開発中のものです。
04/12/14 21:08:29ID:jWlJyjibなんでrhwでSetTransformとかRotationXが出てくるんだ?
トランスフォーム済みを使うなら、自分で位置を計算しておけばいいだけ。
しかもその程度の計算で行列を使う演算の必用など微塵もない。
既存のシステムに依存して、基本的な計算すら忘れ去ってないか?
0778名前は開発中のものです。
04/12/14 21:12:35ID:8voIY0i4回転
P(x, y)
dX = x * cosθ - y * sinθ;
dY = x * sinθ + y * cosθ;
平行移動って足せばよかったっけか?w
グーグルで 回転 2次元 で調べればいっぱいでてくるよ。
rhwの2次元にRotation???は使ったことないなぁ
0779名前は開発中のものです。
04/12/14 21:38:39ID:6EayMZnDそりゃそうだ
久しく使ってなかったから忘れてた
0780名前は開発中のものです。
04/12/14 22:37:40ID:G4zX7XhcD3DXにこの計算用意されてなかったか?
0781名前は開発中のものです。
04/12/14 22:49:27ID:X6UgI8F+0782名前は開発中のものです。
04/12/14 23:00:07ID:Apj0J3iv0783名前は開発中のものです。
04/12/14 23:03:46ID:GmXk5NnERHWだぞ、お前これ何の略だ?
0784名前は開発中のものです。
04/12/14 23:06:46ID:7uVKM4QW0785名前は開発中のものです。
04/12/14 23:30:20ID:if82LLjO朝からやってるのですが、ぴくりとも動いてくれません
メッシュは自前で持っていてDX系の物は使っていません。
.fxはDirectX9のサンプル、SkinningMeshの物をそのまま使っています
SetMatrixArrayで渡す行列は、固定の時と同じ行列で良いのですよね?
(オフセット行列に、現在の姿勢行列を掛けた行列です)
シェーダで頂点色を変えたりとかは出来ています。
Weightが一つのボーンに対し100%(1.0f)だと、なんの行列を渡しても初期位置のまま微動だにしません。
2つ以上のボーンに対し影響を受ける頂点は、2つ目のウェイトの割合分、無意味に縮みます。縮むだけで動きません。
いやもうこれでは解答のしようも無いとは思うのですが、質問せずにはいられない状態でして・・・。
0786名前は開発中のものです。
04/12/14 23:38:11ID:17qXBVT+0787名前は開発中のものです。
04/12/15 00:01:00ID:fvpX5wp60788785
04/12/15 00:02:46ID:pCTFG4k0お付き合いありがたいっす
悔しいことにサンプルの方は、シェーダはもちろんどのモードでも問題なく動いています
言われて今、試しにHELにしてみたのですが、やはり挙動は変わらずじまいです
データの持ち方が悪いのかなぁ…
0789名前は開発中のものです。
04/12/15 00:23:36ID:LnZJ7VNxreciprocal of homogeneous W
>>788
それならサンプルと同じようにやれば動くのでは?
0790名前は開発中のものです。
04/12/15 00:32:03ID:rxxXpvtuがんがれ
0791名前は開発中のものです。
04/12/15 00:39:28ID:pCTFG4k0同じようにやっている…はずなのですがどうにも
明日もう一日頑張って駄目でしたら、ソース見てやって下さい
皆さんレスありがとうございました
>>790
声援感謝っす
あれほど可愛かったtinyたんが、今は中居正広に見えてきましたよ…
0792名前は開発中のものです。
04/12/15 10:24:30ID:L/K/Ntdf0793名前は開発中のものです。
04/12/15 17:38:44ID:9QGOXaSiいつもRHW使わないでビュー行列とプロジェクション行列を
再設定して2D描画やってるよ。RHWの利点は行列演算が
入らない分高速になること?
で、RHWって何の略だよ。
0794名前は開発中のものです。
04/12/15 17:43:33ID:uxKIR4qzRuri ha H na Wife
0795名前は開発中のものです。
04/12/15 17:52:16ID:3f8c+YkSDirectX SDK (December 2004)インストールしたんですが
DirectPlayのサンプルがついてない・・・
DirectPlayの機能に変化がないからのようで
どのバージョンならば付いてますでしょうか?
0796名前は開発中のものです。
04/12/15 18:38:11ID:0I2YGKTuSummer 2003 にはある。
Summer 2004 以降は無い。
あとサンプルが無いのは機能に変化が無いからではなく
> DirectPlay は不適切となり、旧式のものとみなされています。
> DirectPlay ランタイム コンポーネントは、オペレーティング システムでサポートされていますが、
> ヘッダー・ライブラリ・ドキュメントは将来のリリースの SDK で削除されるでしょう。
> 既存のアプリケーションを修正するとき、このコンポーネントへの依存性を削除することを強く推奨します。
という事なのでこれから作るなら
DirectPlay 使うのは止めたほうがいいと思う。
0797名前は開発中のものです。
04/12/15 20:23:47ID:rOGq997CDirectPlayの替わりは何になるの?
0798785 791
04/12/15 20:31:07ID:pCTFG4k0お暇な方、良かったらソース見てやって下さいませ
たぶんとんでもなくつまらないミスだと思います
ttp://gamdev.org/up/img/2124.zip
0799798
04/12/15 20:32:53ID:pCTFG4k00800名前は開発中のものです。
04/12/15 21:14:26ID:uxKIR4qzWinSockでは?
0801名前は開発中のものです。
04/12/15 21:48:22ID:mf8+Ge20FVFはイクナイ。VertexDeclarationバージョンをあげとく
http://www.uploda.org/file/uporg22612.zip
0802798
04/12/15 22:13:58ID:pCTFG4k0うひょー修正ソースまで!感激っす!
元のソースにも適用してみましたが、うにょうにょ動いてくれて思わずガッツポーズ!
なるほど頂点宣言ですかぁ、これからじっくりこれについて調べてみます
いや本当に、丸二日寝ても覚めても悩んでいまして…ありがとうございました!
ソース見てくださった他の方にも感謝っす
0803名前は開発中のものです。
04/12/16 00:49:05ID:X/XYEA0Cどうにもうさんくさいと思っていたら。
0804名前は開発中のものです。
04/12/16 04:01:26ID:gCuPh9E/0805名前は開発中のものです。
04/12/16 10:04:59ID:PmxVvc7I非同期I/Oとか結構便利だし。
0806名前は開発中のものです。
04/12/16 10:18:16ID:tjOk0UvG0807名前は開発中のものです。
04/12/16 10:24:44ID:xwdq2LRc0808名前は開発中のものです。
04/12/16 11:09:21ID:PmxVvc7Iリアルタイムに自分でエンコードして転送すんのか・・・
マイクからの入力はDirectSoundで取れるからいいけどOggにでもエンコすっか・・・?
0809名前は開発中のものです。
04/12/16 14:30:42ID:lA8+7u1v0810名前は開発中のものです。
04/12/16 14:38:57ID:rNKsfLybVSを割り当ててDrawIndexedPrimitive()したあとに
頂点ブレンドされた結果のVertexBufferを取得することは
できますか?
0811名前は開発中のものです。
04/12/16 14:59:28ID:nsksm3nJProcessVertices でいけるかも
0812名前は開発中のものです。
04/12/21 20:20:36ID:VealJqOr新しいデータの補充をやめると同じ音が鳴り続けます。
そこでDirectSoundBufferをStopさせずにその音を消す上手い方法はありませんか?
0813名前は開発中のものです。
04/12/21 20:23:27ID:E4gqQxGH0814名前は開発中のものです。
04/12/21 20:29:03ID:VealJqOrそれは考えた。
出来れば無音のwavファイルを用意してそれを読み込むってのは避けたい
もしかしてCreateSoundBufferしたてのバッファをどこかにコピーしておくってのはあり?
0815812
04/12/21 20:42:14ID:VealJqOr↑で出来た。とりあえず>>813サンクス。
でも、もっといい方法あったらよろしく。
0816名前は開発中のものです。
04/12/21 21:45:26ID:yhcjkR/f16bitだったら0、8bitだったら128を書き込んでやれば良いんじゃないのか?
0818名前は開発中のものです。
04/12/23 09:58:47ID:FEnanRmI0819名前は開発中のものです。
04/12/23 10:25:41ID:l+8f12vXおためしあれ
■ このスレッドは過去ログ倉庫に格納されています