Моменталізація покращує продуктивність (значно) під час надання декількох копійок однієї і тієї ж сітки одночасно. Але скільки у неї накладних витрат, коли ви надаєте рівно одну копію за допомогою одного дзвінка? Було б хорошою чи поганою ідеєю використовувати екземпляр для всієї геометрії, що надається двигуном?
Редагувати. Скажімо, ми створюємо гру FPS. Більшість об’єктів мають лише один екземпляр: ніж, пістолет, кулемет, будівля та радіовежа. Але є також деякі об'єкти з декількома екземплярами: дерева (наприклад, 3 види дерев із сотнями екземплярів), трава і так далі ... Що я маю на увазі: замість того, щоб одноосібні об’єкти надавали "традиційний" спосіб та дерева і траву, використовуючи інстанціювання, ми рендеруємо їх усі за допомогою інстанції. Таким чином, наша радіовежа має лише один екземпляр (інформацію про який ми зберігаємо в буфері даних екземпляра), і ми робимо цю вежу, використовуючи якийсь DrawInstanced()
виклик, кількість примірників дорівнює 1
. Те саме з усіма іншими об'єктами (звичайно, дерева і трава мають кілька примірників).
Отже, моє запитання: чи погана ідея малювати один екземпляр об'єкта за допомогою інстанції? Чи має інстанції занадто великі накладні витрати (для пам'яті та продуктивності) чи він якимось чином небажаний для надання об'єктів з одним примірником?