RBG、RBGA、ALPHA などのさまざまなフォーマットがあり、テクスチャをロードするには GL_UNPACK_ALIGNMENT を 1 から 4 の間で変更する必要があります。これはキャッシュする価値がありますか? 変数「アライメント」を持ち、状態が異なる場合にのみ glPixelStorei を呼び出すと、常に glPixelStorei を呼び出すとします。
テクスチャの切り替えと同じ考え方です。
RBG、RBGA、ALPHA などのさまざまなフォーマットがあり、テクスチャをロードするには GL_UNPACK_ALIGNMENT を 1 から 4 の間で変更する必要があります。これはキャッシュする価値がありますか? 変数「アライメント」を持ち、状態が異なる場合にのみ glPixelStorei を呼び出すと、常に glPixelStorei を呼び出すとします。
テクスチャの切り替えと同じ考え方です。
さて、これを考えてみましょう。
あなたが変わるたびGL_PACK_ALIGNMENT
に、あなたもまた電話しようとしていますglTexSubImage
。この関数は、せいぜい、クライアント メモリから OpenGL の内部テクスチャ メモリへの DMA 操作を引き起こすだけです。PBO を使用していない場合、DMA を実行するには、関数がそのクライアント メモリを内部ストレージにコピーする必要があることも意味します。また、PBO を使用している場合でも、そのメモリへのコピー操作を実行する必要があります。
正直に言って、パック アライメントの状態を変更することは、直後に行う操作の次にパフォーマンス面で何か意味があると思いますか? グリフのビットマップを計算したり、ビットマップ データをテクスチャにアップロードしたりする方が、その状態を変更するよりも速いと思いますか?
ご心配なく。