Всем доброго утра! Такая ситуация. Есть сцена. На сцене установлена камера (игрок свободно может ей управлять в режиме полёта). Вся сцена является окта-деревом. Размер карты 4096x128x4096 единиц, а размер одного листа дерева 32x32x32 единицы. Суть такова, у сцены есть метод addCube(), который добавляет кубик в сцену, а по указанным координатам определяет в какой лист добавить кубик (кстати, тут не как в MineCraft, тут добавляется кубик в любую позицию и под любым углом). Если кубик принадлежит нескольким листам и чтобы его каждый раз не выводить я хз что делать (пока не придумал). В общем каждый кадр вывода я проверяю какие ветки попадают в frustum камеры и потом перебираю те кубики, которые попадают в frustum камеры и их рисую. Но представьте ситуацию, что у меня будет штук 6 листьев 32x32x32 с "полностью" набитыми в них кубиками. При этом размер листьев маленький, а область frusrum'а большая (маленькая выглядит не красиво, ничего не видно) и может получиться так, что все кубики будут охвачены в область видимости камеры и посланы на рендер, но большая их часть будет перекрыта другими кубиками. Как тут можно оптимизировать?
Booster > Можно попробовать Occlusion Culling. А можно по-подробнее что это? Алгоритм работы, ссылки, примеры. Всё что не трудно.
Вот - http://http.developer.nvidia.com/GPUGems/gpugems_ch29.html Но это имеет смысл если объекты довольно сложны, для простых объектов это ничего не даст.