Я пытаюсь реализовать граф сцены, и во всех встреченных мной статьях рассказывается о сортировке объектов. Например, вы сортируете свои объекты по «материалу». Теперь, пока я не сел и не начал это реализовывать, я воспринимал это как должное, потому что это имело смысл. Но теперь мне интересно, что на самом деле меняет сортировка?
В моем движке у меня есть менеджер для UBO, я использую его для хранения данных, которые будут использоваться программами, на данный момент, которые включают только время, камеру и проекционные матрицы и источники света (я не беспокоюсь о том, какие источники света влияют какие объекты банкомат).
Теперь для каждой модели мне нужно изменить модель на мировую матричную униформу, сортировка не изменит этого. Значит, переход от изменения этой матрицы к настройке материала для каждого объекта так плох?
Я смутно помню, что где-то читал, что каждый раз, когда вы что-то меняете в конвейере, это должно сбрасываться, и это может вызвать проблемы с производительностью. Но для каждого звонка в любом случае я настраиваю модель на матрицу мира, так какой смысл беспокоиться об этом?
Кстати, есть ли какая-либо информация о том, является ли замена униформы и вызов glBufferSubData более (или менее) дорогой.