У меня есть уровень, который нужно визуализировать. Он разбит на сотни подстановок с информацией о том, какой субмеш может видеть, какой субмеш. Каждый уровень имеет пул текстур, которые могут ссылаться на все эти подмастеры. Все подмеши имеют вершины, отсортированные по текстуре. Вот пример.Сортировка подстановок/VBO
Submesh 1
Индекс [1, 3, 4, 5, 6, 2, 7, 8, 10 ...] Текстура 1
Индекс [12, 15, 16, 12, 13 , 19] Текстура 2
Если есть 1000 подстановок и 20 текстур, количество обменов текстурой становится нелепым, даже факторинг в видимости.
У меня есть все мои подпрограммы последовательно в VBO. Я пытался выяснить, как лучше оптимизировать рендеринг и устранить все ненужные текстурные свопы. Если я просто сортирую VBO, я теряю подпольные соединения, и данные видимости становятся бесполезными. Или есть лучший способ сделать это?
Или я должен создать список индексов для каждого кадра на основе видимости или слишком медленно?
Редактировать: Вот разбивка моей текущей настройки.
VBO со всеми вершинами в порядке от субместа 1 текстура 1, подстроить 1 текстуру 2, полностью подавать n, текстуру n.
У меня есть IBO, который является всего лишь индексом для всех ячеек, в том же относительном порядке.
Когда я визуализую, я проконсультируюсь с подпрограммой и присваиваю начальный индекс и счет, которые являются начальным индексом в IBO для этого субтеста и текстуры, а затем счетчиком, который является числом, имеющим эту текстуру.
Именно по этой причине я делаю так много обмена, что действительно замедляет работу.
Есть ли возможность слияния нескольких этих текстур с более крупным? – Aleks
@Aleks Возможно. Я бы предпочел не использовать атлас текстуры, хотя. –
Что значит подделка текстуры? У вас должно быть по крайней мере 32 текстурных блока. – Grimmy