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

DirectX総合スレ (Part5)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2006/09/08(金) 23:56:42ID:0F5D1JWX
言語はC++
他の言語使ってる奴はいますぐ消えろ
0719名前は開発中のものです。2006/10/17(火) 00:03:50ID:WKs3wEDm
VF1からの伝統なのにVF5のとか書いてるところを見ると
ちんぽが十代だろうな
0720名前は開発中のものです。2006/10/17(火) 00:11:33ID:xez2dOmh
>>719
元気そうでうらやましい… orz
0721名前は開発中のものです。2006/10/17(火) 00:40:46ID:MdWVn9/c
>最低でも、コマンド受付可能時間×FPS数だけは記憶させないとだめだろ。
正直な話、ボタンのため分をカウントしていれば、開始から発動までのバッファは要らない

「60秒押していたボタンを離した」と判定する、1フレーム分あればいい
波動拳コマンドの最長受付フレーム数が60フレームの場合なら バッファは60ほしい

これはバッファに入力を保存して、後からコマンドを検査する場合ね
0722名前は開発中のものです。2006/10/17(火) 01:41:52ID:b/Pd8rNN
>>718は語尾にwがついてるから冗談として極端な実装の例を挙げたんだろうけど、
>>721の実装は利点がよく分からんな。

>>721
> 「60秒押していたボタンを離した」と判定する、1フレーム分あればいい
その考えを押し進めると、
「押下したこと、離したこと、これらの時間間隔を記録すれば十分」ということになる。
だから、タメ時間を保持するためには、バッファの長さは60も要らなくて、2で済む。

最初に押下したときに、記録開始時刻からの時間を記録して、
次に離したときには、押下したときからの時間を記録して、
二度目に押下したときには、前に離したときからの時間を記録して、
……というように記録すればいい。
0723名前は開発中のものです。2006/10/17(火) 02:35:27ID:39vQ4qdS
入力が変化するまでの時間を記録する方式は、ワーストケースで
毎フレーム入力が変化していた場合に、結局は入力受付時間分の
バッファが必要になるという事実。
0724名前は開発中のものです。2006/10/17(火) 03:45:09ID:b/Pd8rNN
で?
0725名前は開発中のものです。2006/10/17(火) 05:27:56ID:q1fUJa/G
それでどうやってコマンド方式を判断するんだ?
0726名前は開発中のものです。2006/10/17(火) 09:47:10ID:WApPQYbc
カプコンは、ボタンを離したときもコマンド入力調べてる
SNKは、省略コマンドがある 21416→246
0727名前は開発中のものです。2006/10/17(火) 11:19:02ID:39vQ4qdS
>>726
それは省略コマンドじゃなくて、最初から246しか判定してないだけだよ。
むしろ発表されているコマンドが冗長なだけ。

ちなみにスト2のスクリューも斜め入力は必要なくて、4方向だけでいい。
0728名前は開発中のものです。2006/10/17(火) 12:48:13ID:PzA+Fa3w
つーかボタン入力制御も知らないような奴がなんでこんなところにいるんだ?
基本的な常識も知らないでゲームを作りたいとか論外なんだが。
0729名前は開発中のものです。2006/10/17(火) 12:59:54ID:Un2Q1nYv
そうだね、プロテインだね
0730名前は開発中のものです。2006/10/17(火) 15:35:29ID:ZPE2JhJ0
そう、常識だ。いや、常識だと多くの人々が思っている。
だが、実はCO2が地球温暖化の原因だという証拠は無いんだよ
0731名前は開発中のものです。2006/10/17(火) 15:55:16ID:HnFFLO9E
D3DLIGHT_DIRECTIONAL な光源で
メッシュを描画しているのですが
scale=1.0f な時 白→黒な球体が描画されるのですが
scale=10.0fな時 灰色になるんです

何の影響なんでしょうか?
0732名前は開発中のものです。2006/10/17(火) 16:36:26ID:g8mAqjlU
地球温暖化の影響



もしくは法線非正規化の影響
0733名前は開発中のものです。2006/10/17(火) 19:01:46ID:HnFFLO9E
dクス

拡大の温暖化を防ぐには
SetRenderState( D3DRS_NORMALIZENORMALS, TRUE );
すればいいのね

0734名前は開発中のものです。2006/10/17(火) 20:02:50ID:pnwQy0ug
RenderStateSet)TRUE, D3DRS_NORMALIZENORMALS(
が正解
0735名前は開発中のものです。2006/10/19(木) 11:57:34ID:KYn/6wBS
おっぱいスレで質問したけど、答えが返ってこないので、こっちにマルチします。

おっぱいをデフォメーションさせてたゆんたゆん揺らせるには
メッシュオブジェクトの乳の部分だけを属性バッファで指定して、さらにその頂点バッファにアクセスして
頂点を動かせばいいの?

↑でいいとしても、乳の部分だけの属性バッファを作る方法が分かんない。

ヒント、この辺読め、カス!だけでもいいので教えてください。
0736名前は開発中のものです。2006/10/19(木) 12:57:59ID:ux0Pyl4u
X-File?
だったら判定するためのデータ埋め込めばいいじゃない
0737名前は開発中のものです。2006/10/19(木) 14:02:37ID:Rx5m3XDA
人体にチップを埋め込まれる、の間違いだな
0738名前は開発中のものです。2006/10/19(木) 23:40:34ID:jUoY2I1o
モルダー落ち着いてモルダー
0739名前は開発中のものです。2006/10/19(木) 23:53:22ID:5SYTgZVc
モルダー、あなた疲れてるのよ
0740名前は開発中のものです。2006/10/19(木) 23:59:01ID:6/7GAxoT
おしっこモルダー
0741名前は開発中のものです。2006/10/20(金) 00:03:50ID:CFUBASIq
モルダー、あなたマジで疲れてるのよ
0742名前は開発中のものです。2006/10/20(金) 03:24:19ID:L3hW3qR3
美しい河よ、モルダーよー
0743名前は開発中のものです。2006/10/20(金) 10:23:26ID:ax2q1ay6
IndexBufferとVertexBufferの意味って何?

座標とか全部メモリにいれて
DrawIndexPrimitiveとかやればいいじゃん。

制限とか違うの?
0744名前は開発中のものです。2006/10/20(金) 14:14:11ID:/RdCkbLO
>座標とか全部メモリにいれて
>DrawIndexPrimitiveとかやればいいじゃん。

それでいいんだよ。
ちょうてんばっふぁとか
いちいちつくるのめんどうだもんね!
0745名前は開発中のものです。2006/10/20(金) 16:04:45ID:YHKhyEQt
何にでも疑問を持つのは良いことだ
次は自分の人生に意味を求めて自殺だレッツゴー
0746名前は開発中のものです。2006/10/20(金) 22:38:41ID:pRFrOnQi
>743
いくらなんでもそれはひどい・・・
もっと上手く釣れ。
0747名前は開発中のものです。2006/10/21(土) 00:15:28ID:HWb3gyzX
どうせ三途の川でくだらない釣りをしてるだけだろ。ホキでも食ってろ。
0748名前は開発中のものです。2006/10/21(土) 00:54:06ID:0t6G1cyR
質問です.
HDRフォーマット(D3DFMT_A16B16G16R16)のテクスチャをレンダリングターゲットにした場合,
D3DFMT_X8R8G8B8のターゲットに使用していた固定パイプラインの機能を
そのまま使用しても正しく描画できるのでしょうか?

描画前に一時的なターゲットとしてHDRテクスチャを咬ませただけで
アルファブレンディングが上手くできなくなってしまったのですが…….orz
0749名前は開発中のものです。2006/10/21(土) 01:05:12ID:0t6G1cyR
間違えましたorz
× D3DFMT_A16B16G16R16
○ D3DFMT_A16B16G16R16F
0750名前は開発中のものです。2006/10/21(土) 01:12:03ID:h4fJ9Plf
レンダリングは出来るんじゃない?
もっとも意味があるとは思えんが。
0751名前は開発中のものです。2006/10/21(土) 01:12:46ID:h4fJ9Plf
>>748
浮動小数点バッファもそもそもフィルタとアルファが使えない。
0752名前は開発中のものです。2006/10/21(土) 01:35:28ID:uPaMWthY
>>748
HDRレンダリングするんだったらピクセルシェーダ使うだろ?
だったら問題なしだ。自分で実装したまえ。
0753名前は開発中のものです。2006/10/21(土) 01:36:21ID:0t6G1cyR
じゃもうおとなしく描画を全てHLSLとかに移行した方がいいですね.
スプライト関係のルーチンを書き換えてきます……('A`;)
0754名前は開発中のものです。2006/10/21(土) 01:40:02ID:uPaMWthY
待て待て。
D3DFMT_A16B16G16R16F を使わない、って選択肢はないのか?

そもそも、何のために使おうとしてるんだ??
0755名前は開発中のものです。2006/10/21(土) 01:53:02ID:0t6G1cyR
具体的にはトーン調整とかブルームとかが使いたくて.

あとHDR対応だと,いろいろ表現力が広がるみたいだし,
後々のことを考えると,今のうちに使えるようにしておいた方がいいかなと.
0756名前は開発中のものです。2006/10/21(土) 02:05:17ID:uPaMWthY
現時点でHLSLベースで作ってない上にスプライトとか使ってる状態では
FLOATバッファ使ったHDRレンダリングは早いと思うよ。

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

自分もスプライト関係は大昔に書いたコード&機能追加しすぎて超長いので触りたくないのですが…….
0759名前は開発中のものです。2006/10/21(土) 02:53:50ID:m+1yDL9S
確かに長く書くのは億劫だよねー
答えてもらう側の苦労は自分が苦労するわけじゃないからどうでもいいよねー
0760名前は開発中のものです。2006/10/21(土) 02:54:07ID:uPaMWthY
3年間も使い続けてるのはエラいと思う反面、古いプログラムにしがみ付きすぎだとも思う。

HLSLに対応した時点でスプライト関連をまとめるべきだったね。
それは、今からでも全然遅くない。作り直すべき。
0761名前は開発中のものです。2006/10/21(土) 03:04:52ID:h4fJ9Plf
3年も弄ってるって事は仕事で使ってるとか、ネット上で公開してるとかそういう類かしら
0762名前は開発中のものです。2006/10/21(土) 03:12:17ID:0t6G1cyR
>>759
ムキー(#`皿´)
書き込み内容が長いと言われるのを恐れただけです.(´・ω・`)

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

>>761
いえ,すごく自分用です.
そのうちネット公開できればいいなとも
0763名前は開発中のものです。2006/10/21(土) 03:18:21ID:uPaMWthY
>>762
良いキャラしてるねー面倒みたくなるよ( ´∀`)

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

トーンマップ後のバッファに描いたらいいじゃん的な。
0764名前は開発中のものです。2006/10/21(土) 04:25:01ID:/8+zda2i
割り込んでごめんなさいです

ずっと前から疑問なんですが
デバイスにFVFを設定するのとVERTEXDECLARATIONを設定するのとでは
どういう違いがあってどういう意味があるんでしょうか
0765名前は開発中のものです。2006/10/21(土) 04:47:59ID:rSfE5bai
VERTEXDECLARATIONの方がもっと柔軟なフォーマットを指定できる。
それだけ。
0766名前は開発中のものです。2006/10/21(土) 04:52:13ID:/8+zda2i
ありがとうございました

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

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

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

うp系ってウンコ?
0769名前は開発中のものです。2006/10/21(土) 19:03:43ID:h4fJ9Plf
君がウンコな気がする・・・
初心者スレじゃないんだしリファレンスくらい読もうぜ。
0770名前は開発中のものです。2006/10/21(土) 19:08:21ID:h4fJ9Plf
--------------------------------------------------------------------------------
IDirect3DDevice9::DrawPrimitive メソッド
現在のデータ入力ストリーム セットから、指定されたタイプのインデックスなしジオメトリ プリミティブのシーケンスをレンダリングします。


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

IDirect3DDevice9::DrawPrimitiveUP に渡す頂点データは、呼び出しの後も保持する必要はありません。
Microsoft Direct3D は、呼び出しから戻る前に、そのデータへのアクセスを完了します。
0771名前は開発中のものです。2006/10/21(土) 19:17:21ID:uj+Vqk1i
ツンデレを垣間見た
サンクス

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

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

ぬああ
よくわからん
じっくりマニュアル読んでくる
0772名前は開発中のものです。2006/10/21(土) 20:13:47ID:3iLjIQCs
2DだとDrawPrimitiveもDrawPrimitiveUPも
大して変わらないとか聞いたような
0773名前は開発中のものです。2006/10/21(土) 20:27:22ID:h4fJ9Plf
> Direct3DDevice9::DrawPrimitiveUP に渡す頂点データは、呼び出しの後も保持する必要はありません。
> Microsoft Direct3D は、呼び出しから戻る前に、そのデータへのアクセスを完了します。
ようするにDrawPrimitive呼ぶ度に内部で頂点バッファにコピーしてるって事だ。

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

ロック時にD3DLOCK_DISCARDを指定すると、ドライバ内で自動的に新しいバッファを返してくるので、
更新>描画>更新>描画とやっても頂点バッファロック時に描画待ちとか発生せずにアクセスできる。
0774名前は開発中のものです。2006/10/21(土) 21:52:37ID:eZHe5LjK
ぶっちゃけ2Dの頂点数なんてあんまり関係無いと思うよ。
なにでやってもそんなに速度に差なんてでないと予想。

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

これが3Dゲームの2D部分だったとしても2Dのポリ数なんぞ
ほとんど影響でないと予想。
ピクセルフィルレートならわかるけどね。
0775名前は開発中のものです。2006/10/21(土) 22:53:28ID:h4fJ9Plf
2Dでも各種爆発やエフェクト系のテクスチャを1枚にまとめて、
1,2回程度のDrawPrimitiveで処理するときは数千頂点とかにはなるぞ。

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

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

まぁ今のDirectXで一番重いのはDrawPrimitive系の関数のコールだから
可能な限りDrawPrimitiveの数は減らせるように作っておいた方がいい。
0776名前は開発中のものです。2006/10/21(土) 23:16:50ID:NV8Lshdx
また知ったかを。
DrawPrimitiveは処理リストに詰めているだけで、実際にそこで処理をされるわけでは無い。
一番重くなるのはPresentをした時。
0777名前は開発中のものです。2006/10/21(土) 23:22:46ID:h4fJ9Plf
少なくともUP系は結構重いぞ。
確かにDrawPrimitiveはGPUコマンドを作成するだけだが、
Presentをしないという選択肢はありえないんだから
DirectDrawのBltみたいな気軽さでDrawPrimitive系の呼び出しは
やるもんじゃないだろ。
0778名前は開発中のものです。2006/10/21(土) 23:24:21ID:NV8Lshdx
いちいち後出しで恥の上塗りなんかしなくていいよ、みっともない。
0779名前は開発中のものです。2006/10/21(土) 23:38:33ID:ayJ9KzQY
DrawPrimitive佐賀
0780名前は開発中のものです。2006/10/21(土) 23:46:13ID:ayJ9KzQY
一番重いのは俺の体重
0781名前は開発中のものです。2006/10/21(土) 23:48:22ID:m+1yDL9S
知ったかはID:NV8Lshdxの方だと思う(俺はID:h4fJ9Plfではないが)

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

あと、反論があるなら>>778みたいな間抜けな勝利宣言ではない方法がお勧め
0782名前は開発中のものです。2006/10/22(日) 00:13:37ID:EaoxUskK
>一番重くなるのはPresentをした時
Presentコールしてから描画してるような言い方は止めてくれ
0783名前は開発中のものです。2006/10/22(日) 00:47:09ID:6qnIWxGe
あー、うぜ。
なんか意地になってどうしなきゃならない的なこという奴いるけど
DrawPrimitiveのコストなんて気にしないほうがいい。

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

ぶっちゃけXファイルのポリゴンのオプティマイズ関数ぐらい無駄。
テスト環境だと数字だけ上がって華やかに見えるけど、実際のゲームだとデザイナの作る物が分かれすぎてて
最適化なんてほとんどきかねーから。
これは凝ってるモデルほど最適化が効かなくのはもはや宿命。
で、快適に動くシーンってのは誰がどんな描画方法でやったって大抵はいい速度で動いちまうもんだ。
変なことしないで普通にやりやすい方法で描画しろ。
0784名前は開発中のものです。2006/10/22(日) 00:50:25ID:68ueZeB5
>>773
>そうするとAGPメモリに展開されてVRAMデータと同じ速度でレンダリングが行われつつシステムメモリと同じ速度で書き込みできる。
大嘘もいい加減にしろ。
AGPメモリはメインメモリをビデオカード側から見えるようにマッピングするだけで、VRAMと同じ速度なんて持っていない。
ビデオカード側で頂点処理が出来るだけで、データはバスを超えて取りに行かなければならない。
頻繁に書き替えると言っても、その頻度が毎フレームとかいう状態でない限り、逆に遅くなる可能性すらある。

いつからAGPメモリがVRAMと同じ速度を持つようになったんだ?
0785名前は開発中のものです。2006/10/22(日) 01:09:37ID:5tDaX/On
>>783
DrawPrimitiveのコールで足ひっぱりのはGPUじゃなくてCPUなんだが・・・
基本的にGPUで足をひっぱるのはピクセルシェーダーだしな。

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

実際のどこのメモリに配置されるからは完全にドライバ依存だし、
システムへの下りがない前提ならDMAでシステム>VRAMだけですむ様にも最適化されるだろ。
0786名前は開発中のものです。2006/10/22(日) 01:25:06ID:l86FuBMq
>>776
最近のビデオカードだと、Presentですらブロックは発生しないよ。
Presentもキューに入れるだけ。
そのせいで描画に遅延が発生するという別の問題が発生している。

アクション性の高いゲームだと、その遅延が問題になるから
わざわざブロックが発生するようにLock入れたりしている。
(その方法はMSは推奨していないが)
0787名前は開発中のものです。2006/10/22(日) 01:38:56ID:EaoxUskK
データがおかしいと
GeForceが表示しなくて
RADEONが無理やり実行するって聞いた。

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

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

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

>>763
爆発エフェクトとかに対してごちゃごちゃやってみたいので,
なんとか3Dスプライト?も使いたいのです.
0790名前は開発中のものです。2006/10/22(日) 04:56:12ID:ic1Mev2+
>>789
頑張ってますね〜

HDRバッファもテクスチャとしてHLSLに渡したら参照可能かな?
0791名前は開発中のものです。2006/10/22(日) 05:21:33ID:EcAvnWP5
>>790
自分もその方法でやってみたんですけど最終的にカラー合成するとき,
HDRターゲットテクスチャ側のピクセルカラーを取ってくるのにtex2D()を使ったのですが,
座標指定が必要になるので,ピクセルシェーダの入力にVPOSを入れたのですが,
このVPOSというセマンティックはps_3_0以降でないとサポートされないようなのです.
0792名前は開発中のものです。2006/10/22(日) 07:31:43ID:l86FuBMq
>>791
普通にテクスチャ座標で指定するだけでは?
Direct3D使って2Dエフェクト実装したことないの?
0793名前は開発中のものです。2006/10/22(日) 08:32:51ID: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処理をされる必要はないんだし。
0794名前は開発中のものです。2006/10/22(日) 08:47:57ID:l86FuBMq
>>793
Presentを一切実行しないDirect3Dプログラムというのも有り得る。
EndSceneの間違いなら分かるが。
0795名前は開発中のものです。2006/10/22(日) 09:01:21ID:5tDaX/On
あぁそうか画面に描画しねーならPresentはいらねーな。
そもそもDrawPrimitiveしないならBegin-Endもいらんか。

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

まぁこのへんも全部ドライバ依存だから一律決まってるわけでもないが・・・。
0796名前は開発中のものです。2006/10/22(日) 09:37:22ID:EcAvnWP5
>>792
HLSLは正直あんまり使ったことないです.(´・ω・`)
どういう風に実装するものなんでしょ?

>>793
ふむむ,やっぱりエフェクト類は分離させた方が早いですか.
とりあえず動く状態にしたいのでそれでいってみます.
0797名前は開発中のものです。2006/10/22(日) 12:54:52ID:ic1Mev2+
>>791
描画座標をテクスチャ座標に変換してピクセルシェーダに渡すだけだよー
(テクスチャサイズか変換マトリクスをHLSLに渡す必要がある)
頂点シェーダの入力はテクスチャ座標1つでも、ピクセルシェーダは2つとか可能だからね。

基本的に、頂点シェーダが持つ特殊なデータを渡したい時はテクスチャ座標を使います。
0798名前は開発中のものです。2006/10/22(日) 13:11:03ID:ic1Mev2+
> 2.トーンマップなどのHDR処理
> 3.HDR-RTからLDR-RTへのフォーマット変換転送
>    StretchRect()

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

っつーか、その案はすでに出してるんだけど。
0799名前は開発中のものです。2006/10/22(日) 13:40:07ID:l86FuBMq
GPGPUなんかはPresentしないね。
0800名前は開発中のものです。2006/10/22(日) 13:54:46ID:hF59/NZX
ID:NV8Lshdxの再登場はまだ?
それとも既にいるなら名乗ってくれよー
0801名前は開発中のものです。2006/10/22(日) 13:57:03ID:76l0BiyE
AfterEffectモドキのエフェクトアニメーション作成ツールを作ったときもPresentは使わなかった。
バックバッファをD3DXSaveSurfaceToFileで取り出してAVIにエクスポートするだけだったんで。
0802名前は開発中のものです。2006/10/22(日) 14:09:11ID:hF59/NZX
>>801
つまりPresentが要らない分、超爆速ってことだね!
なんてったって「一番重たくなる」Presentが要らないんだもんね!

という戯言はともかくとして
処理は別スレッドで行って、なんか適当に「エクスポート中です」とかアニメーションさせた
画面出しておいた方がツール使う人の不安ちょっと解消されるかもね
使う人がプログラマだったらそんなんむしろ邪魔だろうけどデザイナプランナが使うんならって話ね
0803名前は開発中のものです。2006/10/22(日) 19:57:45ID:l86FuBMq
>>802
801のツールが何も画面に表示してないとは書いてないし、
その表示にPresentいらないし。GDIで十分。
0804名前は開発中のものです。2006/10/22(日) 22:07:46ID:EaoxUskK
GDIは、3Dやってくれん
0805名前は開発中のものです。2006/10/23(月) 00:01:56ID:qi743vUp
3Dは別に必要ないんじゃないかと思うが
0806名前は開発中のものです。2006/10/23(月) 13:14:35ID:6CPwqHL/
GDIだと
いろんなブレンドが面倒だろ
0807名前は開発中のものです。2006/10/23(月) 13:55:20ID:XYoLA6BQ
そこでMMXが満を持して登場
0808名前は開発中のものです。2006/10/23(月) 14:03:27ID:6CPwqHL/
5年ぐらい前のコードをまた書けと
0809名前は開発中のものです。2006/10/23(月) 14:20:12ID:AlorIxAy
802の言う程度の描画ならGDIで十分、という話だと思う。
で、Presentはいらない場合もあるね、ってことだろう。
もはやなんの話だったかおぼえてないけど。
0810名前は開発中のものです。2006/10/23(月) 14:24:28ID:XYoLA6BQ
Presentが一番処理が重いんだ!とおっしゃった方が発端かと。
0811名前は開発中のものです。2006/10/23(月) 16:24:59ID:Z6chIrR/
普通に時間計ったらPresentが一番重くなるんじゃないの?描画待ちで。

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

そもそも描画が完了してる状況ならさして重くないんだし。
0813名前は開発中のものです。2006/10/23(月) 17:28:47ID:6CPwqHL/
Presentの前に通常処理をすればいいじゃない
0814名前は開発中のものです。2006/10/23(月) 17:54:32ID:6CPwqHL/
佐賀
0815名前は開発中のものです。2006/10/23(月) 19:25:37ID:jKlaZ7Jm
>>811
ほっとけ。
相手にしてもしょうがない。
0816名前は開発中のものです。2006/10/23(月) 19:37:27ID:6CPwqHL/
誰か
GeForceとRADEONの違いについて語って
0817名前は開発中のものです。2006/10/23(月) 21:30:48ID:ciin62ac
>>811
お前さんはとんでもない勘違いをしている。
Presentをしないプログラムも有り得るという話は、Presentが
重いという話の流れではなく>>777に対するレス。
0818名前は開発中のものです。2006/10/23(月) 22:21:08ID:Z6chIrR/
>>777 はある程度内部処理を想像できてるから、
UP系と非UP系+Presentとを比較した発言をしてるよね?

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

「Presentしないこともあるけどね」程度で終わればいいが
そっちの話にばかり移ってるのがおかしいんだよ。
■ このスレッドは過去ログ倉庫に格納されています