- детализация ландшафта
- Детализация ландшафта — Landscape detailing
- Уровень детализации (компьютерная графика) — Level of detail (computer graphics)
- Содержание
- Историческая справка
- Хорошо известные подходы
- Подробная информация о дискретном уровне детализации
- Пример дискретного уровня детализации
- Иерархический LOD
- Практическое применение
- Видео игры
- В ГИС и 3D моделировании городов
детализация ландшафта
Во многих источниках говорится что размер ландшафта типа 64х64, 128х128Б 256х256 точек и т.д, одним словом степень двойки. при детализации ландшафта, допустим соединяю не соседние точки, а через одну. тогда последний ряд точек оказывается лишним.
Допустим сетка 4х4, когда максимальная детализация — соединяю соединяю соседние точки(рисую треугольники через соседние точки), а если детализация не максимальная — соединяю через одну точку, то получается что четвертая точка выпадает: беру первую точку, соединяю с третьей, а третью точку уже не с кем соединять, т.е. надо взять сетку 5х5, тогда первая точка соед с третьей а третья с пятой.
Но сетка 5х5 это не степень двойки, и похоже расходится с расспространненым мнением о размерности, что не есть хорошо.
Вопрос, что я нелаю не так?
Сетка 4х4, вершин 5х5, всё верно. Вроде все так и делают.
Все верно. Степень двойки имеет совсем небольшое отношение к ландшафтам 🙂
Если так заботишься о размерности, кеше и прочих вещах может дополнять «пустыми» (невидимыми, точечными) треугольниками
Sergio R.
> «пустыми» (невидимыми, точечными) треугольниками
Думаю лучше было бы сказать вырожденными треугольниками. А то я не сразу понял, что за точечные треугольники. 🙂
Executor
> вырожденными треугольниками
Во! Точно :))))
Executor
> Сетка 4х4, вершин 5х5, всё верно. Вроде все так и делают.
т.е. сетка вершин вершин (n^2+1)x(n^2 +1),а сама сетка будет (n^2)x(n^2).
shuttle
> т.е. сетка вершин вершин (n^2+1)x(n^2 +1),а сама сетка будет (n^2)x(n^2).
shuttle
напиши подробнее, что ты подразумеваешь под детализацией ландшафта. Что именно хочешь получить в результате?
Есть подозрение, что у тебя изначально неправильный алгоритм.
andriano
> shuttle
> напиши подробнее, что ты подразумеваешь под детализацией ландшафта. Что именно
> хочешь получить в результате?
> Есть подозрение, что у тебя изначально неправильный алгоритм.
В том месте где находится наблюдатель, ландшафт рисуется с максимаотной детализацией: соединятся соседние вершины(рисую треугольники через соседние вершины), на удаленни детализация уменьшается: рисуются треугольники через одну вершину, потом через 3 вершины.
т.е. у меня за основу берется сетка вершин 5х5:
максимальная детализация соединяю соседние вершины 1,2,3,4,5 — ряд состоит из восьми треугольников, а всего 32 треугольника на сетку вершин 5Х5
уменьшенная детализация соединяю через одну 1 вершину 1,3,5 — ряд состоит из четырех треугольников, а всего 8 треугольников на сетку вершин 5Х5
еще меньшая детализация — через две вершины — 3 вершины — в этом случае получается 1 треугольник треугольников на сетку вершин 5Х5.
Т.е. всегда 8 треугольников образующих квадрат объединяются в 2 тругольника в этом же квадрате.
shuttle
как тебе правильно сказал Executor, при сетке N*N количество граничных вершин будет (N+1)*(N+1). Причем в одном фрагменте мы можем запоминать вершины N*N, а границу брать с соседнего фрагмента ландшафта.
Т.е. допустим, мы прописываем только левые границы, тогда в качестве самой правой вершины нужно брать самую левую точку соседнего справа фрагмента ландшафта.
Естественно, если мир предполагается конечным и ограниченным, то нужно отдельно в виде одномерного массива прописать границу мира.
Если у тебя весь игровой мир сосредоточен в единственном фрагменте, тогда наиболее логичным будет делать по (2^k)+1 вершину вдоль одной координаты.
И, кстати, при изменении уровня детализации неправильно брать лишь часть вершин с предыдущего уровня. Вершины нового уровня нужно пересчитывать, учитывая ВСЕ вершины исходного. Могу порекомендовать для внутренних узлов веса: (0.25, 0.5, 0.25).
andriano
> Могу порекомендовать для внутренних узлов веса: (0.25, 0.5, 0.25).
А про веса можно по конкретнее?
shuttle
> А про веса можно по конкретнее?
Новая вершина вычисляется как среднее взвешенное старой вершины и ее соседей.
Источник статьи: http://www.gamedev.ru/code/forum/?id=125130
Детализация ландшафта — Landscape detailing
Детализация ландшафта описывает процесс объединения мягких и твердых ландшафтных материалов для создания ландшафтного дизайна . Это требует знания:
Детализация ландшафта может быть сведена к трем различным этапам: функция, структура и внешний вид. Функция позволяет удовлетворить требования ландшафта и служить определенной цели. Структура — это физическая реализация функции с помощью наилучших доступных ресурсов, обычно локального характера. Внешний вид — это получение визуального удовлетворения, широко известное как эстетические ценности.
Детализация пейзажа может повлиять на отношение и настроение пейзажа. Было проведено исследование, посвященное тому, как молодые люди чувствуют себя в естественном ландшафте по сравнению с искусственно созданной средой обитания. Результаты показали, что молодые люди предпочитают более структурированный ландшафт. Детализация ландшафта позволяет дизайнеру делать выбор, который помогает повлиять на ландшафт, позволяя показать потенциал.
Пейзаж может влиять на развитие сообществ и обществ, и наоборот. Сообщества могут формировать использование ландшафта в зависимости от потребностей сообщества. Мы можем увидеть пример этого в ландшафте Канады и роли железных дорог в формировании сообщества. С введением железной дороги дикие земли Канады стали более восприимчивыми к эксплуатации и позволили общине познакомиться с множеством национальных парков Канады.
Детализация ландшафта не ограничивается только реальной землей, но также может рассматриваться как способ улучшить территорию набережной, делая набережную более привлекательной для публики. Обычно, когда речь идет о взаимосвязи деталей ландшафта и воды, мы думаем о дренаже и о том, как можно управлять ландшафтом, чтобы служить пользователю, чтобы предотвратить затопление и поддержать потоки воды.
С каждым новым развитием технологий сегодня появляется все больше способов передать детализацию ландшафта. Инструменты визуализации можно разделить на две категории: традиционные и компьютеризированные. Традиционные способы передать детали ландшафта — это просто ручка / карандаш, бумажные карты и модели, в то время как компьютеризированный способ будет использовать ГИС, виртуальное 3D-моделирование или симуляции с использованием слоев фотографии для передачи городских территорий, которые потенциально могут быть формованный.
Эстетика — важная часть детализации ландшафта, визуальное качество пейзажа — это то, что замечают другие, и поэтому цель состоит в том, чтобы достичь приятной эстетики без создания синтетического ощущения. Искусство и дизайн также улучшают пейзаж. Художественное влияние играет непосредственную роль в планировании ландшафта.
Источник статьи: http://ru.qaz.wiki/wiki/Landscape_detailing
Уровень детализации (компьютерная графика) — Level of detail (computer graphics)
В компьютерной графике , уровень детализации ( LOD ) относится к сложности модели 3D представления. Уровень детализации может быть уменьшен по мере удаления модели от зрителя или в соответствии с другими показателями, такими как важность объекта, относительная скорость или положение точки обзора. Методы LOD повышают эффективность рендеринга за счет уменьшения рабочей нагрузки на этапах графического конвейера , обычно это преобразования вершин . Ухудшение визуального качества модели часто остается незамеченным из-за небольшого влияния на внешний вид объекта при удалении или быстром движении.
Хотя большую часть времени LOD применяется только к геометрическим деталям , основную концепцию можно обобщить. В последнее время методы LOD также включают управление шейдерами, чтобы контролировать сложность пикселей. В течение многих лет к текстурным картам применялась форма управления уровнем детализации под названием mipmapping , также обеспечивающая более высокое качество визуализации.
Обычно говорят, что «объект был LOD’d », когда объект упрощается с помощью базового алгоритма LOD-ing .
Содержание
Историческая справка
Происхождение всех алгоритмов LOD для трехмерной компьютерной графики можно проследить до статьи Джеймса Х. Кларка в октябрьском выпуске журнала Communications of the ACM за 1976 год . В то время компьютеры были монолитными и редкими, а графикой управляли исследователи. Само оборудование было совершенно другим, как по архитектуре, так и по производительности. Таким образом, можно наблюдать много различий в отношении сегодняшних алгоритмов, но также и много общих моментов.
Исходный алгоритм представил гораздо более общий подход к тому, что будет здесь обсуждаться. После введения некоторых доступных алгоритмов для управления геометрией заявлено, что наиболее плодотворные достижения были получены от «. структурирования визуализируемой среды» , что позволяет использовать более быстрые преобразования и операции отсечения .
Такая же структура среды теперь предлагается как способ управления различными деталями, что позволяет избежать ненужных вычислений, но при этом обеспечивает адекватное визуальное качество:
Например, додекаэдр выглядит как сфера с достаточно большого расстояния и, таким образом, может использоваться для его моделирования, если смотреть с этого или большего расстояния. Однако, если его когда-либо рассматривать более внимательно, он будет выглядеть как додекаэдр. Одно из решений — просто определить его как можно более детально. Однако тогда у него может быть гораздо больше деталей, чем необходимо для представления его на больших расстояниях, а в сложной среде с множеством таких объектов будет слишком много полигонов (или других геометрических примитивов), чтобы алгоритмы видимой поверхности могли эффективно обрабатывать их.
Предлагаемый алгоритм представляет собой древовидную структуру данных, в дугах которой кодируются как преобразования, так и переходы к более детализированным объектам. Таким образом, каждый узел кодирует объект, и согласно быстрой эвристике дерево спускается до листьев, которые предоставляют каждому объекту более подробную информацию. Когда лист будет достигнут, другие методы могут быть использованы при более подробно требуется, например, Catmull «ы рекурсивного разбиения .
Однако важным моментом является то, что в сложной среде объем информации, представленной о различных объектах в окружающей среде, варьируется в зависимости от доли поля зрения, занятой этими объектами.
Бумага затем вводит отсечения (не следует путать с выбраковки хотя часто похожи), различные соображения , касающиеся графического рабочего набора и его влияние на производительность, взаимодействие между предложенным алгоритмом и другими , чтобы улучшить скорость рендеринга.
Хорошо известные подходы
Хотя представленный выше алгоритм охватывает весь спектр методов управления уровнем детализации, в реальных приложениях обычно используются специальные методы, адаптированные к отображаемой информации. В зависимости от требований ситуации используются два основных метода:
Первый метод, Discrete Levels of Detail (DLOD) , включает создание нескольких дискретных версий исходной геометрии с пониженным уровнем геометрической детализации. Во время выполнения модели с полной детализацией при необходимости заменяются моделями с уменьшенной детализацией. Из-за дискретного характера уровней при замене одной модели на другую могут возникать визуальные всплески . Это может быть смягчено альфа-смешением или морфингом между состояниями во время перехода.
Второй метод, непрерывные уровни детализации (CLOD) , использует структуру, которая содержит постоянно изменяющийся спектр геометрических деталей. Затем структура может быть исследована, чтобы плавно выбрать соответствующий уровень детализации, необходимый для ситуации. Существенным преимуществом этой техники является возможность локального изменения деталей; например, сторона большого объекта, более близкая к виду, может быть представлена с высокой детализацией, одновременно уменьшая детализацию на его удаленной стороне.
В обоих случаях LOD выбираются на основе некоторой эвристики, которая используется для оценки того, сколько деталей теряется из-за уменьшения детализации, например, путем оценки геометрической ошибки LOD относительно модели с полной детализацией. Затем объекты отображаются с минимальным количеством деталей, необходимых для выполнения эвристики, которая предназначена для минимизации геометрических деталей в максимально возможной степени, чтобы максимизировать производительность при сохранении приемлемого уровня визуального качества.
Подробная информация о дискретном уровне детализации
Основная концепция дискретного уровня детализации (DLOD) заключается в предоставлении различных моделей для представления одного и того же объекта. Для получения этих моделей требуется внешний алгоритм, который часто является нетривиальным и зависит от многих методов сокращения полигонов . Последовательные алгоритмы LOD-ing просто предполагают, что эти модели доступны.
Алгоритмы DLOD часто используются в ресурсоемких приложениях с небольшими наборами данных, которые легко помещаются в памяти. Хотя можно использовать алгоритмы, не связанные с ядром, степень детализации информации не очень подходит для такого рода приложений. Этот вид алгоритма обычно легче запустить, поскольку он обеспечивает более высокую производительность и меньшую загрузку ЦП из-за небольшого количества операций.
Методы DLOD часто используются для «автономных» движущихся объектов, возможно, включая сложные методы анимации. Другой подход используется для geomipmapping , популярного алгоритма рендеринга ландшафта , потому что он применяется к сеткам ландшафта, которые графически и топологически отличаются от «объектных» сеток. Вместо того, чтобы вычислять ошибку и упрощать сетку в соответствии с этим, геокартирование использует метод фиксированного сокращения, оценивает внесенную ошибку и вычисляет расстояние, на котором ошибка является приемлемой. Несмотря на простоту, алгоритм обеспечивает достойную производительность.
Пример дискретного уровня детализации
В качестве простого примера рассмотрим сферу . Дискретный подход LOD может кэшировать определенное количество моделей, которые будут использоваться на разных расстояниях. Поскольку модель может быть тривиально сгенерирована процедурно с помощью ее математической формулировки, для создания различных требуемых моделей достаточно использовать разное количество точек выборки, распределенных на поверхности. Этот проход не является алгоритмом LOD-ing.
Образ | |||||
---|---|---|---|---|---|
Вершины | 140 | ||||
Ноты | Максимальная детализация для крупных планов. | Минимум деталей, очень далекие объекты. |
Для моделирования реалистичного сценария привязки преобразования можно использовать специальное написанное приложение. Использование простых алгоритмов и минимального количества операций с фрагментами гарантирует отсутствие ограничений ЦП . В каждом кадре программа будет вычислять расстояние до каждой сферы и выбирать модель из пула в соответствии с этой информацией. Чтобы легко показать концепцию, расстояние, на котором используется каждая модель, жестко закодировано в источнике. Более сложный метод предполагает вычисление адекватных моделей в соответствии с выбранным расстоянием использования.
OpenGL используется для рендеринга из-за его высокой эффективности при управлении небольшими партиями, хранении каждой модели в списке отображения, что позволяет избежать накладных расходов на связь. Дополнительная вершинная нагрузка создается путем применения двух направленных источников света, идеально расположенных бесконечно далеко.
В следующей таблице сравнивается производительность рендеринга с учетом LOD и метода полной информации ( грубой силы ).
Грубый | DLOD | Сравнение | |
---|---|---|---|
Визуализированные изображения | |||
Время рендеринга | 27,27 мс | 1,29 мс | 21 × уменьшение |
Вершины сцены | 2 328 480 | 109 440 | 21 × уменьшение |
Иерархический LOD
Поскольку оборудование ориентировано на большое количество деталей, рендеринг низкополигональных объектов может иметь неоптимальную производительность. HLOD позволяет избежать этой проблемы, группируя различные объекты вместе. Это позволяет повысить эффективность, а также воспользоваться соображениями близости.
Практическое применение
Видео игры
LOD особенно полезен в 3D-видеоиграх. Разработчики видеоигр хотят предоставить игрокам большие миры, но всегда ограничены аппаратным обеспечением, частотой кадров и природой графики видеоигр в реальном времени . С появлением 3D-игр в 1990-х годах многие видеоигры просто не отображали удаленные структуры или объекты. Будут визуализироваться только близлежащие объекты, а более удаленные части будут постепенно исчезать, по сути создавая туман на расстоянии . Видеоигры, использующие рендеринг LOD, избегают этого эффекта тумана и могут рендерить большие области. Некоторые известные ранние примеры рендеринга LOD в 3D-видеоиграх включают Spyro the Dragon , Crash Bandicoot: Warped , Unreal Tournament и движок Serious Sam . В большинстве современных 3D-игр используется комбинация методов рендеринга LOD с использованием различных моделей для больших структур и удалением удаленных деталей окружающей среды, таких как трава и деревья. Эффект иногда все еще заметен, например, когда персонаж игрока летит над виртуальной местностью или использует снайперский прицел для просмотра на большом расстоянии. Когда вы приближаетесь, кажется, что трава и листва выскакивают наружу, что также называется удалением листвы. Уровень детализации также можно использовать для рендеринга фрактального ландшафта в реальном времени.
В популярной игре о строительстве городов Cities: Skylines моды позволяют изменять уровень детализации.
В ГИС и 3D моделировании городов
LOD встречается в ГИС и 3D моделях городов как аналогичная концепция. Он показывает, насколько тщательно были нанесены на карту реальные особенности и насколько модель соответствует своему реальному аналогу. Помимо геометрической сложности, в LOD модели могут учитываться другие показатели, такие как пространственно-семантическая согласованность, разрешение текстуры и атрибуты. Стандартный CityGML содержит одну из самых известных категорий LOD.
Аналогия «LOD-ing» в ГИС называется обобщением .
Источник статьи: http://ru.qaz.wiki/wiki/Level_of_detail_(computer_graphics)