レンダリングする必要があるレベルがあります。何百ものサブメッシュに分割され、どのサブメッシュがどのサブメッシュを認識できるかに関する情報が含まれています。各レベルには、これらすべてのサブメッシュが参照できるテクスチャのプールがあります。すべてのサブメッシュには、テクスチャ別にソートされた頂点があります。ここに例があります。
サブメッシュ 1
インデックス[1, 3, 4, 5, 6, 2, 7, 8, 10...] テクスチャ 1
インデックス[12, 15, 16, 12, 13, 19] テクスチャ 2
1000 のサブメッシュと 20 のテクスチャが可能な場合、可視性を考慮しても、テクスチャのスワップの量はばかげています。
すべてのサブメッシュを VBO に順番に配置しています。レンダリングを最適化し、不要なテクスチャ スワップをすべて排除する最善の方法を見つけようとしています。VBO をソートすると、サブメッシュ接続が失われ、可視性データが役に立たなくなります。または、それを行うより良い方法はありますか?
または、可視性に基づいてフレームごとにインデックス リストを作成する必要がありますか、それとも遅すぎますか?
編集:これが私の現在のセットアップの内訳です。
サブメッシュ 1 テクスチャ 1、サブメッシュ 1 テクスチャ 2 からサブメッシュ n、テクスチャ n まで、すべての頂点を順番に実行する VBO。
私は、同じ相対的な順序で、すべてのメッシュへのすべてのインデックスである IBO を持っています。
レンダリングするとき、サブメッシュを参照し、そのサブメッシュとテクスチャの IBO の開始インデックスである開始インデックスとカウントを取得し、次にそのテクスチャを持つ数であるカウントを取得します。
これが本質的に、私が非常に多くのスワッピングを行っている理由であり、それが実際に物事を遅くしています。