Вибачте, я збирався додати коментар до вашої теми запитання, але виявив, що закінчив занадто багато. Мій досвід розробки є з точки зору DX 11, тому щось із цього може не бути в OpenGL
Місце пам'яті даних, безумовно, відіграє важливу роль. Але є кілька інших пунктів, які грають у це, ширина даних, як ви знаєте. У мене було декілька графічних процесорів, які вражали ефективність роботи на основі певних переломних моментів. Ось, наприклад, на моєму старому AMD r290, якщо я пам'ятаю, ви могли, в основному, передати до 4 float4s до вершинного буфера без додаткових витрат понад 1, але як тільки я розмістив повідомлення> 4, тоді було помітно падіння (у кадрі ставка). Це виключно з мого спогаду, і так найкраще є анекдотичним. Але заперечується, що архітектура GPU постійно змінюється, і які нішеві методи, які дають вам перевагу в роботі сьогодні, можливо, є основою вашої роботи завтра. Я '
Сказавши це, ви задали питання про впорядкування вершин, і, безумовно, це допоможе незначно. Підвищення продуктивності полягає в тому, що ви поєднуєте це з буферами індексів, які потім дозволяють апаратним засобам оптимізувати та кешувати вже обчислені вершини. Ви, звичайно, можете отримати ще більше виграшів від трикутних смуг тощо, які спеціально впорядковані відповідно до ваших думок. Більшість моделей візуалізації, які я роблю, - це оптимізовані на основі індекса / вершини моделі з інстанцією, я використовую невелику кількість оглядів для циклічних ефектів руху (наприклад, гілки дерев), у цих випадках вся гілка дерева шукає однакове значення. Тому кешування можна скористатися і тут.
Все, що я можу сказати в підсумку, це:
- Намагайтеся не переосмислювати оптимізацію на початку, тоді як ваша ще розвиваюча гра / додаток намагайтеся не передчасно оптимізувати. Якщо вам потрібно повернутися і додати нові можливості, ви можете втратити всі зусилля. Можливо, ти маєш мою звичку любити намагатися досягти найкращих показників та прийомів
- Архітектури GPU різноманітні, і сильні сторони однієї можуть відображати слабкі місця в іншій. AMD та Nvidia відомі тим, що розробники розробляють для оптимізації ігор під їх архітектуру, тому кожен має свої переваги / недоліки. Середня дорога розвитку може бути найкращим місцем, не використовуйте жодних функцій на основі постачальників обладнання (думка тут). (додайте до цього, деякі упаковані формати існують лише в AMD).
Це лише кілька думок і переживань, які я мав. Існує багато книг, які вам слід обійтися навколо цих самих тем. Я не бачив, щоб багато хто прописував, що ви пропонуєте, але це не означає, що це неправильно. Удачі.