DirectX総合スレ (Part6)
■ このスレッドは過去ログ倉庫に格納されています
0001DirectX6
2006/11/17(金) 00:38:52ID:lRjOsWKq他の言語使ってる奴はいますぐ消えろ
■過去スレ
DirectX総合スレ
Part 1: http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
Part 2: http://pc5.2ch.net/test/read.cgi/gamedev/1095863432/
Part 3: http://pc5.2ch.net/test/read.cgi/gamedev/1105333209/
Part 4: http://pc8.2ch.net/test/read.cgi/gamedev/1132937938/
Part 5: http://pc8.2ch.net/test/read.cgi/gamedev/1157727402/
0793名前は開発中のものです。
2007/04/23(月) 10:39:58ID:0pWNIKTQわざとハードコーディングのサンプルを載せてるものが多いと思うんだが。
とかなんとか書いていたら>>788が1〜2行目で言ってるじゃないかorz
0794名前は開発中のものです。
2007/04/23(月) 12:52:06ID:7FTd6465アメリカのマニュアルみたいに最初に注意書きをいっぱい書いておけば良いんだよ。
生き物は乾燥させられません、説明用にコーディングしているため最適なコードではありませんと。
0795名前は開発中のものです。
2007/04/23(月) 13:49:46ID:J3HGZUDO特に分かりやすくなっていなかった。(だから「無駄に」って書いた)
その本とDirectX SDKのサンプルやMSDNの記事を両方を読んでみて
SDKのサンプルやMSDNの記事の方が分かりやすかったし、役にも立った。
0796名前は開発中のものです。
2007/04/23(月) 14:26:03ID:OWFbmL7a画面小さいといちいち窓切り替えて見比べたりしづらくて、うがー、ってなる
あと暇なとき寝ながらでも読んでいられるし
0797名前は開発中のものです。
2007/04/23(月) 15:00:28ID:tsYZMPWC窓を切り替えたり画面小さくしたり
することに逆に憧れる
0798名前は開発中のものです。
2007/04/23(月) 20:34:58ID:VAXcyTmSゲーム作って実感しましたorz
0799名前は開発中のものです。
2007/04/27(金) 15:48:01ID:n7RHrMRn0800名前は開発中のものです。
2007/04/28(土) 00:58:45ID:Z/Gf1X1D0801名前は開発中のものです。
2007/05/02(水) 14:11:20ID:KXh7uMcrボーンとか仕込むとメッシュが階層構造持つことになるけど、
それぞれのフレームが持つ情報へアクセスする方法はどうやるのが一般的?
自分はいま全フレームへのポインタを一次元配列で確保しといて、
そのポインタを通じてフレーム内情報の読み書きをしてるんだけど。。。
階層構造とか再帰とかあんまり経験無いからどうすればいいのか……。
0802名前は開発中のものです。
2007/05/02(水) 15:23:45ID:AUBROcJlオーバーヘッドが気になるならば
ロード時にフルパス名を作ってそれをキーにしてマップに登録
0803名前は開発中のものです。
2007/05/02(水) 19:23:04ID:KyLZIh1Z基本は1つの頂点バッファで管理。
派生クラスでは体のパーツ(ボーン?)毎に、
頂点バッファ上での範囲を管理していて、
体の中心から変換マトリックスを更新しつつ、
範囲ごとに表示。
ローポリでいくつもりなので、
俺の場合はこんなもん。
0804名前は開発中のものです。
2007/05/04(金) 17:40:46ID:0dDZmDLF普通に動かすと40FPSぐらいですが
Windows Media Player11を起動させておくと
60FPSに跳ね上がります。なんで??
0805名前は開発中のものです。
2007/05/04(金) 17:47:27ID:rCIAddhL0806名前は開発中のものです。
2007/05/04(金) 17:49:11ID:YK9pHZvNタイマーの分解能の設定は?
0807804
2007/05/04(金) 18:15:02ID:0dDZmDLFtimeGetTime()で設定とかはとくにしてないですが
40FPSだと見た目でガタガタになるのがわかるので
おおよその値はあってると思います。
0808名前は開発中のものです。
2007/05/04(金) 18:17:03ID:7nXNmJ5Jいや・・・・・・・・そうではなくて
設定してないなら設定しろと言っていると思われます
0809804
2007/05/04(金) 18:22:57ID:0dDZmDLFはうあ! MediaPlayerを立ち上げなくても速くなりました!
MediaPlayerが共通のタイマーの設定をしてたということでしょうか。
ふしぎふしぎ。ありがとうございました。
0810名前は開発中のものです。
2007/05/04(金) 18:54:44ID:AOCsVjjH0811名前は開発中のものです。
2007/05/04(金) 21:33:47ID:kIqerJ6Iメディアプレーヤーを起動してると速くなる系の質問はかなり頻出
某掲示板で検索してもわんさか出てきた
ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=49&vew=100
様はtime**系の設定はシステムグローバルだってことね
0812名前は開発中のものです。
2007/05/04(金) 22:20:15ID:+fXYp4haもう解決したが、
timeBeginPeriod(1)
timeEndPeriod(1);
だな
0813名前は開発中のものです。
2007/05/04(金) 22:20:59ID:+fXYp4ha0814名前は開発中のものです。
2007/05/05(土) 22:52:08ID:JPwlhljgそういう環境でも、テクスチャサイズを2のべき乗にした方が
スピードアップできるのでしょうか?
0815名前は開発中のものです。
2007/05/05(土) 22:53:55ID:esePaGjw0816名前は開発中のものです。
2007/05/05(土) 23:13:52ID:JPwlhljgしてるだけで、それを2のべき乗に拡大して(余剰分は透明色にする)
生成するルーチンの実装はまだやってないのです。
2のべき乗にした方が速くなると分かれば、そのように実装しますが
そうでないなら無駄な労力を使いたくないという事です。
0817名前は開発中のものです。
2007/05/05(土) 23:16:34ID:WrGZaJEA0818名前は開発中のものです。
2007/05/05(土) 23:24:16ID:DhyAmmhw>>816は別に配布するんじゃなくて自分専用の何かを作るってるんでないの
2の整数乗でないサイズのテクスチャに対応したハードなんて
持ってる人どんだけいるんかね
0819名前は開発中のものです。
2007/05/05(土) 23:39:41ID:7/qHIZUN0820名前は開発中のものです。
2007/05/05(土) 23:45:51ID:JPwlhljg自分のPCのグラはオンボードなので、現代じゃ一般的だと思ったのですが
そうじゃないのですかorz
0821名前は開発中のものです。
2007/05/06(日) 00:01:04ID:Z93//tsUDirectt3Dサーフェイスには幅の他にピッチという概念があるので
テクスチャ作成に関わる部分では、サイズがいくつだろうが変わらないと思う。
フィルタリング(ミップマップ)は2^nサイズだと、最適化ルーチンが使えるので
そっちの方が速そうだ。
テクスチャサンプリングはGPUのリッチさによりけりだな。
0822名前は開発中のものです。
2007/05/06(日) 00:02:33ID:6yYXhBO80823名前は開発中のものです。
2007/05/06(日) 00:03:58ID:8J0PSu8Dテクスチャの表示です
0824名前は開発中のものです。
2007/05/06(日) 00:36:27ID:a/Y3MxCW自分も同じことにはまってました。
なぜか特定のマシンだけ極端にFPSが上がらなくて、VirtualPCを立ち上げると
FPSが高くなってました。
timeBeginPeriod、timeEndPeriodはアプリケーションの開始と終了に書いてましたが、
それを変更したら直りました。
どうもありがとう。
0825名前は開発中のものです。
2007/05/06(日) 12:47:32ID:RU6zDoh8テクスチャの内容なんて影響ないと思うから重要なのはテクスチャのサイズだけじゃないの?
サイズが2のべき乗かそうでないかの違いしかないんじゃない?
だから現状指定数値で実行できるなら
わざと2のべき乗のサイズにしたテクスチャの場合
と
2のべき乗のサイズでないテクスチャの場合
と
で速度を測ってみればいいじゃない
とりあえず表示はちゃんとしてなくても速度だけ測れればいいんでしょ?
ならこれで測れば問題ないんじゃない?
ただ、上の人も言ってるけど何が影響するのか要素が多すぎて
やってみてナンボってところあると思うよ
ミップマップとか、バイリニアフィルターとか、UVのアドレッシングモード、
1フレームでテクスチャ切り替えを頻繁に行ったとき、
1フレームでテクスチャ切り替えを頻繁に行わなかったとき
とかなんかちょっとした条件の変化で速度変わるかもわからんしね
テスト画面作ってるときは影響なかったけどゲーム作ってみたらモリモリ重くなったとかありがち。
ちなみに俺の環境ではたいして違いは無かった
0826名前は開発中のものです。
2007/05/06(日) 20:25:23ID:Ehnv/+IuGF6600以降のグラボは全部自由サイズのテクスチャに対応してる。
ただし範囲外サンプリングはCLAMPに限定され、
ピクセルシェーダー命令が一部使えないけどな。
0827名前は開発中のものです。
2007/05/06(日) 20:58:18ID:rhIxqW9PGF6600は含まれてますか?
0828名前は開発中のものです。
2007/05/06(日) 21:01:14ID:99tSTB5S0829名前は開発中のものです。
2007/05/06(日) 21:10:39ID:brQOxHaj0830名前は開発中のものです。
2007/05/06(日) 21:48:05ID:eoXP2/pR制限があるのはNONPOW2CONDITIONAL
これはGF6600どころか、もっと前から使える。
というのも、この機能の制限をよく考えれば分かるが、POW2テクスチャの
一部を使えば実装できるようになっているので、ドライバが対応すれば
どんなチップでも対応できる。
GeForceは6シリーズから、真のNon-Pow2テクスチャに対応したから
細かい制限は無いよ。(仕様上テクスチャ圧縮は使えないが)
0831名前は開発中のものです。
2007/05/06(日) 22:19:49ID:iZbcH5zM(Yes, No)、(Yes, Yes)、(No, No) の3パターンがあるから注意しないとね。
dxinfoで調べた限りでは、無条件の (No, No) なのはNVIDIAのGeForce6シリーズ以降だけで、
ATIは最新のRADEON X1000シリーズでもいまだに条件付きnon-pow2しか使えないみたい。
http://www.netsphere.jp/dxinfo/
0832名前は開発中のものです。
2007/05/07(月) 10:07:13ID:5DQ2mBLB俺はゲームで使うテクスチャは3D絵はpow2、2D絵は自由サイズにCAMP限定でエンジン組んでる。
non-pow2対応してない場合はpow2のテクスチャに拡大転送してUVは内部で自動再計算。
0833名前は開発中のものです。
2007/05/08(火) 13:27:17ID:RIeDnWhP英語版MSDN
ttp://msdn2.microsoft.com/en-us/library/bb174391.aspx
日本語版MSDN
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/graphics/reference/d3d/interfaces/idirect3ddevice9/getindices.asp
D3D8からD3D9に書き換える上でこの問題にぶつかりました。
D3D8では英語版のものと同じで引数が二つです。
二つ目の引数を取得したいのですが、GetIndicesで取得する方法、もしくは他の関数がありますか?
よろしくお願いします。
0834名前は開発中のものです。
2007/05/08(火) 17:35:02ID:mVBGg0iS0835833
2007/05/08(火) 19:07:00ID:c2lqje6hヘッダの確認もしたのですが、なにぶんあまり知識がないものでよくわからなかったのです。
なのでこちらで質問させていただきました。
BaseVertexIndexの取得についてですが、自己解決しました。
この引数を検索したら、DrawIndexedPrimitiveで使ってますね。
ありがとうございました。
0836名前は開発中のものです。
2007/05/08(火) 23:17:50ID:yEwVRv2d0837名前は開発中のものです。
2007/05/09(水) 10:09:33ID:51Ld+rsF描画速度が思うように速くならずに、非常に困っております。
画面サイズは800×600で、フィールドは32×32の板ポリゴンをタイル状に敷き詰めてます。
その上で動くユニットと小物オブジェクトも全て板ポリゴン(一部ビルボード)です。
それを1フレームごとに
Clear
フィールド描画 = SetTexture()→DrawPrimitiveUp()を各タイルごとに約500回
ユニット&オブジェ描画 = Vertex配列に座標数値を代入して
SetTexture()→DrawPrimitiveUp()を平均500回(500オブジェ分)
Present
と描画してるのですが、当方の環境はP4 1.8GHzでオンボードのグラボですが
せいぜい28FPSまでしか出せません(ポーズ中の描画Onlyのみで)。
たかだか1000個の板ポリゴンを描画するだけでFPS30もいかないものなんでしょうか?
これで本来の内部処理を加えると、20FPSが限界になってしまいます。
1フレームごとに
頂点配列に数値代入(フィールドタイル以外)→SetTexture()→DrawPrimitiveUp()
を板ポリの数だけ繰り返すやり方では駄目なのでしょうか?
0838名前は開発中のものです。
2007/05/09(水) 10:54:03ID:rTpY446L板ポリゴンはなるべくひとつの頂点配列に溜め込み、
テクスチャはなるべく一枚のテクスチャに詰め込み座標ずらしで対処して、
Draw系関数のコールとテクスチャの切り替えを少なくすればそれなりに改善されると思うよ。
まぁ1000回程度ではそこまでガタ落ちしないから、他にも問題抱えてそうだけど・・・。
パフォーマンスまわりの話は文面だけだと話しが拗れがちだから、
こーゆーとこで質問するよりプロファイラの読み方覚えた方が良いかと。
0839名前は開発中のものです。
2007/05/09(水) 14:05:17ID:mwYHV51hステートの変更を減らせとかDraw系関数の呼出回数を減らせとか、
結局そんな一般的なことしかなかなか書けないんだよね
プロファイラの読み方というかプロファイリングについての基本的なことなら、
とりあえずここを最後まで読んでみることをすすめてみる。
http://msdn2.microsoft.com/en-us/library/bb172234.aspx
長いけど、中でやってることは単純
0840名前は開発中のものです。
2007/05/09(水) 14:14:56ID:kPjUjaY4トライアングルセットアップがボトルネックとは限らん
0841名前は開発中のものです。
2007/05/10(木) 23:34:29ID:mOs/ZOHfサーフェイスにレンダリングすることってできますか?
0842名前は開発中のものです。
2007/05/10(木) 23:53:06ID:3Zh/e+WU0843841
2007/05/11(金) 00:17:56ID:XDYeDF5T僕の質問に対する回答でしょうか?
0844名前は開発中のものです。
2007/05/11(金) 00:47:00ID:lpID6sKi0845名前は開発中のものです。
2007/05/11(金) 01:05:36ID:JAYMlBr0厳密に対応してはおりません。
842と844は
"All your base are belong to us"
レベルの英語もどきですね。
0846名前は開発中のものです。
2007/05/11(金) 01:51:06ID:tUcXbWHz0847名前は開発中のものです。
2007/05/11(金) 01:56:20ID:AeMEV9bt842も844もネタだろ?
そのまま「はい」「いいえ」に置き換えたとしても
質問文の内容から考えて意味が通ってないしw
0848名前は開発中のものです。
2007/05/11(金) 02:40:30ID:EKcw+E3Dできません。
0849名前は開発中のものです。
2007/05/11(金) 09:50:20ID:FgQCKaVQできないし、そんなことをするような状況が存在しないだろう。
0850名前は開発中のものです。
2007/05/11(金) 17:53:19ID:MwuPxxrIGPU使った汎用演算で使いたいのかも。
まあ、その場合でも普通のテクスチャ使うか。。。
0851841
2007/05/11(金) 23:05:46ID:XDYeDF5Tありがとうございました
0853名前は開発中のものです。
2007/05/11(金) 23:45:13ID:vswfU1qI>>837の問題に対してまとめたところで意味あるのか?と聞きたい
例えばこの処置で速度が2〜3倍になったとしてもそれでも60FPS多分届かないぐらいなんだぜ
チップを敷き詰めるならロード時にチップ敷き詰めたデカイテクスチャを作ることだってできると思うんだが
こういうゲームではどうなんだろうか?
まあ、ゲームのマップ全体を作れとは言わんがある程度のまとまりで逐次ロードしつつ作れれば
描画時のポリ数に悩まされることはないんじゃないだろうか?
少なくとも俺はDrawPrimitiveにポリゴンをまとめて突っ込むなんてのはなんの解決策にもなってないと思うんだけど?
だってDrawPrimitiveって普通に何回も呼ぶぜw
呼ばなきゃゲーム作れねぇじゃんw
エフェクトによって2度描き3度描きよくやるぜw
やっぱさ、このまとめる形の最適化ってなんかおかしいと思えってw
0854名前は開発中のものです。
2007/05/11(金) 23:54:11ID:otpRAX3c噂を聞いたがどうなったんだ・・・・?
0855名前は開発中のものです。
2007/05/12(土) 00:29:50ID:8iMaV2enいやー、結構効果あると思う。以前おれも同じ状況になったし。
その時はスプライト?(ポリゴンx2の四角形、画面上で32x32ピクセルくらい)
一枚一枚でDraw〜()呼んでたら数百枚で60fps割った。
でもテクスチャが同じスプライトをまとめて、Draw〜()の回数減らしたら
30000枚くらい描画しても60fpsをキープできるようになった。
0856名前は開発中のものです。
2007/05/12(土) 00:57:05ID:8iMaV2enたしかその時は同じ頂点バッファを使いまわしてたんだ。(=頂点4つを数百回反復使用。。。)
1フレーム間に同じバッファで何回もLock → Drawを繰り返したのが悪かった気がする。
だからDraw〜()の回数もあると思うけどバッファのLockにも注意すべきかと。
0857名前は開発中のものです。
2007/05/12(土) 01:02:49ID:Dzr5JW1qおたくのゲームの作り方に関係なく「DrawPrimitive」には
相当のCPU負荷が存在するのは現実世界での事実だ。
だからあの手この手でDrawPrimitiveを減らすための努力や
システムを組むのに時間をかけるんだろう。
そのためだけにわざわざMSが専用APIが実装したり、
GPU Gemsにそれを扱った章が掲載されたりしている。
DirectX10では改善されているが、DirectX9まではそこがボトルネック
なのだからそこをいかに減らすのかもプログラマの腕の1つ。
0858名前は開発中のものです。
2007/05/12(土) 01:08:37ID:gQi1O0td0859名前は開発中のものです。
2007/05/12(土) 01:14:19ID:LW0FYzwBいや、重いのはわったけどさ
劇的に早くはなんねーってことよ。
なんつーの?DrawPrimitiveにまとめて突っ込むとかやりだすようになったら
手法を根本的に変える必要があるときだと思うのよ(まあ、例として>>853つーことで)
例えば、ソートをバブルソートが遅いからってクイックソートに変えて解決する問題って少ないと思うんだよね。
そりゃオーダーが全然違うし、クイックソートの方がはるかにはえーよ。それはわかる。
でも、実用的じゃないでしょ?
そういう話よ。
ゲームに限らずよ、ただ目先の数値につられてホイホイ最適化しちゃうのってまずいと思うぜ。
もう、これやるっきゃねーよ。って状況が意外と少ないと思うのよね。
0860名前は開発中のものです。
2007/05/12(土) 01:47:38ID:rTYk//u9http://goldenstudios.or.id/products/GTGE/
0861名前は開発中のものです。
2007/05/12(土) 02:40:52ID:LW0FYzwB弾幕STGの弾とかやるっきゃないね
ただ、こういうのは俺の中ではええねんw
だってこんなのもともと普通じゃできねぇような量を描画しようとしてるじゃん
しかも、普通だったら全部カメラに入るなんてまずないのに2Dであるために全部描画しなくちゃいけないとか特殊事情
だからこれはどうでもええねん。
できないような量を無理やり動かすんだから大いに最適化してくれって感じじゃん。
魂までもすり減らせって感じだ。
ただ、マップなんかは普通じゃん。
俺がいうところの何を普通っていって何が異常かってのがわからん?
これはオブジェクト単位で普通とかどうとか言ってると思うw
パーティクルやらちょっとまとまった単位でのもんってのは他のやり方があると思うんだよね。
もう、パーティクルなんてやめてアニメーションテクスチャにとっかえちゃうとか、
マップチップも3D空間にもってきたら下地じゃん。これもやりようがあると思うんだよね。
ただ、弾幕STGの弾は弾1つでオブジェクトなんでやりようがないと思うんだよね。
この場合は妙ちくりんなワザ使って最適化する必要があると思うんだよね。
って感じ。
だからやらなきゃいけんところはやらなきゃいけんと思うんだけど
そういうところって少ないと思うんだよね。
ああ、で、やっちゃいけないところをやっちゃうと
今度は身動きとれなくなっちゃうって感じなので(やってることが最適化なので当然だが)あんまりこの
DrawPrimitiveにまとめて突っ込む手法ってのはやる前に別のやり方がないかちょっと考えたほうがいいと思うんだよね。
0862名前は開発中のものです。
2007/05/12(土) 05:31:59ID:s6MTii/R0863名前は開発中のものです。
2007/05/12(土) 06:02:47ID:NH4reycD大抵のものは噛めば噛むほど不味くなる。
それと同じ
0864名前は開発中のものです。
2007/05/12(土) 06:58:58ID:bENb6ppLCPUがネックになってるかGPUがネックになってるかでどっちがいいのかなんて変わるだろ
0865名前は開発中のものです。
2007/05/12(土) 07:04:06ID:jgOYrxmUそんなもんケースバイケースだ、で終わるのに
0866名前は開発中のものです。
2007/05/12(土) 08:51:13ID:LW0FYzwB>ケースバイケース
それだってある程度法則があると思うんだけど
まあ、こんなDrawPrimitiveに全部突っ込むなんてのは稀だよ
0867名前は開発中のものです。
2007/05/12(土) 09:37:22ID:l19wAVj/0868名前は開発中のものです。
2007/05/12(土) 09:48:15ID:Dzr5JW1q何も画面描画を1回のDPで行えなんて無茶は誰も言ってないだろ。
描画数が多くてある程度まとめられるものをまとめようぜ、って話だろ。
背景のマップチップや弾幕STGの弾みたいなものはソートがそれほど重要でもなく
数だけはべらぼうに必要な場合が多いからそういうものはまとめる。
フォント描画のときだって1文字ずつDP呼び出すなんてまずしないだろ。
最近のD3DXFontですらキャッシュするように改良されてるんだから。
GPUがネックの場合はまとめようがまとめまいが処理落ち確定だから意味ないけどな。
GPUがネックなら基本的に数を減らすしかねぇ。
0869名前は開発中のものです。
2007/05/12(土) 09:48:27ID:LW0FYzwB解決策のアプローチの話なんだが・・・
0870名前は開発中のものです。
2007/05/12(土) 09:55:02ID:LW0FYzwB>数だけはべらぼうに必要な場合が多いからそういうものはまとめる
こうかくと1フレームのこういうモデルの描画すべてをまとめようとする奴がいる
あくまでオブジェクト単位でまとめるだけって書いておきたいw
0871名前は開発中のものです。
2007/05/12(土) 10:04:33ID:jgOYrxmU日本語読解力の欠けた俺に
ケースバイケースと程度問題の違いを教えてくれ
なんて不毛な論争なんだろうか
0872名前は開発中のものです。
2007/05/12(土) 10:40:39ID:YCiJgexp「他人の話はどうでもいい、俺様の話を聞け」
0873名前は開発中のものです。
2007/05/12(土) 10:54:26ID:LW0FYzwB横から突っ込むけど明らかに違うだろ、日本語的にも
0874名前は開発中のものです。
2007/05/12(土) 10:58:01ID:tqnBkZXU身の程に合わないほど自意識を肥大化させたオッサンって、
現実では、 実際の待遇>>>自己評価 という状況に必ず直面する。
そうなると、普段抑圧している分、こういう場で
必要以上に自尊心を満たそうとし始める。
メンツに固執し、自分がトップに立つ形で決着がつかないと暴れ始める。
自分が一番でないとアイデンティティが崩壊するから、妥協できない。
相手の意見を認める、見解の違い・表現の違いを容認する柔軟性がなくなる。
そしてネットでも加齢臭をまき散らし、嫌われる。
「匿名の状況下では君の自尊心は何の意味も持たない」
という単純な現実を受け入れてくれればよいのだが。
0875名前は開発中のものです。
2007/05/12(土) 11:12:42ID:LW0FYzwB0876名前は開発中のものです。
2007/05/12(土) 11:37:34ID:cBzS5oT50877名前は開発中のものです。
2007/05/12(土) 12:59:37ID:JD4dohcN相変わらずID:LW0FYzwBは意味不明だな。
>>853
>描画時のポリ数に悩まされることはないんじゃないだろうか?
>>837は少ないポリ数なのに遅くて困ってると書いてるのに
どうしてポリ数削減の最適化をお勧めしてるんだろうか。人の話を全然聞いてない。
仮に>>837が>>853の方法を適用したら、結果としてDPコールも減るから
問題の切り分けができないまま状態が改善してしまうかもしれないよ?
最適化の一般論を語るその口で出てくる具体的なアドバイスが
「目先の数値につられてホイホイ最適化」そのものってのが涙を誘う。
毎回思うんだが、あんた本当に2Dゲーム作ったことないだろ?
0878名前は開発中のものです。
2007/05/12(土) 15:41:09ID:/AE2E85c0879名前は開発中のものです。
2007/05/12(土) 16:45:54ID:LW0FYzwBでも、DrawPrimitiveにまとめて突っ込むだけじゃここまでの速度はでないよね?
また、それで解決するかも怪しいよね?
>>853の方法なら確実でしょ。
その件に関しては文句あるの?
0880名前は開発中のものです。
2007/05/12(土) 18:30:45ID:Dzr5JW1qそのやりかたの場合システムが複雑になる。
別スレッドでリアルタイムに状況判断して新しいテクスチャ作らないといか。
間に合わない場合なども想定して組まなければならないわけだしな。
あと使うかどうかは別として高速スクロールが出来ない。
ポリゴン数には悩まされなくてすむがテクスチャメモリや
テクセルレートに関しての悩みがあることを忘れてもいかん。
だからケースバイケースだというわけで。
0881名前は開発中のものです。
2007/05/12(土) 18:38:13ID:LW0FYzwB>あと使うかどうかは別として高速スクロールが出来ない
いや、できると思うけど俺は
0882名前は開発中のものです。
2007/05/12(土) 22:52:39ID:RM9U51VB0883名前は開発中のものです。
2007/05/12(土) 23:29:53ID:kVzI9kl0やったとこないけどできると思うとか
んな推測をもとに今までグダグダ言ってたのか?
STGスレで「DirectXはスクリーン限定でラスタースクロール可能」等と
胡散臭い主張して突っ込まれてフェードアウトしたロートルがいたが
お前はとてもよく似ている
0884名前は開発中のものです。
2007/05/12(土) 23:32:38ID:kVzI9kl0で、質問者>>837の数値を参考にして
例えば800*600フルカラーのゲーム画面で
フィールド一画面分(27x18のマップチップ)を描くとして
例えば以下の2つの手法を検討したとする
@テクスチャにSetRenderTargetでスクロール分差分更新
A30*20のメッシュのUVをスクロール分だけ差分更新
口先だけでないならこの両者のパフォーマンスを速やかに比較して
速やかに結論が出せるはずだ
0885名前は開発中のものです。
2007/05/12(土) 23:35:32ID:kVzI9kl0画面と同じかそれよりも大きいサイズのテクスチャにフィールドを
描いて、それをフレームバッファに転送とかいう方法
0886名前は開発中のものです。
2007/05/12(土) 23:48:20ID:kVzI9kl0一画面分のマップチップをマテリアル単位でまとめて
DrawPrimitiveする方法だ。比較の便宜上差分更新としてるが
予めフィールド全域分を用意しても構わない。
0887名前は開発中のものです。
2007/05/13(日) 01:29:23ID:1Qws1EBM君、そうやっていつも掲示板で見えない敵と戦ってるの?w
いきなり高速スクロールを適用ことを前提にしてるけど
CDなりDVDなりHDDの容量が許す限りどこまでもいくんだから
環境の制限でもしない限りなんでもできるだろw
スクロールなんて貧乏臭いことしなくても、
市販のゲームのアリガチ演出みたいに背景にムービー流してもいいぜw
別にロード時にテクスチャこさえなくてもすでにこさえたもん保存しておいてもいいわけだし
また、別にスクロールするときにテクスチャを生成しなくちゃいけないなんてのはお前だけの妄想だ
別にあらかじめすべての絵を完成させた状態でもいい
それとこの条件だとお前に振りだぜ、俺は別にチップにこだわらなくていいって考えだし
でかいテクスチャをチップ的な使い方もできるから要はお前のやり方も俺のやり方の中に含まれてしまっている
それと30*20のメッシュとか条件ついてるけど
俺の方法なら4頂点の2ポリでもいいしw
この場合のパフォーマンスは最速だ。
もっと変化がほしけりゃ好きにサイズを変えたらいいし、その場合ゲームによりけりになってしまうな。
0888名前は開発中のものです。
2007/05/13(日) 01:35:05ID:1Qws1EBM昔はメモリが少なかったからできるだけ使いまわしていい絵を完成させようってのが
あったけど今は容量はアフォみたいに増えちゃったけど処理速度はそれにおっつくぐらい
上がってないって状況じゃないの?
0889名前は開発中のものです。
2007/05/13(日) 04:13:16ID:YhPUR9BZ今、"Special Effects Game Programming with DirectX"って本を読んでいるんですが
添付されているCDのDirectXはVersion 8.1です。
ネットで検索すると最新はVersion 9.0cらしいですね。
皆さんならどちらをインストールしますか?
(それらの違いをよくご存知の方が答えてくださると光栄です。)
0890名前は開発中のものです。
2007/05/13(日) 07:37:01ID:SnrZits5マップチップでやるっつーのは質問者の意向だろう
その前提を覆すなら初めからそういっときなよ
苦しくなったからって今更一枚絵でーとか逃げんな
お前の主張
一枚絵でやってもいんじゃね。ローカルメモリに全部読み込むと楽でいいよ
で片付く話。長文でぐだぐだ書かなくていいよ
0891名前は開発中のものです。
2007/05/13(日) 09:34:18ID:qSV8MiStお前まさかマップチップの利点がVRAMの節約だけだと思ってんのか?
すくなくとも画面いっぱいにチップ描画をする程度なら素直にバッファまとめてDPすりゃいい。
1024x768程度の画面を32x32のチップで埋め尽くしても余裕で60FPS出る程度の速度にゃなる。
元のチップを1枚のテクスチャにまとめるというデータ的な最適化は必要だがな。
背景に動画だとかユーザーの入力に反応してスクロールするときとか、
地形が変化するときどうするつもりだよ。
そもそも画質が劣化するしチップごとにアトリビュート持たせるために別のエディター用意すんのか?
0892名前は開発中のものです。
2007/05/13(日) 09:38:17ID:Ll0xyx+i質問者はそこまで想定してんの?
■ このスレッドは過去ログ倉庫に格納されています