■過去ログ置き場に戻る■ 1- 前250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

DirectX総合スレ (Part5)
751 名前:名前は開発中のものです。 :2006/10/21(土) 01:12:46 ID:h4fJ9Plf
>>748
浮動小数点バッファもそもそもフィルタとアルファが使えない。


752 名前:名前は開発中のものです。 :2006/10/21(土) 01:35:28 ID:uPaMWthY
>>748
HDRレンダリングするんだったらピクセルシェーダ使うだろ?
だったら問題なしだ。自分で実装したまえ。

753 名前:名前は開発中のものです。 :2006/10/21(土) 01:36:21 ID:0t6G1cyR
じゃもうおとなしく描画を全てHLSLとかに移行した方がいいですね.
スプライト関係のルーチンを書き換えてきます……('A`;)

754 名前:名前は開発中のものです。 :2006/10/21(土) 01:40:02 ID:uPaMWthY
待て待て。
D3DFMT_A16B16G16R16F を使わない、って選択肢はないのか?

そもそも、何のために使おうとしてるんだ??

755 名前:名前は開発中のものです。 :2006/10/21(土) 01:53:02 ID:0t6G1cyR
具体的にはトーン調整とかブルームとかが使いたくて.

あとHDR対応だと,いろいろ表現力が広がるみたいだし,
後々のことを考えると,今のうちに使えるようにしておいた方がいいかなと.

756 名前:名前は開発中のものです。 :2006/10/21(土) 02:05:17 ID:uPaMWthY
現時点でHLSLベースで作ってない上にスプライトとか使ってる状態では
FLOATバッファ使ったHDRレンダリングは早いと思うよ。

やりたいトーン調整やブルームは、擬似的に再現した方が絶対に楽。

757 名前:名前は開発中のものです。 :2006/10/21(土) 02:21:36 ID:h4fJ9Plf
てかスプライトにHDRなんていらんだろ

758 名前:名前は開発中のものです。 :2006/10/21(土) 02:24:26 ID:0t6G1cyR
あうあう.
現在自分のライブラリは3年間改造・増築を繰り返した結果,
モデルの描画がHLSL,2D・3Dスプライト(ビルボード?)が固定機能とばらばらになっていて,
おまけにライトの管理とかビューポートの管理とか,機能を細分化しすぎて,
作った本人にも詳細構造が意味不明な状態になっているので,
とりあえず固定機能の消去とかの機構削減・統合に関しては積極的に行いたいのでつ.

自分もスプライト関係は大昔に書いたコード&機能追加しすぎて超長いので触りたくないのですが…….

759 名前:名前は開発中のものです。 :2006/10/21(土) 02:53:50 ID:m+1yDL9S
確かに長く書くのは億劫だよねー
答えてもらう側の苦労は自分が苦労するわけじゃないからどうでもいいよねー

760 名前:名前は開発中のものです。 :2006/10/21(土) 02:54:07 ID:uPaMWthY
3年間も使い続けてるのはエラいと思う反面、古いプログラムにしがみ付きすぎだとも思う。

HLSLに対応した時点でスプライト関連をまとめるべきだったね。
それは、今からでも全然遅くない。作り直すべき。

761 名前:名前は開発中のものです。 :2006/10/21(土) 03:04:52 ID:h4fJ9Plf
3年も弄ってるって事は仕事で使ってるとか、ネット上で公開してるとかそういう類かしら

762 名前:名前は開発中のものです。 :2006/10/21(土) 03:12:17 ID:0t6G1cyR
>>759
ムキー(#`皿´)
書き込み内容が長いと言われるのを恐れただけです.(´・ω・`)

>>760
そうそう,そう思っていま大改装中なのです.
その一環でHDRにも対応させようぜ,と.

>>761
いえ,すごく自分用です.
そのうちネット公開できればいいなとも

763 名前:名前は開発中のものです。 :2006/10/21(土) 03:18:21 ID:uPaMWthY
>>762
良いキャラしてるねー面倒みたくなるよ( ´∀`)

HDR対応にするなら、現状ではスプライト処理を廃止(ポリゴンに移行)するか、
簡単なところではスプライトはHDRレンダリング対象外ってことにするとか。

トーンマップ後のバッファに描いたらいいじゃん的な。

764 名前:名前は開発中のものです。 :2006/10/21(土) 04:25:01 ID:/8+zda2i
割り込んでごめんなさいです

ずっと前から疑問なんですが
デバイスにFVFを設定するのとVERTEXDECLARATIONを設定するのとでは
どういう違いがあってどういう意味があるんでしょうか

765 名前:名前は開発中のものです。 :2006/10/21(土) 04:47:59 ID:rSfE5bai
VERTEXDECLARATIONの方がもっと柔軟なフォーマットを指定できる。
それだけ。

766 名前:名前は開発中のものです。 :2006/10/21(土) 04:52:13 ID:/8+zda2i
ありがとうございました

うっ

767 名前:名前は開発中のものです。 :2006/10/21(土) 18:54:08 ID:uj+Vqk1i
>>746
釣りじゃないです><
わからないんです><
違いは、
・Lock/Unlockできるぐらいしかわからん

描画制限があるとか
演算をハードに任せるとかあるんですか?



768 名前:名前は開発中のものです。 :2006/10/21(土) 18:56:19 ID:uj+Vqk1i
ああ、DrawIndexPrimitiveじゃなくDrawIndexPrimitiveUpだ

うp系ってウンコ?

769 名前:名前は開発中のものです。 :2006/10/21(土) 19:03:43 ID:h4fJ9Plf
君がウンコな気がする・・・
初心者スレじゃないんだしリファレンスくらい読もうぜ。

770 名前:名前は開発中のものです。 :2006/10/21(土) 19:08:21 ID:h4fJ9Plf
--------------------------------------------------------------------------------
IDirect3DDevice9::DrawPrimitive メソッド
現在のデータ入力ストリーム セットから、指定されたタイプのインデックスなしジオメトリ プリミティブのシーケンスをレンダリングします。


--------------------------------------------------------------------------------
IDirect3DDevice9::DrawPrimitiveUP メソッド
ユーザー メモリ ポインタで指定されたデータを、指定されたタイプのジオメトリ プリミティブのシーケンスとしてレンダリングします。

IDirect3DDevice9::DrawPrimitiveUP に渡す頂点データは、呼び出しの後も保持する必要はありません。
Microsoft Direct3D は、呼び出しから戻る前に、そのデータへのアクセスを完了します。


771 名前:名前は開発中のものです。 :2006/10/21(土) 19:17:21 ID:uj+Vqk1i
ツンデレを垣間見た
サンクス

>呼び出しから戻る前に、そのデータへのアクセスを完了します。
つまり、Up系は、ユーザメモリをVRAMに完全にコピーしてから処理を返すから、ちょっと反応が遅いってわけなのか

ttp://twin-tail.jp/contents/vsdx8/d3d/020/index.htm
2Dは、うpれと

ぬああ
よくわからん
じっくりマニュアル読んでくる

772 名前:名前は開発中のものです。 :2006/10/21(土) 20:13:47 ID:3iLjIQCs
2DだとDrawPrimitiveもDrawPrimitiveUPも
大して変わらないとか聞いたような

773 名前:名前は開発中のものです。 :2006/10/21(土) 20:27:22 ID:h4fJ9Plf
> Direct3DDevice9::DrawPrimitiveUP に渡す頂点データは、呼び出しの後も保持する必要はありません。
> Microsoft Direct3D は、呼び出しから戻る前に、そのデータへのアクセスを完了します。
ようするにDrawPrimitive呼ぶ度に内部で頂点バッファにコピーしてるって事だ。

2D/3Dのスプライトのような頻繁に書き換えるものならD3DPOOL_DEFAULTにD3DUSAGE_DYNAMICとD3DUSAGE_WRITEONLYをつけて頂点バッファを作れ。
そうするとAGPメモリに展開されてVRAMデータと同じ速度でレンダリングが行われつつシステムメモリと同じ速度で書き込みできる。

ロック時にD3DLOCK_DISCARDを指定すると、ドライバ内で自動的に新しいバッファを返してくるので、
更新>描画>更新>描画とやっても頂点バッファロック時に描画待ちとか発生せずにアクセスできる。

774 名前:名前は開発中のものです。 :2006/10/21(土) 21:52:37 ID:eZHe5LjK
ぶっちゃけ2Dの頂点数なんてあんまり関係無いと思うよ。
なにでやってもそんなに速度に差なんてでないと予想。

2Dなんか
「お前、それで3Dモデル作れるぐらいだすつもりなのかと?
何言ってるのか?わかるか?
普通の3Dゲームで3Dモデルのポリ数をワンフレームをこさえたとしても
問題ない速度がでるのに、たかだか2Dゲームで何糞みたいなこと気にしてるのかと?」
問い詰めたくなる。

これが3Dゲームの2D部分だったとしても2Dのポリ数なんぞ
ほとんど影響でないと予想。
ピクセルフィルレートならわかるけどね。

775 名前:名前は開発中のものです。 :2006/10/21(土) 22:53:28 ID:h4fJ9Plf
2Dでも各種爆発やエフェクト系のテクスチャを1枚にまとめて、
1,2回程度のDrawPrimitiveで処理するときは数千頂点とかにはなるぞ。

まぁ変換済み頂点だからそもそもバーテックスシェーダーは経由しないけど。

あとDirectX8世代だとUP系の関数は描画完了までブロックしてたってのがある。
DirectX9で内部にバッファ作ってコピーするようになったとかならんかったとか。

まぁ今のDirectXで一番重いのはDrawPrimitive系の関数のコールだから
可能な限りDrawPrimitiveの数は減らせるように作っておいた方がいい。


776 名前:名前は開発中のものです。 :2006/10/21(土) 23:16:50 ID:NV8Lshdx
また知ったかを。
DrawPrimitiveは処理リストに詰めているだけで、実際にそこで処理をされるわけでは無い。
一番重くなるのはPresentをした時。

777 名前:名前は開発中のものです。 :2006/10/21(土) 23:22:46 ID:h4fJ9Plf
少なくともUP系は結構重いぞ。
確かにDrawPrimitiveはGPUコマンドを作成するだけだが、
Presentをしないという選択肢はありえないんだから
DirectDrawのBltみたいな気軽さでDrawPrimitive系の呼び出しは
やるもんじゃないだろ。


778 名前:名前は開発中のものです。 :2006/10/21(土) 23:24:21 ID:NV8Lshdx
いちいち後出しで恥の上塗りなんかしなくていいよ、みっともない。

779 名前:名前は開発中のものです。 :2006/10/21(土) 23:38:33 ID:ayJ9KzQY
DrawPrimitive佐賀

780 名前:名前は開発中のものです。 :2006/10/21(土) 23:46:13 ID:ayJ9KzQY
一番重いのは俺の体重

781 名前:名前は開発中のものです。 :2006/10/21(土) 23:48:22 ID:m+1yDL9S
知ったかはID:NV8Lshdxの方だと思う(俺はID:h4fJ9Plfではないが)

少なくともバッチ数によるCPU負荷のコストが尋常でないのは周知の事実だし、
commandBuffer(pushBuffer)のkick開始がPresentのタイミングと決まっているわけではない
(というか、一般的なドライバでは描画コールの度にkickは発生している)。
そもそも負荷のタイミングがどうこういう話ではなく、バッチにはコスト掛かるよってだけの話だし
見当違いも甚だしい

あと、反論があるなら>>778みたいな間抜けな勝利宣言ではない方法がお勧め

782 名前:名前は開発中のものです。 :2006/10/22(日) 00:13:37 ID:EaoxUskK
>一番重くなるのはPresentをした時
Presentコールしてから描画してるような言い方は止めてくれ


783 名前:名前は開発中のものです。 :2006/10/22(日) 00:47:09 ID:6qnIWxGe
あー、うぜ。
なんか意地になってどうしなきゃならない的なこという奴いるけど
DrawPrimitiveのコストなんて気にしないほうがいい。

これはDrawPrimitiveのコストがどうのこうのって問題じゃなくて、
まず、「仕様」ありきでしょ?って話。
で、作ってきゃわかるけど、ホントに描画が重くなってるときってこの辺最適化したって
重い動作が快適に変わることってほとんどない。

ぶっちゃけXファイルのポリゴンのオプティマイズ関数ぐらい無駄。
テスト環境だと数字だけ上がって華やかに見えるけど、実際のゲームだとデザイナの作る物が分かれすぎてて
最適化なんてほとんどきかねーから。
これは凝ってるモデルほど最適化が効かなくのはもはや宿命。
で、快適に動くシーンってのは誰がどんな描画方法でやったって大抵はいい速度で動いちまうもんだ。
変なことしないで普通にやりやすい方法で描画しろ。

784 名前:名前は開発中のものです。 :2006/10/22(日) 00:50:25 ID:68ueZeB5
>>773
>そうするとAGPメモリに展開されてVRAMデータと同じ速度でレンダリングが行われつつシステムメモリと同じ速度で書き込みできる。
大嘘もいい加減にしろ。
AGPメモリはメインメモリをビデオカード側から見えるようにマッピングするだけで、VRAMと同じ速度なんて持っていない。
ビデオカード側で頂点処理が出来るだけで、データはバスを超えて取りに行かなければならない。
頻繁に書き替えると言っても、その頻度が毎フレームとかいう状態でない限り、逆に遅くなる可能性すらある。

いつからAGPメモリがVRAMと同じ速度を持つようになったんだ?

785 名前:名前は開発中のものです。 :2006/10/22(日) 01:09:37 ID:5tDaX/On
>>783
DrawPrimitiveのコールで足ひっぱりのはGPUじゃなくてCPUなんだが・・・
基本的にGPUで足をひっぱるのはピクセルシェーダーだしな。

>>784
毎フレームデータ更新しないポイントスプライトがあるのかと・・・
何のためのD3DUSAGE_WRITEONLYなのかと。

実際のどこのメモリに配置されるからは完全にドライバ依存だし、
システムへの下りがない前提ならDMAでシステム>VRAMだけですむ様にも最適化されるだろ。


786 名前:名前は開発中のものです。 :2006/10/22(日) 01:25:06 ID:l86FuBMq
>>776
最近のビデオカードだと、Presentですらブロックは発生しないよ。
Presentもキューに入れるだけ。
そのせいで描画に遅延が発生するという別の問題が発生している。

アクション性の高いゲームだと、その遅延が問題になるから
わざわざブロックが発生するようにLock入れたりしている。
(その方法はMSは推奨していないが)

787 名前:名前は開発中のものです。 :2006/10/22(日) 01:38:56 ID:EaoxUskK
データがおかしいと
GeForceが表示しなくて
RADEONが無理やり実行するって聞いた。

だいたいあってる?

788 名前:名前は開発中のものです。 :2006/10/22(日) 02:40:09 ID:rK8QctmW
>>777
>確かにDrawPrimitiveはGPUコマンドを作成するだけだが、
>Presentをしないという選択肢はありえないんだから

バックバッファではなくテクスチャに描画するときはDrawPrimitiveの後でPresentしないで良いんじゃない?

789 名前:名前は開発中のものです。 :2006/10/22(日) 04:40:10 ID:EcAvnWP5
ハードウェア的に浮動小数点のHDRレンダリングターゲットに対する
アルファブレンディングがサポートされていない環境で,
ps_2_0くらいまでのHLSLでHDRへのアルファブレンドを実現する方法はないでしょうか?

HLSLでHDRのアルファブレンディングを実装するために,
ピクセルシェーダでソースカラーとレンダリングターゲットのピクセルカラーを混ぜる方法をとろうとしたのですが,
描画先のピクセル座標はps_3_0で無いと取得できないようで…….
ちょっとps_3_0は今の時期のゲームに使うのは環境的に難しそうなので,他の方法がほしいのですが.
(おまけに自分のグラボでは古くて動いてくれない('A`;; エフェクトエディタではSuccessになったのですが)

>>763
爆発エフェクトとかに対してごちゃごちゃやってみたいので,
なんとか3Dスプライト?も使いたいのです.

790 名前:名前は開発中のものです。 :2006/10/22(日) 04:56:12 ID:ic1Mev2+
>>789
頑張ってますね〜

HDRバッファもテクスチャとしてHLSLに渡したら参照可能かな?

791 名前:名前は開発中のものです。 :2006/10/22(日) 05:21:33 ID:EcAvnWP5
>>790
自分もその方法でやってみたんですけど最終的にカラー合成するとき,
HDRターゲットテクスチャ側のピクセルカラーを取ってくるのにtex2D()を使ったのですが,
座標指定が必要になるので,ピクセルシェーダの入力にVPOSを入れたのですが,
このVPOSというセマンティックはps_3_0以降でないとサポートされないようなのです.

792 名前:名前は開発中のものです。 :2006/10/22(日) 07:31:43 ID:l86FuBMq
>>791
普通にテクスチャ座標で指定するだけでは?
Direct3D使って2Dエフェクト実装したことないの?

793 名前:名前は開発中のものです。 :2006/10/22(日) 08:32:51 ID:5tDaX/On
>>788
いやいや、結局その後どこかでPresent()はするわけじゃん。

>>789
1.HDRーRT
  モデルなどをHDRでレンダリング

2.トーンマップなどのHDR処理

3.HDR-RTからLDR-RTへのフォーマット変換転送
   StretchRect()

4.半透明を使用したエフェクト描画&2D描画

5.LDR-RTからバックバッファへのフォーマット変換転送
   StretchRec t()

6.Present()

ようはHDR-RTだけで処理を関係させようと思わなければいい。
パーティクル関係がHDR処理をされる必要はないんだし。

794 名前:名前は開発中のものです。 :2006/10/22(日) 08:47:57 ID:l86FuBMq
>>793
Presentを一切実行しないDirect3Dプログラムというのも有り得る。
EndSceneの間違いなら分かるが。

795 名前:名前は開発中のものです。 :2006/10/22(日) 09:01:21 ID:5tDaX/On
あぁそうか画面に描画しねーならPresentはいらねーな。
そもそもDrawPrimitiveしないならBegin-Endもいらんか。

>>776ので勘違いしてた。
Present()が重いのは基本的にそこで全描画を待つからであって、
別にPresent()でkickしてるからではないって話だったな。

まぁこのへんも全部ドライバ依存だから一律決まってるわけでもないが・・・。


796 名前:名前は開発中のものです。 :2006/10/22(日) 09:37:22 ID:EcAvnWP5
>>792
HLSLは正直あんまり使ったことないです.(´・ω・`)
どういう風に実装するものなんでしょ?

>>793
ふむむ,やっぱりエフェクト類は分離させた方が早いですか.
とりあえず動く状態にしたいのでそれでいってみます.

797 名前:名前は開発中のものです。 :2006/10/22(日) 12:54:52 ID:ic1Mev2+
>>791
描画座標をテクスチャ座標に変換してピクセルシェーダに渡すだけだよー
(テクスチャサイズか変換マトリクスをHLSLに渡す必要がある)
頂点シェーダの入力はテクスチャ座標1つでも、ピクセルシェーダは2つとか可能だからね。

基本的に、頂点シェーダが持つ特殊なデータを渡したい時はテクスチャ座標を使います。

798 名前:名前は開発中のものです。 :2006/10/22(日) 13:11:03 ID:ic1Mev2+
> 2.トーンマップなどのHDR処理
> 3.HDR-RTからLDR-RTへのフォーマット変換転送
>    StretchRect()

トーンマップってHDR→LDRを含むよね。

っつーか、その案はすでに出してるんだけど。

799 名前:名前は開発中のものです。 :2006/10/22(日) 13:40:07 ID:l86FuBMq
GPGPUなんかはPresentしないね。

800 名前:名前は開発中のものです。 :2006/10/22(日) 13:54:46 ID:hF59/NZX
ID:NV8Lshdxの再登場はまだ?
それとも既にいるなら名乗ってくれよー

801 名前:名前は開発中のものです。 :2006/10/22(日) 13:57:03 ID:76l0BiyE
AfterEffectモドキのエフェクトアニメーション作成ツールを作ったときもPresentは使わなかった。
バックバッファをD3DXSaveSurfaceToFileで取り出してAVIにエクスポートするだけだったんで。

802 名前:名前は開発中のものです。 :2006/10/22(日) 14:09:11 ID:hF59/NZX
>>801
つまりPresentが要らない分、超爆速ってことだね!
なんてったって「一番重たくなる」Presentが要らないんだもんね!

という戯言はともかくとして
処理は別スレッドで行って、なんか適当に「エクスポート中です」とかアニメーションさせた
画面出しておいた方がツール使う人の不安ちょっと解消されるかもね
使う人がプログラマだったらそんなんむしろ邪魔だろうけどデザイナプランナが使うんならって話ね

803 名前:名前は開発中のものです。 :2006/10/22(日) 19:57:45 ID:l86FuBMq
>>802
801のツールが何も画面に表示してないとは書いてないし、
その表示にPresentいらないし。GDIで十分。

804 名前:名前は開発中のものです。 :2006/10/22(日) 22:07:46 ID:EaoxUskK
GDIは、3Dやってくれん

805 名前:名前は開発中のものです。 :2006/10/23(月) 00:01:56 ID:qi743vUp
3Dは別に必要ないんじゃないかと思うが

806 名前:名前は開発中のものです。 :2006/10/23(月) 13:14:35 ID:6CPwqHL/
GDIだと
いろんなブレンドが面倒だろ

807 名前:名前は開発中のものです。 :2006/10/23(月) 13:55:20 ID:XYoLA6BQ
そこでMMXが満を持して登場

808 名前:名前は開発中のものです。 :2006/10/23(月) 14:03:27 ID:6CPwqHL/
5年ぐらい前のコードをまた書けと

809 名前:名前は開発中のものです。 :2006/10/23(月) 14:20:12 ID:AlorIxAy
802の言う程度の描画ならGDIで十分、という話だと思う。
で、Presentはいらない場合もあるね、ってことだろう。
もはやなんの話だったかおぼえてないけど。

810 名前:名前は開発中のものです。 :2006/10/23(月) 14:24:28 ID:XYoLA6BQ
Presentが一番処理が重いんだ!とおっしゃった方が発端かと。

811 名前:名前は開発中のものです。 :2006/10/23(月) 16:24:59 ID:Z6chIrR/
普通に時間計ったらPresentが一番重くなるんじゃないの?描画待ちで。

それを、Present使わない稀な例を挙げて騒いでるのはなんで??

812 名前:名前は開発中のものです。 :2006/10/23(月) 17:15:55 ID:XYoLA6BQ
>>811
最初にPresentが重いといった人がどういう意図でいったのか分からんが、
描画待ちをしてるからではなく、状況に依存せずに重いと言ったんじゃなかろうか。

そもそも描画が完了してる状況ならさして重くないんだし。

813 名前:名前は開発中のものです。 :2006/10/23(月) 17:28:47 ID:6CPwqHL/
Presentの前に通常処理をすればいいじゃない

814 名前:名前は開発中のものです。 :2006/10/23(月) 17:54:32 ID:6CPwqHL/
佐賀

815 名前:名前は開発中のものです。 :2006/10/23(月) 19:25:37 ID:jKlaZ7Jm
>>811
ほっとけ。
相手にしてもしょうがない。

816 名前:名前は開発中のものです。 :2006/10/23(月) 19:37:27 ID:6CPwqHL/
誰か
GeForceとRADEONの違いについて語って


817 名前:名前は開発中のものです。 :2006/10/23(月) 21:30:48 ID:ciin62ac
>>811
お前さんはとんでもない勘違いをしている。
Presentをしないプログラムも有り得るという話は、Presentが
重いという話の流れではなく>>777に対するレス。

818 名前:名前は開発中のものです。 :2006/10/23(月) 22:21:08 ID:Z6chIrR/
>>777 はある程度内部処理を想像できてるから、
UP系と非UP系+Presentとを比較した発言をしてるよね?

それに対して「Presentしない例もある」って言ってる人は
話の根本を理解してない上に、内部処理を理解してない人まで混じってる。

「Presentしないこともあるけどね」程度で終わればいいが
そっちの話にばかり移ってるのがおかしいんだよ。

819 名前:名前は開発中のものです。 :2006/10/23(月) 23:31:10 ID:uPBAMZ42
んじゃそろそろクリスマスPresemtでも考えようぜ。
俺はゲームボーイアドバンス

820 名前:名前は開発中のものです。 :2006/10/23(月) 23:48:22 ID:9Lc6zUn4
やっべ驚くほどつまんない人が現れた

821 名前:名前は開発中のものです。 :2006/10/24(火) 00:39:22 ID:XXqaDRKI
>>819 勇んでボケたのに咬んだね・・・>スペルミス

822 名前:名前は開発中のものです。 :2006/10/24(火) 00:44:01 ID:29CX4dpv
>>818
話の本筋が一段落したところで
脇道にそれてわいわいやってただけなので
文脈読んでください。
おかしいのはお前の会話能力です。

823 名前:名前は開発中のものです。 :2006/10/24(火) 01:01:12 ID:XXqaDRKI
>>822 天才発見w

824 名前:名前は開発中のものです。 :2006/10/24(火) 01:19:20 ID:1zYYZAzr
わいわいやってたんだ・・・

825 名前:名前は開発中のものです。 :2006/10/24(火) 02:59:13 ID:TWYQ8KiQ
Presentが一番重たい人に比べたら
誰だって天才だよw

826 名前:名前は開発中のものです。 :2006/10/24(火) 14:20:05 ID:8Vuprf8E
P
r
e
s
e
n
t

827 名前:名前は開発中のものです。 :2006/10/24(火) 19:59:24 ID:sJcOwBty
pre-sentをそのまま訳したら「先送り」になってしまうな…

828 名前:名前は開発中のものです。 :2006/10/25(水) 02:10:07 ID:KTdU/3F0
>>825 バカがおるw

829 名前:名前は開発中のものです。 :2006/10/25(水) 02:57:23 ID:EYzF8ef7
presentが一番重たい人キター!

830 名前:名前は開発中のものです。 :2006/10/25(水) 04:08:53 ID:LLqUJYx8
今モーションの補間をやろうとしています。
キーフレームには各ボーンに対応するクオータニオンが設定されていて、そのキーフレーム
間のクオータニオン同士をなめらかに補間しようと考えています。
とりあえずD3DXQuaternionSquadSetupとD3DXQuaternionSquadを使って補間してみたの
ですが、この問題
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=40&vew=58
と同じ問題が出て困っています。このスレッドではGemsのサンプルを使うと良い、といった
事が書かれていますが、Gemsの方はGemsの方で、クオータニオンを360度一回転させると
おかしくなる等問題があります。
クオータニオンをD3DXVECTOR4にキャストしてCatmullRomで補間してみたりもしたのですが、
やっぱり一回転できない等問題が出てしまいます。

クオータニオン同士を滑らかに補間したい時は普通どうやるんでしょうか。
あんまりキーフレーム同士の角度が離れすぎないようにしてD3DXQuaternionSquadで補間する
しか無いんでしょうか?
それなりに滑らかに見えればOKで、あんまり厳密さとかは求めてないんですが・・・。

831 名前:名前は開発中のものです。 :2006/10/25(水) 12:15:51 ID:SFxxjz98
>>830
反転なしのslerpでsquadを実装、でだめなの?
その360度一回転ってのがよくわからないんだけど、まさか一区間で
一回転じゃないわよね。とりあえず例が無いとわからないわ。

832 名前:名前は開発中のものです。 :2006/10/25(水) 12:47:20 ID:5VGIVB7p
「妹と月イチでHなことしてる♪」と女子高生タレントがblogで発言→炎上中 ★2
http://news20.2ch.net/test/read.cgi/news/1161654591/

833 名前:名前は開発中のものです。 :2006/10/25(水) 13:37:44 ID:LLqUJYx8
>>831
ギャー!全然関係無いうっかりミスが原因でした。
仰る通り、反転無しのslerpで正しく動きます。
上の質問は忘れてください、お騒がせしました。

834 名前:名前は開発中のものです。 :2006/10/27(金) 17:51:49 ID:HiN9NZ19
PCで
3D技術使いまくり系で
めがっさキレイなゲームって何があります?


835 名前:名前は開発中のものです。 :2006/10/27(金) 18:54:51 ID:eZSZuVfp
おれのゲーム

836 名前:名前は開発中のものです。 :2006/10/27(金) 19:35:30 ID:HiN9NZ19
うp

837 名前:名前は開発中のものです。 :2006/10/28(土) 00:40:05 ID:lejTk6wo
DirectXSDKを最新版にしたい場合、旧バージョンアンインストール→新盤DL&インストールって手順でOK?

838 名前:名前は開発中のものです。 :2006/10/28(土) 02:52:28 ID:YtJcGF1Q
>>834
今なら間違いなくCrysis
ttp://www.xasis-game.com/title/crysis/movie.shtml

既に発売してるものならProject Gotham Racing 3

839 名前:名前は開発中のものです。 :2006/10/28(土) 13:18:04 ID:csTaW2+P
>>837
新版DL→旧バージョンアンインストール→インストールの方がたぶんイカす

840 名前:名前は開発中のものです。 :2006/10/29(日) 21:53:43 ID:rzQT+t6V
遅レスで申し訳ないんだけど、結局、頂点をCPU側で動的に書き換える場合、
DrawPrimitive、DrawPrimitiveUP、DrawIndexedPrimitive、DrawIndexedPrimitiveUP
のどれを、どう使うのが一般的なの?

kickとかよくわからない素人なのですが、識者の方、どうかまとめてくれないでしょうか

841 名前:名前は開発中のものです。 :2006/10/29(日) 22:38:31 ID:K8O/95s8
>>840
てめぇで考えろよ。
正解なんてねぇよ。

842 名前:名前は開発中のものです。 :2006/10/29(日) 23:20:08 ID:GlgZOmB4
>>843
あ?けんかう

843 名前:名前は開発中のものです。 :2006/10/29(日) 23:27:52 ID:PaY4YJF2
>>842
けんかう。

844 名前:名前は開発中のものです。 :2006/10/29(日) 23:45:05 ID:K8O/95s8
(´・ω・`)<人に関数決めてもらわなきゃ描画も出来ネェ糞餓鬼がなめてんじゃねぇぞ!カカッテコイヨ!オラ!

845 名前:名前は開発中のものです。 :2006/10/29(日) 23:54:45 ID:swLW9KaN
>>840
時と場合による。
どのような時に何がもっとも有効かはリファレンスを熟読しましょう。
その後の検証も忘れずにな。

846 名前:名前は開発中のものです。 :2006/10/30(月) 00:35:12 ID:o7aFQX0n
俺は、本当は誰もそんなパターンなんて出来てないし誰も理解も出来てない、と思うんだ

>どのような時に何がもっとも有効か
なんてリファレンスを見るまでもなく、そのパターンが少しは出てくるはずだが、1つも出てこないから

847 名前:名前は開発中のものです。 :2006/10/30(月) 01:21:58 ID:C0/Sv58N
そうか?
少なくとも俺の今のプログラムの中ではUP系関数を使う箇所はない。
DrawPrimitive系どうこうよりも、頂点バッファの作り方と使い方のほうが重要だし。

848 名前:名前は開発中のものです。 :2006/10/30(月) 02:28:31 ID:DnQfbB/1
みんな頂点ストリーム使ってないのか?
UPだと0番しか使えないぞ。

0で座標、1でUV、2で法線、3で・・・

って使うと汎用的に使えて便利だぞ。
UPだとこういうもの作るのに向いてない。

849 名前:名前は開発中のものです。 :2006/10/30(月) 02:31:28 ID:d4X25+aF
他人に使う関数を決めてもらうような人間が
頂点ストリーム使ってたり知ってたりするはずがない。

850 名前:名前は開発中のものです。 :2006/10/30(月) 04:38:50 ID:HYgOtsaj
>>840
よく分からない奴はUP系を使うのがベスト。
VertexBufferはよく分からないで使っていると、パフォーマンスを
悪化する可能性がある。

851 名前:名前は開発中のものです。 :2006/10/30(月) 09:58:40 ID:qTkdSgLV
>>848
GPUの中身知ってると、そんな非効率的な実装する気にはならなくなるけどねぇ
preであれpostであれ頂点キャッシュ無駄にし過ぎ

852 名前:名前は開発中のものです。 :2006/10/30(月) 11:34:36 ID:auNg4VTg
>>851
どういうふうに非効率なの?
GPU Gemsでも848みたいな例が載ってた気がするけど真似しちゃまずいのか?

853 名前:名前は開発中のものです。 :2006/10/30(月) 12:32:10 ID:Kb3dfOrG
頂点ストリームの切替えやテクスチャの切替えはキャッシュがクリアされ
パフォーマンスの大幅な低下の原因になる。
つーかこれは普通にドキュメントに書いてあることなんだが。
この程度の日本語も理解できないのか?

854 名前:名前は開発中のものです。 :2006/10/30(月) 21:28:08 ID:C0/Sv58N
ストリームを複数使うのと、ストリームを切り替えるのは違うと思うだな。

855 名前:名前は開発中のものです。 :2006/10/31(火) 00:29:57 ID:Gz2/in6U
最近のハードだと頂点ストリームやテクスチャの切り替えでもstallは起きない。
パイプラインにステート変更コマンドが流されるだけ

つうか851の本文に答え書いてあるのになんで疑問系で返ってくるんだろう
これ以上は書かないので後は自分で頑張れ

856 名前:名前は開発中のものです。 :2006/10/31(火) 00:32:58 ID:6ezWOrLE
複数ストリームはドライバが内部的に1つのストリームとして展開してると思うんだが・・・

857 名前:名前は開発中のものです。 :2006/10/31(火) 01:54:05 ID:3fmEp8uo
>>855
あw逃げてやんのw
わかるんだw俺w

858 名前:名前は開発中のものです。 :2006/10/31(火) 22:52:52 ID:XDYbMhDw
ビデオカードによって最適な実装は異なる。

859 名前:名前は開発中のものです。 :2006/10/31(火) 22:56:27 ID:6ezWOrLE
SetStreamSource()の呼び出しで頂点バッファが切り替えられてキャッシュが云々はわかる。

だが複数ストリームを使ったら1頂点処理するごとにキャッシュミスが発生なんて
阿呆な実装がまずありえないだろ・・・。

860 名前:名前は開発中のものです。 :2006/10/31(火) 23:00:46 ID:mCqyMb0n
つまり、

複数の描画方法を実装して、
ゲーム中に切り替えて比較して、
描画対象によって結果集計して、
リアルタイムに切り替えていけばいいわけですね!!!

861 名前:名前は開発中のものです。 :2006/11/01(水) 00:14:46 ID:o/Y9sipL
>>860
ボケなんだか微妙なラインすぎて困ってるだろw

実際に、実行時にテストしてから開始するソフトあったような・・
もちろん構成が変わってなければパフォーマンス一緒だから最初の一回だけだと思うが。

862 名前:名前は開発中のものです。 :2006/11/01(水) 02:06:17 ID:0Q6qMURg
深海からの保守

863 名前:名前は開発中のものです。 :2006/11/01(水) 02:09:32 ID:hxk+oCO7
ボケしかいないスレ。

864 名前:名前は開発中のものです。 :2006/11/02(木) 16:59:51 ID:diKduz13
DirectInput対応のゲーム等の操作を記録して、後で再生してくれるプログラムとかないですかね

865 名前:864 :2006/11/02(木) 17:00:23 ID:diKduz13
JOYPADの操作です

866 名前:名前は開発中のものです。 :2006/11/02(木) 17:29:34 ID:sljvqe49
なければ作ればいいじゃない

867 名前:名前は開発中のものです。 :2006/11/02(木) 17:32:43 ID:diKduz13
>>866
作り方、もしくは作り方を書いているところ教えて。
DirectXのHPとか、PG全般の解説とかは却下w

868 名前:名前は開発中のものです。 :2006/11/02(木) 18:26:23 ID:MbI5+NQI
むしろ、なんで作れないのか聞きたいわ・・・。
ミドルウェアあたりに隠蔽されてるとか?

869 名前:名前は開発中のものです。 :2006/11/02(木) 19:13:06 ID:j7Di0j5Z
>>864は「DirectInput対応のゲーム」のリプレイするツールが欲しいのだろう。
ゲーム作ってるわけじゃないし、
ツール作ってくれというわけですら無い(作んねーけどw。
板違いだシネwwwww

870 名前:名前は開発中のものです。 :2006/11/02(木) 19:27:12 ID:sljvqe49
キーとかは、フックすればいいけど
ジョイスティックは、フックできないんだったな
ぬう

871 名前:名前は開発中のものです。 :2006/11/02(木) 19:29:35 ID:Qouz5BcI
それで金になるのならどこかの外人がドングルでも作ってくれそうだな

872 名前:名前は開発中のものです。 :2006/11/02(木) 19:34:50 ID:l6NE8mv1
DirectInputでジョイスティックの記録取るプログラムなんて簡単に
作れるけど、そんなの記録・再生してもリプレイにはならんよ。
操作情報だけでリプレイを再生するには、最初からゲームの方を
そういう風に作ってないと駄目。

873 名前:名前は開発中のものです。 :2006/11/02(木) 19:39:05 ID:fFdnY76s
教えて君ってなんでこんなに偉そうなんだろうね、どいつもこいつも

874 名前:名前は開発中のものです。 :2006/11/02(木) 19:48:31 ID:pOKzl3XB
他人のことを自動的に回答するBOT程度にしか見てないからだろ

875 名前:名前は開発中のものです。 :2006/11/02(木) 19:56:53 ID:YdcE35F8
教えるほどの技術を持ってない人ばっかりだからね。
結局のところ質問に対して煽りレスしかできない低能君が
一番偉そうにしていてうざいんだよw

876 名前:名前は開発中のものです。 :2006/11/02(木) 20:01:55 ID:Qouz5BcI
>>875
キミが>>864
「DirectInput対応のゲーム等の操作を記録して、後で再生してくれるプログラム」
を紹介すれば済む話だよ

コードじゃなくてバイナリが欲しそうな気がするから、できれば
ソフト板かどこかに誘導してから教えてあげるといいんだが

877 名前:名前は開発中のものです。 :2006/11/02(木) 20:35:05 ID:pOKzl3XB
つーか、誰にも教える義務も義理も無いんだから、
回答が無くても問題解決しなくても、
文句いうのはお門違いどころか図々しいだけなんだけどな。
極端に言えば対価も無しに何かを得ようなど、乞食に等しい。

878 名前:名前は開発中のものです。 :2006/11/02(木) 20:54:53 ID:j7Di0j5Z
いや、ちょっと便利ツール探しにきたら、
「うはww釣堀wwwwwらっきーwwwwwwww」
ってだけだから、相手するのも程々になw

879 名前:名前は開発中のものです。 :2006/11/02(木) 20:55:48 ID:83ucivUk
レスが付くことに絶望するところだろ

880 名前:名前は開発中のものです。 :2006/11/02(木) 22:32:09 ID:px5hsvCI
「教えてやる」っていう高圧的な態度が少なくともあって
質問者=自分より低レベル っていう意識g

このやり取りあと何回見るんだろ・・・

881 名前:名前は開発中のものです。 :2006/11/02(木) 23:08:30 ID:7kYH3ckO
そこそこの技術力があれば2chなぞで技術的な質問なぞしない。
自力で文献なりwebなりあたって試行錯誤すれば解決するからな。
実際質問者のレベルが高いことあったか?

882 名前:名前は開発中のものです。 :2006/11/03(金) 00:01:39 ID:px5hsvCI
知るか
もう来んな

883 名前:名前は開発中のものです。 :2006/11/03(金) 00:26:49 ID:1gPBctES
つうか、>864は質問の仕方が悪い。
回答者にどれだけ知識があろうと必要な情報がなければ判断不能だ。
どういう状況で、お前さんはなにを試して(あるいは知っていて)、どういう結果を期待してるのか、
最低このセットは書かないと、あいまいなレスしかつけようがない。

884 名前:名前は開発中のものです。 :2006/11/03(金) 00:40:28 ID:/1nzuXOf
そんな自明な事を意気揚々と語るなよ
見てるこっちが恥ずかしくなるじゃないか
それじゃ釣られてるのと変わらねーよ
そこまで馬鹿にする奴に説教なんて時間の無駄じゃねーのか

低俗な奴に関わらないと気が済まないのはやっぱり低俗な奴だなwwwwwwww

885 名前:名前は開発中のものです。 :2006/11/03(金) 16:22:50 ID:ivhE0hMW
却下w

何様?

886 名前:名前は開発中のものです。 :2006/11/03(金) 17:08:44 ID:AZI7KT4b
>>885
作り方、もしくは作り方を書いているところ教えて。
DirectXのHPとか、PG全般の解説とかは却下w

887 名前:名前は開発中のものです。 :2006/11/03(金) 17:11:48 ID:ivhE0hMW
>作り方
フックしろ

>書いてるところ教えて
http://www.google.co.jp/
ここのどこかにあった

888 名前:名前は開発中のものです。 :2006/11/06(月) 09:19:16 ID:hPi0h3GZ
描画時の処理が増えて一フレーム描くのにCPU100%でフル回転させてもFPS60いかなくなったんだけど
するとなぜかGetCursorPosでとれるマウスの座標に目立って遅延がでてくるようになってしまった
DI使っても改善しないしどうなってるんだろうかこれは

マビノギでも同じような現象が起こってるけど
HL2とかでは遅れなく視点を動かせるのでメインループの書き方次第なんではないかと思うんだけど…

889 名前:864 :2006/11/06(月) 11:44:40 ID:hv30gwX2
質問に煽りで返して、煽り返されたら顔真っ赤ですか
答える義務がないとか言うなら無視するか、知らないでいいだろ
結局ソフトでは無理ということですな

890 名前:名前は開発中のものです。 :2006/11/06(月) 12:27:48 ID:oOcp7ViM
何も分かってないのに質問してくる奴はたぶん頭がどうかしてる。

891 名前:名前は開発中のものです。 :2006/11/06(月) 12:29:39 ID:clenw2Y6
>>888
1フレーム描画する間にメッセージ処理を1回しかしてないとか。
メッセージループはキューが空になるまで回さないと駄目だよ。

892 名前:名前は開発中のものです。 :2006/11/06(月) 17:08:24 ID:+lyukF9s
>>888
メインループが問題だと思うなら君のメインループを晒したほうがいいんじゃね?
関係ないが俺が会社で支給されたキーボードはゲームで使うと明らかに遅延してる
糞キーボードだったりする。

893 名前:名前は開発中のものです。 :2006/11/06(月) 18:02:51 ID:rMszPwdC
>>864
ネットゲームばっかりやってないで
仕事探せよ

894 名前:名前は開発中のものです。 :2006/11/06(月) 18:31:26 ID:clenw2Y6
864を見てから、DirectInputだけじゃなくてタイマ関係のAPIもフックして
記録しておけば、大抵のゲームはリプレイ撮れそうだなーと考えている
俺ガイル。

895 名前:名前は開発中のものです。 :2006/11/06(月) 18:39:32 ID:hPi0h3GZ
>>891
>>892
for(;;)
{
while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) DispatchMessage(&msg);
render();
d->Present(NULL,NULL,NULL,NULL);
Sleep(0);
}
だいたいこんなかんじです

無意味にSleepを挟んで30FPSくらいにまで落した方が60FPSでてるときよりも
マウスの動きへの追従に関しては良かったり

896 名前:名前は開発中のものです。 :2006/11/06(月) 19:04:42 ID:7IobZSRQ
DispatchMessage だけじゃなくて、TranslateMessage もするのが普通じゃね?

それが原因とは思えないが・・

897 名前:名前は開発中のものです。 :2006/11/06(月) 19:06:31 ID:PBBf0u6D
たとえばWM_PAINT、WM_PAINT、WM_MOUSEMOVEの3つのメッセージが
キューにあった場合、そのループだとマウスを拾うのが
3フレーム後ということになる

898 名前:名前は開発中のものです。 :2006/11/06(月) 19:08:19 ID:PBBf0u6D
うそつくな俺

899 名前:名前は開発中のものです。 :2006/11/06(月) 19:40:52 ID:kJNIWXZq
>>889が完璧に華麗なスルーされてて笑ったw
反応しちゃってごめん、このレスも無視してくれw

900 名前:名前は開発中のものです。 :2006/11/06(月) 19:49:21 ID:7IobZSRQ
>>897
while や for を中括弧で括らないのは
見辛さという面でもメンテナンス面でも問題ありだよな。

901 名前:名前は開発中のものです。 :2006/11/06(月) 20:45:44 ID:YCZtqO2r
PeekMessage
PM_REMOVE

902 名前:名前は開発中のものです。 :2006/11/06(月) 20:59:15 ID:PBBf0u6D
まぁあれだ。結局俺には原因は分からないが、
メッセージループとゲームのメインループは
スレッドを分けた方が良いかもしれないと。

903 名前:名前は開発中のものです。 :2006/11/06(月) 21:14:37 ID:YF9A2o7C
>>895
まさかとは思うけどメインスレッドのプライオリティを高くとかしてたりはしないよね?
あと通常ループでもSleepでOSにCPUリソースは回してやるほうがいい
でもSleep(0)で十分なはずなのでそれでうまくいかないのはちょっと分からん

904 名前:名前は開発中のものです。 :2006/11/06(月) 22:06:31 ID:M5YGVbkM
>>894
処理落ちもコマ落ちも乱数列も全部再現できるならな。

905 名前:名前は開発中のものです。 :2006/11/06(月) 23:18:23 ID:+lyukF9s
>>895
俺の勘違いならいいんだが・・・IDirect3DDevice9::SetCursorPositionとか使ってる?
自力でマウスの座標にスプライト描いてたりするとフレームレートに比例して遅延するわけだが・・・。

906 名前:名前は開発中のものです。 :2006/11/07(火) 01:29:54 ID:NTlv/duM
>>904
乱数の仕組み知らなそうだな…

907 名前:名前は開発中のものです。 :2006/11/07(火) 03:01:33 ID:+YjGlCmW
その発言だけ見ると
>>906は乱数列の初期化の仕組みを知らなそうに見えるのだが

908 名前:名前は開発中のものです。 :2006/11/07(火) 06:03:52 ID:NTlv/duM
タイマをフックして記録時と再生時に同じ値を返すようにしたら
むしろ別の乱数列を生成する方が難しいと思うが。

909 名前:名前は開発中のものです。 :2006/11/07(火) 10:48:06 ID:6WoLvZ3v
>>906
タイマをフックしてただけで乱数の初期化関数に適切なシードを渡せるんだ?
すごいね。

それとも>>894は自作ゲームの話をしてるのかな?
だったら漏れが文盲だ。

910 名前:名前は開発中のものです。 :2006/11/07(火) 12:30:39 ID:injs5fnt
>>907-909
馬鹿か?何もわかってないのはお前等の方。
乱数からその系列のシードが割り出せるとでも思ってんのか?
勘違いも甚だしいぞ。

911 名前:名前は開発中のものです。 :2006/11/07(火) 12:36:51 ID:T6X3CPc6
>>910
タイマーフックして、シードを固定化するって話じゃないの?

912 名前:名前は開発中のものです。 :2006/11/07(火) 12:46:36 ID:fxAXrr+V
複数のスレッドから乱数を共有するようになってたらアウトだと思うんだがそこはどうすんの?


913 名前:名前は開発中のものです。 :2006/11/07(火) 13:54:36 ID:WJeQGxZV
いっそ仮想マシンでも作ってろよ

>>895
マウスを管理するにもCPUパワーは必要だし、その辺のプロセスに実行権を
確実に与えるためにもSleepの引数は1以上にするといいのでは?
特にUSBのマウスやパッドはアプリケーションのCPU使用率が高くなると
遅延が起きやすいとかいう噂があるし(未確認)。

914 名前:名前は開発中のものです。 :2006/11/07(火) 14:03:41 ID:uDTnp1xL
とりあえず、何もしてない状態でもマウスぐるんぐるんまわしてるだけで
3GHzなオレのマシンでも
CPU使用率ふえまくりんぐ

915 名前:名前は開発中のものです。 :2006/11/07(火) 22:02:56 ID:6WoLvZ3v
>>910
皮肉もわからないなら2chなんかに書き込まないほうがいいよw
>乱数からその系列のシードが割り出せる
↑誰もこんな話はしていない。>>864からの流れは完全無視ですか?
DirectInputで入力処理してるらしいプロセスに
外部からフックをかけてリプレイ再現できないかって話だろ。

だとしたら例えば乱数のシードがわかったところで
それをどうやって初期化関数に渡すんだい?
逆アセしてジャンプ先を書き換えるかね?
タイマ関係をフックするのとは全く関係ない話になってくるよな。

916 名前:名前は開発中のものです。 :2006/11/07(火) 23:10:00 ID:0/eivshj
ひょっとして915とかはゲームが起動してからフックすると思っているのかな?
普通はこういうのはWinMainより前の段階でフックを仕込むものだから、
シングルスレッドならあまり心配ないと思うが。

マルチスレッドだと簡単に破綻しそうだけどね。

917 名前:名前は開発中のものです。 :2006/11/07(火) 23:49:29 ID:LeIp7IEU
話が混乱してるね。

メインループの話は、マウス処理とかのフックとは別でしょ?
しかも、>>864 は別アプリのマウス処理をフックしたいって話だから
>>916 はそもそも間違えてる。

918 名前:名前は開発中のものです。 :2006/11/08(水) 00:04:21 ID:PzBEheVj
すいません、ちょっと質問なんですが2chのDirectX関連のスレに書き込むときに無駄に喧嘩腰にならなくなるようなツールって無いでしょうか?
一応自分でぐぐってみたんだけど見つかりません。

919 名前:名前は開発中のものです。 :2006/11/08(水) 00:14:05 ID:pix4d+V7
>>918
みんなの心の中にありますヽ(´ー`)ノ

けんか腰の人はプログラムできない中坊とみなします。

920 名前:名前は開発中のものです。 :2006/11/08(水) 00:15:41 ID:Ez0+ULCi
>>918
教えて君氏ねよ

921 名前:名前は開発中のものです。 :2006/11/08(水) 00:29:44 ID:lruYnhtq
>>917
別アプリのフックの話だよ。
俺はDirectInputはやったことないが、D3Dのフックはいつもやってる。

っていうか、乱数のシードが云々言ってる人は、ゲームの実行中に
いつでも記録/再生ができるような万能リプレイを想像してるんじゃない?

起動する段階から入力を全て記録しておいて再生できるようにするってのは、
俺は自分のプログラムにはデバッグ用に組み込むことが多いよ。
記録/再生モードでは乱数のシード固定、fpsも固定してる。
乱数はタイトル画面の入力待ちのときに回してる。

922 名前:名前は開発中のものです。 :2006/11/08(水) 00:57:06 ID:Cl3R/oTn
アプリケーションがDirectInputから取得する
デバイスの入力データは
IDirectInputDevice8::GetDeviceData又は
IDirectInputDevice8::GetDeviceStateから
得られる配列だろ。
フック云々やろうが、横取りするのは無理じゃね?
あ、イベント使用オンリー?

923 名前:名前は開発中のものです。 :2006/11/08(水) 01:06:22 ID:CiKq08vx
例えそこに完全に同じ値を返せたとしても

内部がマルチスレッドで動いていて
複数のスレッドが乱数生成機を共有して使っていたら(←これ自体どうかと思うが)
どうにもならないって話

924 名前:名前は開発中のものです。 :2006/11/08(水) 01:14:10 ID:lruYnhtq
>>922
APIだろうがCOMだろうが、好きな関数にフックを仕込めるよ。
やり方は自分で勉強してくれ。OSが標準で用意してるわけじゃないから。

>>923
乱数を共有していなくても、ファイル読み込み等を別スレッドでやっていて
メインスレッドが待っている間に画面の更新をしていたりするだけで
厳しいと思う。

925 名前:名前は開発中のものです。 :2006/11/08(水) 01:42:30 ID:Cl3R/oTn
>>924
ラッパーか、なるほど忘れてた

926 名前:名前は開発中のものです。 :2006/11/08(水) 01:54:34 ID:4HOV88nB
インデックスバッファを使うと複数回使われる頂点に対する行列演算が
一回で済むため高速になる。

っていう理解でOKですか?

927 名前:名前は開発中のものです。 :2006/11/08(水) 02:06:40 ID:Cl3R/oTn
>>926
それはドライバ以下実装依存だと思う。
その最適化を行う為には、VertexShader後頂点データを
どっかに保存しとかなきゃならない。
実際のチップは毎度毎度計算の方が速いから、そんなことしないよってパターンじゃないかな?
ってことでIndexBufferのメリットは、重複頂点が無くなってVertexBufferのサイズが減ってウマーの方か

928 名前:名前は開発中のものです。 :2006/11/08(水) 05:15:49 ID:4HOV88nB
ほー、そうなのですか。サンクスです

929 名前:名前は開発中のものです。 :2006/11/08(水) 10:27:55 ID:paxGIPEB
>>927
>GPUはVertexShader後の頂点データを保存しなきゃならない

それが頂点キャッシュだろ。いくらGPUがパイプライン化しやすいからって、
ボーンやら照明計算を含んだ複雑な処理を、キャッシュから拾ってくるより
毎回計算する方が速いってこたぁない。

930 名前:名前は開発中のものです。 :2006/11/08(水) 11:20:58 ID:Ez0+ULCi
>実際のチップは毎度毎度計算の方が速いから
滅茶苦茶を断言で書くなよw

931 名前:名前は開発中のものです。 :2006/11/08(水) 12:28:30 ID:lruYnhtq
頂点キャッシュはかなりサイズが小さいから、キャッシュを意識して
頂点の順番を並べ替えないと、ほとんど恩恵ないよ。
GeForce6で24頂点のFIFOだね。たぶん7も一緒。

932 名前:名前は開発中のものです。 :2006/11/08(水) 14:46:09 ID:jIjbRi6u
その為のStreamOut


933 名前:名前は開発中のものです。 :2006/11/08(水) 22:06:45 ID:RvQZC3kp
てか変換済みの頂点だったらVRAMに置いといて、終わったら消すだけでも十分効果あるだろ。

実際Zバッファやバックバッファは毎フレーム破棄するように作れるし。

934 名前:名前は開発中のものです。 :2006/11/09(木) 06:28:09 ID:dA8KH0sb
DrawIndexedPrimitiveなんかで多数のポリゴンを描画する時、一度のLock/UnLockでメモリコピーすべきですか?
何回もLock/Unlcokするのはいかにも遅そうな気がするんですけども。

935 名前:名前は開発中のものです。 :2006/11/09(木) 06:37:42 ID:EoL+7LTg
一度にコピーできないなら、コピーできる分だけさっさと書き込んで
DrawPrimitiveを呼んで描画を開始させた方が速いと思う。
もちろんLockで処理がブロックしないように、NOOVERWRITEや
DISCARDを適切に使って。

936 名前:名前は開発中のものです。 :2006/11/09(木) 16:17:05 ID:pnXhdXXR
>>934
こんなところで質問してねーで実測しろよ。

937 名前:名前は開発中のものです。 :2006/11/09(木) 17:55:45 ID:X56FVTnt
すみません質問です。
あるモデラからDirectX用に独自形式でデータ(モデルとスキンアニメーション)をエクスポートしているのですが、
そのモデラのZ軸は手前側がプラスなので、奥がプラスになるDirectXで表示すると変になってしまいました。
正常に表示するには、どうすれば良いのでしょう?

938 名前:名前は開発中のものです。 :2006/11/09(木) 19:00:04 ID:lRUVCD7x
>>937
アニメーションまで含んでるなら変換はそれなりに面倒。
長くなりすぎるのでキーワードだけ置いとく。[右手 左手 擬ベクトル]

939 名前:名前は開発中のものです。 :2006/11/09(木) 20:16:11 ID:MOSFB80B
[Z反転、カリング]

940 名前:名前は開発中のものです。 :2006/11/10(金) 01:06:39 ID:BfaFVTZm
[あきらめてオナニー]

941 名前:名前は開発中のものです。 :2006/11/10(金) 20:06:55 ID:hiaIqhZL
テクスチャって全部一枚に収めてuv座標で切り取って貼り付けるのと
ポリゴンごとに一枚ずつ用意するのとどっちが良いんでしょうか?

942 名前:名前は開発中のものです。 :2006/11/10(金) 20:13:56 ID:VWQOMstK
ケースバイケース
だがDirectXで重いからやるなハゲといわれている事を
考えるなら答えは分かっているはずだ。

943 名前:名前は開発中のものです。 :2006/11/12(日) 07:25:35 ID:dfs286Zp
サンプルを手コピーすればdirectXを使えるようになりますか?

944 名前:名前は開発中のものです。 :2006/11/12(日) 08:01:52 ID:pffADuxK
>>943
サンプルを手コピーして動いたのを「DirectXが使えた」と言うならね。

945 名前:名前は開発中のものです。 :2006/11/12(日) 08:33:25 ID:dfs286Zp
やっぱ書籍を買わないとダメか

946 名前:名前は開発中のものです。 :2006/11/12(日) 08:52:14 ID:5TS195Vt
要は理解して応用につなげられるか、だろ

947 名前:名前は開発中のものです。 :2006/11/12(日) 09:40:04 ID:dfs286Zp
>>964あぁ、なるほど、そういうことですか、それならその内身に付く気がするので、まずサンプルをやってみます。みなさん レスありがとうございました

948 名前:名前は開発中のものです。 :2006/11/12(日) 09:40:55 ID:dfs286Zp
>>946 の間違いでつ

949 名前:名前は開発中のものです。 :2006/11/12(日) 09:48:34 ID:p2LxhttU
言い表しようのないキモさを持ったキャラだな

950 名前:名前は開発中のものです。 :2006/11/12(日) 18:14:36 ID:SJJfaFn1
俺はサンプルを手コピーして、
それぞれの処理を表面的かつ自分なりに解釈し、
然るべきタイミングに処理が行われるように再配置し、
足りない処理を色々と付け加えて、
完成したゲームを某所にコッソリ登録したりしているが、
とてもじゃないが恥ずかしくてDirectXを理解しているなんて言えない…

で、サンプルなりチュートリアル見てわからない事があったら書籍買うといいよ。
書籍のほうが判りやすいとは限らないが、
同じ事でも違う方向から見ると、簡単に理解できる事もたまには在る。

951 名前:名前は開発中のものです。 :2006/11/12(日) 19:11:41 ID:CQikaQFF
迷ってるんだったら
本買え
時間を買ってると思えば安い

952 名前:名前は開発中のものです。 :2006/11/12(日) 22:42:19 ID:6dWQ+52S
>>951
そーだよなー俺も最近は悩まないですぐ買う事にしてる。
んで理解できたら速攻ヤフオクとかで売ってる。
古い本とか人気の無い本以外は、定価の5割以上は戻ってくるのでいい感じ。


953 名前:名前は開発中のものです。 :2006/11/15(水) 02:00:13 ID:vxzOfYC6
DrawIndexedPrimitiveで三角形を6000個ぐらい描画する際、
200個ぐらい転送するごとにDrawIndexedPrimitive呼んでいるんですが、
NOOVERWRITEでロックしてもしなくても速度ほとんど代わりませんでした。
これってどこかでやりかた間違ってるってことでしょうか?
それともNOOVERWRITE使っても大して速くならないんですかね?

954 名前:名前は開発中のものです。 :2006/11/15(水) 09:11:02 ID:3I9mMgDp
システムメモリにバッファもってDISCARDで全部転送したらどうなる?
まぁGPUの負荷を正確に調べるのは無理ってMSも言ってるが。


■過去ログ置き場に戻る■ 1- 前250 最新50
DAT2HTML 0.33f Converted.