- 327 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 07:33:53 ]
- >>321
テクスチャの切り出しなんて文字コードをインデックスにして テーブルからUVを引っ張ってくるだけだろ。 今のCPUのキャッシュ容量なら余裕で全部乗る程度のキャッシュサイズだし、 別にテクスチャ自体を切り出して作るわけじゃないぞ。 「テクスチャの切り替えをする」ということはそのつど「DrawPrimitive」を呼ぶということだ。 昨今のグラフィックカードは細かいデータをたくさん出すようには設計されてないので致命的なほど遅い。 なので可能なら1枚のテクスチャに格納⇒文字全てを1個の頂点バッファに格納⇒DrawPrimitive1回で全ての文字を描画 これが実測でも理論でも最速になる。 DrawPrimitiveの連打に比べたら頂点データの作成やUVテーブルの参照なんてゴミみたいな負荷。 >322 SDKに入ってるドキュメントに書かれてるよ。 >動的な頂点バッファおよびインデックス バッファの使い方 > >理想は頂点データまたはインデックス データがまったく変化しないことですが、これは必ずしも可能ではありません。 >アプリケーションがフレームごとに頂点データまたはインデックス データを変更する場合は多くあり、 >フレームあたり複数回変更することさえあります。 >このような場合は、D3DUSAGE_DYNAMIC を使って頂点バッファまたはインデックス バッファを作成する必要があります。 >この利用法フラグによって Direct3D を頻繁なロック処理用に最適化します。 >D3DUSAGE_DYNAMIC はバッファを頻繁にロックする場合にのみ有用であり、 >変化しないデータは静的な頂点バッファまたはインデックス バッファに格納する必要があります。 テクスチャやサーフェイスの場合だとシステムメモリにコピーをいちいち作れない、 レンダリングターゲットや深度バッファなんかもDEFAULTで作る必要あるけど。
|

|