Размышления о BoundingBox-ах

4,167
68
693
Заметил тут одну вещь: в ваниле разрабы присваивают блокам финализированные BoundingBox-ы.
То есть сперва создают все варианты (даже для забора... их там 16 штук, а уж для лестницы и того больше), и потом просто указывают какой из них использовать в конкретном случае...

Вопрос: что будет более правильным в моём случае?
У меня есть блоки, у которых 70+ вариантов с различными BoundingBox-ами.
В данный момент я просто рассчитываю нужную коробку и создаю её каждый раз.
Имеет ли смысл прописывать все варианты заранее и сильно ли это скажется на производительности.
 
Создание экземпляра класса тоже время занимает. Лучше их один раз создать
 
hohserg написал(а):
Создание экземпляра класса тоже время занимает. Лучше их один раз создать
Код:
AxisAlignedBB.getAABBPool().getAABB(...);

И нет никаких (за редким исключением) аллокаций новых объектов. Если функция, которая считает параметры аабб не супер дорогая - то нет никакого смысла что-либо там оптимизировать.
 
Да, просто вызываешь этот метод вместо конструктора AxisAlignedBB.
Но: тебе ни в коем случае нельзя _сохранять_ этот объект где либо, потому что он принадлежит пулу и вскоре данные в нём изменятся, что может вызвать баги.

И вообще, имхо, тебе всё это нафиг не нужно. Преждевременная оптимизация - зло. Так что я бы просто создавал новый аабб каждый раз, т.к. очень маловероятно что твой участок кода сильно влияет на производительность. Если влияет и ты это точно знаешь - тогда и стоит приступать к оптимизации.
 
Назад
Сверху