- ゲームプログラムなら俺に聞け30
956 :デフォルトの名無しさん[sage]:2015/01/30(金) 13:21:55.59 ID:qRuThex8 - >>954
まずフィルレートの限界と言うのがある 画面に入っていないピクセルや裏面、Zバッファで他の物より後ろにある物はカリングされて描画されないがそれ以外は全て描画される TBDRだとまた違うけど D3D11だとポイントスプライトを描画するのにも様々な方法があるようだが、どれを使って描画した? http://blogs.msdn.com/b/ivanne/archive/2012/01/04/multiple-ways-to-render-point-sprites-in-dx11.aspx このケースだとジオメトリシェーダーは使わない方が良いと書いてある
|
- ゲームプログラムなら俺に聞け30
959 :デフォルトの名無しさん[sage]:2015/01/30(金) 13:42:07.48 ID:qRuThex8 - 頂点データにしても視錐体カリングやオクルージョンカリングで全てが頂点シェーダに入るわけじゃないのに
数百万って正しいのか Corei7、GT740M搭載のノート、WebGLで2Dのオブジェクト(32x32)をCPU側で毎フレーム動かしつつ描画するベンチマークでは32,000個ぐらいが限界 CPUのクロック周波数が可変だからか複数回やるとこれより高かったり低かったりする ジオメトリシェーダーは無いので、頂点バッファに沢山の矩形を詰め込んで描画する方式 インスタンシングも使わず、頂点の移動・回転・拡大縮小をCPU側かつシングルスレッドで行っているのでそこを変えられればもっと速くなるはず 2DだからZバッファは無し
|
- ゲームプログラムなら俺に聞け30
960 :デフォルトの名無しさん[sage]:2015/01/30(金) 14:18:32.50 ID:qRuThex8 - ノートのローエンドGPUで3万個超えても何とか60fps維持できるだから
>>957のPCなら4万行けるんじゃないのか PCだとフィルレート限界等に達する前にCPUとGPUの同期がボトルネックになっている感 自分のプログラムではglDrawElementsを出来るだけ少ない回数にまとめる事でボトルネックを少なくしている D3DだとDrawIndexedPrimitiveか WebGLだとハードウェア頂点バッファを使わずに描画するのは不可能(多分) なので使っている 他にそんな特別な事はしていない
|