DirectX総合スレ (Part5)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2006/09/08(金) 23:56:42ID:0F5D1JWX他の言語使ってる奴はいますぐ消えろ
0686名前は開発中のものです。
2006/10/11(水) 01:01:45ID:1sECxPrk逆行列は関係ない気がする。
そもそも行列で差分って何につかうんだ?
0687名前は開発中のものです。
2006/10/11(水) 01:02:05ID:xBMfHgNKA・C=B=A にしたいってことか。
難しいな・・・
0688名前は開発中のものです。
2006/10/11(水) 01:23:10ID:U5zzbWGT0689名前は開発中のものです。
2006/10/11(水) 01:36:32ID:RAcYP2kE>>685で正解。
あとは、かける順序に注意。
それから、Aの逆行列が求まらない場合はCは一意とならない。
0690名前は開発中のものです。
2006/10/11(水) 02:41:06ID:UlzNoGLXありがトン!
>Aの逆行列が求まらない場合はCは一意とならない。
はい、それはもう・・・
いや〜たすかりました
0691名前は開発中のものです。
2006/10/11(水) 03:42:19ID:1ONjsgnr「よつんばいになれば免許を返して頂けるですね」の改変に見えた俺はとっとと寝ろ
0692名前は開発中のものです。
2006/10/11(水) 10:18:27ID:v2mXemUL0693名前は開発中のものです。
2006/10/14(土) 01:39:42ID:pah3fq2Sアニメーションの全長(時間)はどうやったら取得できるんでしょうか?
それから、アニメーションを構成するキーフレームがそれぞれ何秒のところにあるのか
を取得したいのですが、そういう手段はあるんでしょうか?
0694名前は開発中のものです。
2006/10/14(土) 07:14:00ID:uIeEv6ahヒント:xファイルに書かれてる
0695名前は開発中のものです。
2006/10/14(土) 13:23:21ID:sQHed/jL0696名前は開発中のものです。
2006/10/14(土) 14:05:43ID:E4qGi0KRメタセコで出来る?
0697名前は開発中のものです。
2006/10/14(土) 15:14:09ID:urG12ahb0698名前は開発中のものです。
2006/10/14(土) 18:08:41ID:y7B7XSErガンダムのビームとかの棒
どうやって描画してるの?
円柱モデルじゃないでそ
ビルボードは、点を中心のやつじゃないとダメだし
ぬう
0699名前は開発中のものです。
2006/10/14(土) 18:41:11ID:urG12ahb0700名前は開発中のものです。
2006/10/14(土) 18:47:28ID:rEq95AFn0701名前は開発中のものです。
2006/10/14(土) 19:46:32ID:5CSzso0u六角柱だけをライトなしの真っ白でレンダしてぼかすんだよ
0702名前は開発中のものです。
2006/10/15(日) 00:49:28ID:5NiZDasq>ビルボードは、点を中心のやつじゃないとダメだし
んなわけない。
0703名前は開発中のものです。
2006/10/15(日) 06:01:12ID:T/ORfnUdGems3に載ってるやつは?
長方形のポリゴンの端に三角形がついてるやつ
0704名前は開発中のものです。
2006/10/15(日) 11:47:05ID:QPC2ckl/「ビームの始点から終点までを結んだベクトル(以下、ビーム・ベクトル)」と
「カメラの位置からビームの端の点1つを結んだベクトル」の外積から
この2つベクトルに直角なベクトルを求める。
そのベクトルとビーム・ベクトルの外積からこの2つベクトルに直角なベクトルを求める。
このベクトルを法線ベクトルとする板ポリを描画するばOK
ただ、カメラの視線ベクトルとビーム・ベクトルが平行に近いと板ポリであることが
はっきりと分かってしまうので、それの対処方法は以下の2つがある。
1つは板ポリの両端に普通のビルボードをくっつける方法(>>703が言っている方法)と、
もう1つはカメラの視線ベクトルとビーム・ベクトルが平行に近いときには普通の
ビルボードに切り替える方法がある。
0705名前は開発中のものです。
2006/10/15(日) 15:50:40ID:ncIQLCOH0706名前は開発中のものです。
2006/10/15(日) 17:38:15ID:lHeBAk5nDirectInputでやる場合やっぱりバッファリングでやった方がいいんですかね?
0707名前は開発中のものです。
2006/10/15(日) 19:20:54ID:nExnDBy10708名前は開発中のものです。
2006/10/15(日) 19:41:13ID:1awBMXDQPollを呼んだときしかデータ取得してないよ。
0709名前は開発中のものです。
2006/10/15(日) 21:18:43ID:lHeBAk5nとりあえず直接取得でやってみます
0710名前は開発中のものです。
2006/10/16(月) 03:58:38ID:4O9ZIClz0711名前は開発中のものです。
2006/10/16(月) 11:47:04ID:akp78//40712名前は開発中のものです。
2006/10/16(月) 11:47:31ID:1DRIsy8R連打は無理だろうが、1/60フレーム風神拳とか入力できる変態はいるよなー
>>706
アクションとか格げーだとバッファリングしたほうが楽なような気がするが。
あとで、リプレイとかつけたくなるかもしれんし。
0713名前は開発中のものです。
2006/10/16(月) 11:55:28ID:idfGKmvCK+G→1フレーム後にG離す
だったな
個人的には最風よりむずい
0714名前は開発中のものです。
2006/10/16(月) 12:33:55ID:dJZ5IjFPVF2でバグでそのコマンドで膝が出てたけど。
>>712
バッファリングだろうと直接データだろうと、入力の履歴は
アプリケーションに組み込むもの。
リプレイ等にDirectInputの設定は関係ないと思うが。
0715名前は開発中のものです。
2006/10/16(月) 12:47:06ID:uxehlBoP十代だろうな
0716名前は開発中のものです。
2006/10/16(月) 14:17:08ID:idfGKmvC今、VF5やってるからVF5って書いてしまっただけ
0717名前は開発中のものです。
2006/10/16(月) 16:54:09ID:cOg4Ko/j入力の履歴を保持する場合って、ボタン毎に数回分の入力時間を保持してればだいたいOKかな?
0718名前は開発中のものです。
2006/10/17(火) 00:01:47ID:Pi/yMn9O最低でも、コマンド受付可能時間×FPS数だけは記憶させないとだめだろ。
すなわち、ファイナルターンパンチ(溜め60秒)×60FPSで記憶域3600個w
0719名前は開発中のものです。
2006/10/17(火) 00:03:50ID:WKs3wEDmちんぽが十代だろうな
0720名前は開発中のものです。
2006/10/17(火) 00:11:33ID:xez2dOmh元気そうでうらやましい… orz
0721名前は開発中のものです。
2006/10/17(火) 00:40:46ID:MdWVn9/c正直な話、ボタンのため分をカウントしていれば、開始から発動までのバッファは要らない
「60秒押していたボタンを離した」と判定する、1フレーム分あればいい
波動拳コマンドの最長受付フレーム数が60フレームの場合なら バッファは60ほしい
これはバッファに入力を保存して、後からコマンドを検査する場合ね
0722名前は開発中のものです。
2006/10/17(火) 01:41:52ID:b/Pd8rNN>>721の実装は利点がよく分からんな。
>>721
> 「60秒押していたボタンを離した」と判定する、1フレーム分あればいい
その考えを押し進めると、
「押下したこと、離したこと、これらの時間間隔を記録すれば十分」ということになる。
だから、タメ時間を保持するためには、バッファの長さは60も要らなくて、2で済む。
最初に押下したときに、記録開始時刻からの時間を記録して、
次に離したときには、押下したときからの時間を記録して、
二度目に押下したときには、前に離したときからの時間を記録して、
……というように記録すればいい。
0723名前は開発中のものです。
2006/10/17(火) 02:35:27ID:39vQ4qdS毎フレーム入力が変化していた場合に、結局は入力受付時間分の
バッファが必要になるという事実。
0724名前は開発中のものです。
2006/10/17(火) 03:45:09ID:b/Pd8rNN0725名前は開発中のものです。
2006/10/17(火) 05:27:56ID:q1fUJa/G0726名前は開発中のものです。
2006/10/17(火) 09:47:10ID:WApPQYbcSNKは、省略コマンドがある 21416→246
0727名前は開発中のものです。
2006/10/17(火) 11:19:02ID:39vQ4qdSそれは省略コマンドじゃなくて、最初から246しか判定してないだけだよ。
むしろ発表されているコマンドが冗長なだけ。
ちなみにスト2のスクリューも斜め入力は必要なくて、4方向だけでいい。
0728名前は開発中のものです。
2006/10/17(火) 12:48:13ID:PzA+Fa3w基本的な常識も知らないでゲームを作りたいとか論外なんだが。
0729名前は開発中のものです。
2006/10/17(火) 12:59:54ID:Un2Q1nYv0730名前は開発中のものです。
2006/10/17(火) 15:35:29ID:ZPE2JhJ0だが、実はCO2が地球温暖化の原因だという証拠は無いんだよ
0731名前は開発中のものです。
2006/10/17(火) 15:55:16ID:HnFFLO9Eメッシュを描画しているのですが
scale=1.0f な時 白→黒な球体が描画されるのですが
scale=10.0fな時 灰色になるんです
何の影響なんでしょうか?
0732名前は開発中のものです。
2006/10/17(火) 16:36:26ID:g8mAqjlUもしくは法線非正規化の影響
0733名前は開発中のものです。
2006/10/17(火) 19:01:46ID:HnFFLO9E拡大の温暖化を防ぐには
SetRenderState( D3DRS_NORMALIZENORMALS, TRUE );
すればいいのね
0734名前は開発中のものです。
2006/10/17(火) 20:02:50ID:pnwQy0ugが正解
0735名前は開発中のものです。
2006/10/19(木) 11:57:34ID:KYn/6wBSおっぱいをデフォメーションさせてたゆんたゆん揺らせるには
メッシュオブジェクトの乳の部分だけを属性バッファで指定して、さらにその頂点バッファにアクセスして
頂点を動かせばいいの?
↑でいいとしても、乳の部分だけの属性バッファを作る方法が分かんない。
ヒント、この辺読め、カス!だけでもいいので教えてください。
0736名前は開発中のものです。
2006/10/19(木) 12:57:59ID:ux0Pyl4uだったら判定するためのデータ埋め込めばいいじゃない
0737名前は開発中のものです。
2006/10/19(木) 14:02:37ID:Rx5m3XDA0738名前は開発中のものです。
2006/10/19(木) 23:40:34ID:jUoY2I1o0739名前は開発中のものです。
2006/10/19(木) 23:53:22ID:5SYTgZVc0740名前は開発中のものです。
2006/10/19(木) 23:59:01ID:6/7GAxoT0741名前は開発中のものです。
2006/10/20(金) 00:03:50ID:CFUBASIq0742名前は開発中のものです。
2006/10/20(金) 03:24:19ID:L3hW3qR30743名前は開発中のものです。
2006/10/20(金) 10:23:26ID:ax2q1ay6座標とか全部メモリにいれて
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いくらなんでもそれはひどい・・・
もっと上手く釣れ。
0747名前は開発中のものです。
2006/10/21(土) 00:15:28ID:HWb3gyzX0748名前は開発中のものです。
2006/10/21(土) 00:54:06ID:0t6G1cyRHDRフォーマット(D3DFMT_A16B16G16R16)のテクスチャをレンダリングターゲットにした場合,
D3DFMT_X8R8G8B8のターゲットに使用していた固定パイプラインの機能を
そのまま使用しても正しく描画できるのでしょうか?
描画前に一時的なターゲットとしてHDRテクスチャを咬ませただけで
アルファブレンディングが上手くできなくなってしまったのですが…….orz
0749名前は開発中のものです。
2006/10/21(土) 01:05:12ID:0t6G1cyR× D3DFMT_A16B16G16R16
○ D3DFMT_A16B16G16R16F
0750名前は開発中のものです。
2006/10/21(土) 01:12:03ID:h4fJ9Plfもっとも意味があるとは思えんが。
0751名前は開発中のものです。
2006/10/21(土) 01:12:46ID:h4fJ9Plf浮動小数点バッファもそもそもフィルタとアルファが使えない。
0752名前は開発中のものです。
2006/10/21(土) 01:35:28ID:uPaMWthYHDRレンダリングするんだったらピクセルシェーダ使うだろ?
だったら問題なしだ。自分で実装したまえ。
0753名前は開発中のものです。
2006/10/21(土) 01:36:21ID:0t6G1cyRスプライト関係のルーチンを書き換えてきます……('A`;)
0754名前は開発中のものです。
2006/10/21(土) 01:40:02ID:uPaMWthYD3DFMT_A16B16G16R16F を使わない、って選択肢はないのか?
そもそも、何のために使おうとしてるんだ??
0755名前は開発中のものです。
2006/10/21(土) 01:53:02ID:0t6G1cyRあとHDR対応だと,いろいろ表現力が広がるみたいだし,
後々のことを考えると,今のうちに使えるようにしておいた方がいいかなと.
0756名前は開発中のものです。
2006/10/21(土) 02:05:17ID:uPaMWthYFLOATバッファ使ったHDRレンダリングは早いと思うよ。
やりたいトーン調整やブルームは、擬似的に再現した方が絶対に楽。
0757名前は開発中のものです。
2006/10/21(土) 02:21:36ID:h4fJ9Plf0758名前は開発中のものです。
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:uPaMWthYHLSLに対応した時点でスプライト関連をまとめるべきだったね。
それは、今からでも全然遅くない。作り直すべき。
0761名前は開発中のものです。
2006/10/21(土) 03:04:52ID:h4fJ9Plf0762名前は開発中のものです。
2006/10/21(土) 03:12:17ID:0t6G1cyRムキー(#`皿´)
書き込み内容が長いと言われるのを恐れただけです.(´・ω・`)
>>760
そうそう,そう思っていま大改装中なのです.
その一環でHDRにも対応させようぜ,と.
>>761
いえ,すごく自分用です.
そのうちネット公開できればいいなとも
0763名前は開発中のものです。
2006/10/21(土) 03:18:21ID:uPaMWthY良いキャラしてるねー面倒みたくなるよ( ´∀`)
HDR対応にするなら、現状ではスプライト処理を廃止(ポリゴンに移行)するか、
簡単なところではスプライトはHDRレンダリング対象外ってことにするとか。
トーンマップ後のバッファに描いたらいいじゃん的な。
0764名前は開発中のものです。
2006/10/21(土) 04:25:01ID:/8+zda2iずっと前から疑問なんですが
デバイスにFVFを設定するのとVERTEXDECLARATIONを設定するのとでは
どういう違いがあってどういう意味があるんでしょうか
0765名前は開発中のものです。
2006/10/21(土) 04:47:59ID:rSfE5baiそれだけ。
0766名前は開発中のものです。
2006/10/21(土) 04:52:13ID:/8+zda2iうっ
0767名前は開発中のものです。
2006/10/21(土) 18:54:08ID:uj+Vqk1i釣りじゃないです><
わからないんです><
違いは、
・Lock/Unlockできるぐらいしかわからん
描画制限があるとか
演算をハードに任せるとかあるんですか?
0768名前は開発中のものです。
2006/10/21(土) 18:56:19ID:uj+Vqk1iうp系ってウンコ?
0769名前は開発中のものです。
2006/10/21(土) 19:03:43ID:h4fJ9Plf初心者スレじゃないんだしリファレンスくらい読もうぜ。
0770名前は開発中のものです。
2006/10/21(土) 19:08:21ID:h4fJ9PlfIDirect3DDevice9::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大して変わらないとか聞いたような
0773名前は開発中のものです。
2006/10/21(土) 20:27:22ID:h4fJ9Plf> Microsoft Direct3D は、呼び出しから戻る前に、そのデータへのアクセスを完了します。
ようするにDrawPrimitive呼ぶ度に内部で頂点バッファにコピーしてるって事だ。
2D/3Dのスプライトのような頻繁に書き換えるものならD3DPOOL_DEFAULTにD3DUSAGE_DYNAMICとD3DUSAGE_WRITEONLYをつけて頂点バッファを作れ。
そうするとAGPメモリに展開されてVRAMデータと同じ速度でレンダリングが行われつつシステムメモリと同じ速度で書き込みできる。
ロック時にD3DLOCK_DISCARDを指定すると、ドライバ内で自動的に新しいバッファを返してくるので、
更新>描画>更新>描画とやっても頂点バッファロック時に描画待ちとか発生せずにアクセスできる。
0774名前は開発中のものです。
2006/10/21(土) 21:52:37ID:eZHe5LjKなにでやってもそんなに速度に差なんてでないと予想。
2Dなんか
「お前、それで3Dモデル作れるぐらいだすつもりなのかと?
何言ってるのか?わかるか?
普通の3Dゲームで3Dモデルのポリ数をワンフレームをこさえたとしても
問題ない速度がでるのに、たかだか2Dゲームで何糞みたいなこと気にしてるのかと?」
問い詰めたくなる。
これが3Dゲームの2D部分だったとしても2Dのポリ数なんぞ
ほとんど影響でないと予想。
ピクセルフィルレートならわかるけどね。
0775名前は開発中のものです。
2006/10/21(土) 22:53:28ID:h4fJ9Plf1,2回程度のDrawPrimitiveで処理するときは数千頂点とかにはなるぞ。
まぁ変換済み頂点だからそもそもバーテックスシェーダーは経由しないけど。
あとDirectX8世代だとUP系の関数は描画完了までブロックしてたってのがある。
DirectX9で内部にバッファ作ってコピーするようになったとかならんかったとか。
まぁ今のDirectXで一番重いのはDrawPrimitive系の関数のコールだから
可能な限りDrawPrimitiveの数は減らせるように作っておいた方がいい。
0776名前は開発中のものです。
2006/10/21(土) 23:16:50ID:NV8LshdxDrawPrimitiveは処理リストに詰めているだけで、実際にそこで処理をされるわけでは無い。
一番重くなるのはPresentをした時。
0777名前は開発中のものです。
2006/10/21(土) 23:22:46ID:h4fJ9Plf確かにDrawPrimitiveはGPUコマンドを作成するだけだが、
Presentをしないという選択肢はありえないんだから
DirectDrawのBltみたいな気軽さでDrawPrimitive系の呼び出しは
やるもんじゃないだろ。
0778名前は開発中のものです。
2006/10/21(土) 23:24:21ID:NV8Lshdx0779名前は開発中のものです。
2006/10/21(土) 23:38:33ID:ayJ9KzQY0780名前は開発中のものです。
2006/10/21(土) 23:46:13ID:ayJ9KzQY0781名前は開発中のものです。
2006/10/21(土) 23:48:22ID:m+1yDL9S少なくともバッチ数によるCPU負荷のコストが尋常でないのは周知の事実だし、
commandBuffer(pushBuffer)のkick開始がPresentのタイミングと決まっているわけではない
(というか、一般的なドライバでは描画コールの度にkickは発生している)。
そもそも負荷のタイミングがどうこういう話ではなく、バッチにはコスト掛かるよってだけの話だし
見当違いも甚だしい
あと、反論があるなら>>778みたいな間抜けな勝利宣言ではない方法がお勧め
0782名前は開発中のものです。
2006/10/22(日) 00:13:37ID:EaoxUskKPresentコールしてから描画してるような言い方は止めてくれ
0783名前は開発中のものです。
2006/10/22(日) 00:47:09ID:6qnIWxGeなんか意地になってどうしなきゃならない的なこという奴いるけど
DrawPrimitiveのコストなんて気にしないほうがいい。
これはDrawPrimitiveのコストがどうのこうのって問題じゃなくて、
まず、「仕様」ありきでしょ?って話。
で、作ってきゃわかるけど、ホントに描画が重くなってるときってこの辺最適化したって
重い動作が快適に変わることってほとんどない。
ぶっちゃけXファイルのポリゴンのオプティマイズ関数ぐらい無駄。
テスト環境だと数字だけ上がって華やかに見えるけど、実際のゲームだとデザイナの作る物が分かれすぎてて
最適化なんてほとんどきかねーから。
これは凝ってるモデルほど最適化が効かなくのはもはや宿命。
で、快適に動くシーンってのは誰がどんな描画方法でやったって大抵はいい速度で動いちまうもんだ。
変なことしないで普通にやりやすい方法で描画しろ。
0784名前は開発中のものです。
2006/10/22(日) 00:50:25ID:68ueZeB5>そうするとAGPメモリに展開されてVRAMデータと同じ速度でレンダリングが行われつつシステムメモリと同じ速度で書き込みできる。
大嘘もいい加減にしろ。
AGPメモリはメインメモリをビデオカード側から見えるようにマッピングするだけで、VRAMと同じ速度なんて持っていない。
ビデオカード側で頂点処理が出来るだけで、データはバスを超えて取りに行かなければならない。
頻繁に書き替えると言っても、その頻度が毎フレームとかいう状態でない限り、逆に遅くなる可能性すらある。
いつからAGPメモリがVRAMと同じ速度を持つようになったんだ?
0785名前は開発中のものです。
2006/10/22(日) 01:09:37ID:5tDaX/OnDrawPrimitiveのコールで足ひっぱりのはGPUじゃなくてCPUなんだが・・・
基本的にGPUで足をひっぱるのはピクセルシェーダーだしな。
>>784
毎フレームデータ更新しないポイントスプライトがあるのかと・・・
何のためのD3DUSAGE_WRITEONLYなのかと。
実際のどこのメモリに配置されるからは完全にドライバ依存だし、
システムへの下りがない前提ならDMAでシステム>VRAMだけですむ様にも最適化されるだろ。
■ このスレッドは過去ログ倉庫に格納されています