Эффективное рисование малополигонального мира

Тема в разделе "WASM.GRAPHICS", создана пользователем s3dworld, 16 ноя 2011.

  1. s3dworld

    s3dworld Сергей

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    387
    Адрес:
    Ртищево
    Всем доброго утра!

    Такая ситуация. Есть сцена. На сцене установлена камера (игрок свободно может ей управлять в режиме полёта). Вся сцена является окта-деревом. Размер карты 4096x128x4096 единиц, а размер одного листа дерева 32x32x32 единицы. Суть такова, у сцены есть метод addCube(), который добавляет кубик в сцену, а по указанным координатам определяет в какой лист добавить кубик (кстати, тут не как в MineCraft, тут добавляется кубик в любую позицию и под любым углом). Если кубик принадлежит нескольким листам и чтобы его каждый раз не выводить я хз что делать (пока не придумал). В общем каждый кадр вывода я проверяю какие ветки попадают в frustum камеры и потом перебираю те кубики, которые попадают в frustum камеры и их рисую. Но представьте ситуацию, что у меня будет штук 6 листьев 32x32x32 с "полностью" набитыми в них кубиками. При этом размер листьев маленький, а область frusrum'а большая (маленькая выглядит не красиво, ничего не видно) и может получиться так, что все кубики будут охвачены в область видимости камеры и посланы на рендер, но большая их часть будет перекрыта другими кубиками. Как тут можно оптимизировать?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Можно попробовать Occlusion Culling.
     
  3. s3dworld

    s3dworld Сергей

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    387
    Адрес:
    Ртищево
    Booster
    > Можно попробовать Occlusion Culling.
    А можно по-подробнее что это? Алгоритм работы, ссылки, примеры. Всё что не трудно.
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Вот - http://http.developer.nvidia.com/GPUGems/gpugems_ch29.html
    Но это имеет смысл если объекты довольно сложны, для простых объектов это ничего не даст.