Слайд 2Основные темы
Что такое уровень детализации
Статические и динамические методы
Видозависимость
Реализация
По
материалам учебного курса при конфереренции
ACM SIGGRAPH 2001
Слайд 3 Мотивация
Очень важен интерактивный рендеринг геометрических данных большого объема
Научная и медицинская визуализация
CAD
Симуляторы
Игры
Слайд 4Мотивация: большие модели
Проблема
Полигональные модели часто слишком сложны для интерактивной визуализации
Более того, чем
быстрее становится «железо» тем больше становятся модели.
Слайд 5Пример модели
10 миллионов треугольников
Слайд 6Пример модели
80 миллионов треугольников
Слайд 7Уровень детализации:
Основная идея
Возможное решение:
Упрощение геометрии малых или удаленных объектов
Известно как Level
of Detail (LOD)
Так же известно как polygonal simplification, geometric simplification, mesh reduction, multiresolution modeling,…
Слайд 8Уровень детализации: традиционный подход
Создание уровней детализации объектов (LODs)
Слайд 9Уровень детализации: традиционный подход
Более удаленные объекты используют более грубые уровни детализации
Слайд 10Традиционные подход: статический LOD
Традиционный подход:
Во время препроцессинга создается отдельный LOD для каждого
объекта
Во время визуализации для каждого объекта выбирается один из уровней детализации в зависимости от расстояния до объекта.
Уровни создаются на этапе препроцессинга и имеют фиксированное разрешение. Такой подход называется статический LOD
Слайд 11Преимущества статического LOD
Легко программируется
Создание и визуализация разделены
Создание LODов не учитывает ограничений интерактивной
визуализации
От визуализации требуется только выбрать нужный LOD
Слайд 12Преимущества статического LOD
Позволяет на полную использовать аппаратное ускорение
Статические LODы можно легко упаковать
в дисплейные списки, вершинные массивы, страйпы и т.д.
Это позволяет намного ускорить визуализацию, т.к. такие структуры рисуются на современной аппаратуре в 3-5 раз быстрее чем неорганизованные полигоны
Слайд 13Недостатки статического LOD
Вопрос: Почему же возникает необходимость использовать что-то кроме статического LOD?
Ответ:
Потому что иногда статический LOD не подходит для радикального упрощения геометрии
Например:
Ландшафты
Трехмерные изоповерхности
Данные с трехмерных дистанционных сканеров
Сложные CAD-модели
Слайд 14Радикальное упрощение
Для радикального упрощения геометрии:
сложные объекты должны быть разбиты на простые
простые –
скомбинированы
Это очень сложно или невозможно при статическом подходе
Так что же можно сделать?
Слайд 15Динамический уровень детализации
Отличие от традиционного подхода:
Статический LOD: создание уровней заранее перед визуализацией
Динамический
LOD: создание структуры данных, из которой геометрия с нужной детализацией может быть извлечена в реальном времени во время визуализации.
Слайд 16Динамический уровень детализации: преимущества
Данный уровень детализации определяется точно, а не выбирается из
заранее полученного набора LODов.
Следовательно, объекты используют не больше полигонов чем необходимо
Более эффективное использование ресурсов
Слайд 17Динамический уровень детализации: преимущества
Более плавная визуализация
Переключение между статическими LODами может привести к
эффекту «перепрыгивания»
Динамические LOD позволяют плавно изменять уровень разбиения, устраняя этот эффект
Слайд 18Динамический уровень детализации: преимущества
Поддерживает прогрессивную передачу
Поддерживает видозависимые (view-dependent) LOD
Можно использовать текущие параметры
виртуальной камеры для определения лучшего представления для данного вида.
Слайд 19Видозависимый LOD:
варианты применения
Видозависимость используется для того, чтобы
Показывать близкие часть объекта с
большей точностью, чем удаленные
Показывать границы объекта или наиболее интересные части с большей точностью
Показывать больше деталей там, куда смотрит пользователь и меньше в области периферического зрения
Слайд 20Динамический уровень детализации: пример
Слайд 21Иерархический LOD
Видозависимые LOD могут решить проблему с большими объектами
Иерархические LOD решают проблему
маленьких объектов
Разделение объектов на составляющие
На достаточном расстоянии упрощение составляющих, а не объектов
Иерархический LOD подразумевает алгоритмы , модифицирующие топологию объекта
Слайд 22 Иерархический LOD
Очень хорошо взаимодействует с видозависимым LOD.
Можно рассматривать всю сцену как
один объект и упрощать его видозависимым способом.
Иерархический LOD также может использоваться в паре с традиционным
Слайд 23Алгоритмы видозависимых LOD
Разработано достаточно много хороших алгоритмов видозависимых LOD
Далее для примера будет
рассмотрен алгоритм VDS (View-Dependent simplification)
Слайд 24Обзор метода VDS
Обзор метода VDS:
На эпапе препроцессинга строится дерево вершин - иерархическая
кластеризация вершин данной полигональной сетки
Во время рисования кластеры разворачиваются и сворачиваются в зависимости от положения виртуальной камеры
Кластеры, которые становятся слишком маленькими, сворачиваются, уменьшая общее число треугольников
Слайд 25Структуры данных
Дерево вершин
Содержит всю модель
Представляет иерархию всех вершин
Используется на каждом кадре для
обновления
Список активных треугольников
Представляет текущее упрощение
Содержит список треугольников для рисования
Треугольники добавляются или удаляется в результате операций с деревом вершин.
Слайд 26Дерево вершин
С каждым узлом дерева ассоциировано подмножество вершин модели
С каждым листовые узлом
ассоциирована вершина из оригинальной модели
С каждым промежуточным узлом ассоциировано множество вершин, ассоциированных с каждым из его потомков.
Каждому узлу также присваивается представляющая его вершина, или заместитель (proxy)
Слайд 27Дерево вершин:
сворачивание и разворачивание
Сворачивание узла дерева заменяет ассоциированные с ним вершины
на вершину-заместитель
Разворачивание узла заменяет заместитель на ассоциированные вершины
Слайд 31Дерево вершин: livetris и subtris
2 категории треугольников
Слайд 32Дерево вершин: livetris и subtris
Ключевое наблюдение:
Для каждого узла дерева subtris может быть
вычислено заранее
Для каждого узла дерева livetris можно поддерживать в реальном времени.
Слайд 33Видозависимое упрощение
Может быть использован любой интерактивный критерий сворачивания узла.
Примеры видозависимых критериев упрощения
Размер
в экранных координатах
Сохранение силуэта
Поддержание фиксированного суммарного числа треугольников (бюджет треугольников)
Критерии, основанные на человеческом восприятии изображения
Временные критерии
Слайд 34Оптимизация
Методы оптимизации
Асинхронное упрощение сетки
Распараллеливание алгоритма
Использование пространственной связности
За малый промежуток времени сцена меняется
мало
Поддержание связанной геометрии в памяти
Оптимизация для аппаратных ускорителей
Слайд 36Проблема: искажение сетки (mesh foldovers)
Слайд 37Проблема: искажение сетки (mesh foldovers)
Слайд 38Видозависимый LOD vs. Статического LOD
Видозависимый LOD предпочтительнее, когда
Модели содержат большое число небольших
объектов (напр. ландшафт)
Упрощение должно выполняться автоматически (напр. CAD)
Необходима гибкая система видозависимых критериев упрощения сетки
Слайд 39Видозависимый LOD vs. Статического LOD
Статический LOD является лучшим выбором, так как обладает
свойствами
Простая для реализации модель
Малая загрузка CPU
Проще использовать аппаратуру
Слайд 40Видозависимый LOD vs. Статического LOD
Приложения, которые используют
Статический LOD
Видеоигры
Симуляторы
Видозависимый LOD
Инструменты CAD
Научные и медицинские
приложения
Виртуальные музеи