LOD в современных играх [закрыто]

14

В настоящее время я работаю над магистерской диссертацией о LOD и упрощении сетки, и я читаю много научных статей и статей по этому вопросу. Однако я не могу найти достаточно информации о том, как LOD используется в современных играх. Я знаю, что во многих играх используется какой-то динамический LOD для ландшафта, но как насчет других?

Уровень детализации для 3D-графики, например, указывает на то, что дискретный LOD (где художники готовят несколько моделей заранее) широко используется из-за снижения производительности непрерывного LOD. Однако эта книга была опубликована в 2002 году, и мне интересно, изменились ли сейчас дела? Было проведено некоторое исследование по выполнению динамического LOD с использованием геометрического шейдера ( эта статья, например, с его реализацией в ShaderX6), будет ли это использоваться в современной игре?

Подводя итог, мой вопрос о состоянии LOD в современных видеоиграх, какие алгоритмы используются и почему? В частности, используется ли непрерывное упрощение в зависимости от вида или накладные расходы времени выполнения делают использование дискретных моделей с надлежащим смешиванием и самозванцами более привлекательным решением? Если используются дискретные модели, используется ли алгоритм (например, кластеризация вершин ) для их генерации в автономном режиме, художники создают модели вручную или, возможно, используется комбинация обоих методов?

Firas Assaad
источник
Я бы предложил добавить тег «рендеринг», так как вы заинтересованы в графическом LOD, тогда как LOD также можно применять к физике, ИИ и любой другой области, где важность может быть уменьшена на основе расстояния до чего-либо или производительности.
Кадж
@Kaj: Хороший вопрос. Я говорю об упрощении полигональной сетки в частности.
Firas Assaad
О, кажется, мы редактировали одновременно (я забыл, что могу добавлять теги, не стесняйтесь удалять графическое программирование: o \). Я постараюсь придумать ответ позже - я в кризисе сегодня.
Кадж

Ответы:

9

На данный момент кажется, что дискретный LOD все еще предпочтителен, но еще неизвестно, изменится ли это со следующим поколением консольного оборудования.

Для чего он стоит Том Форсайт много писал о непрерывном LOD, который он называет «прогрессивной сеткой». Программирование игр Gems 2 подразумевает, что у них есть одна из этих статей, но, похоже, она отражена здесь .

Я считаю, что одна из игр Тома поставляется с использованием прогрессивной сетки на оборудовании консоли последнего поколения. Я не думаю, что вычислительные накладные расходы беспокоят людей с непрерывным LOD. Я думаю, что больше, чем дискретный LOD, легче. Непрерывный LOD делает более тяжелым подъем в трубопроводе инструментов и не имеет достаточно явных преимуществ.

Что касается генерации дискретных LOD, мы используем комбинацию автоматических инструментов и создания художника. DirectX SDK поставляется с некоторыми инструментами для автоматического уменьшения геометрии, и я считаю, что мы используем это в качестве первого прохода, если качество недостаточно хорошее, тогда художники генерируют дискретные LOD вручную или с помощью дополнительных инструментов в Maya.

Дэн Олсон
источник
1
Я думаю, что Мессия широко использовал прогрессивную сеть, кажется, эоны назад мир гудел от этого. Но я согласен, что статичный lod все еще преобладает там, где я смотрю. Трудно алгоритмически решить, какие детали важно сохранить, хотя многие статьи SigGraph были написаны об этом, я уверен, что ОП знает. Кроме того, милый метод, который я всегда помнил, был главой «истинного самозванца» в одном из драгоценных камней игрового программирования, в котором я верю ... где они используют самозванцев с картированием окклюзии парралакса. Я знаю, что видел больше статей, написанных по той же методике (возможно, Фабио Поликарпо?)
Кадж
1
Еще один удар по непрерывному LOD - фиксированный объем памяти, доступный в консольной среде. Дискретные объекты позволяют вам отбрасывать модели высокого разрешения и все их зависимые текстуры / шейдеры и заменять их на гораздо более дешевую модель с простым шейдером и предварительно объединенной текстурой меньшего размера. В играх с открытым миром борьба за то, какие данные заполняют ограниченную доступную память, часто является более сложной борьбой, чем циклы CPU / GPU.
wkerslake
6
  • Supreme Commander (1 & 2) - этот RTS гордится тем, что вы можете плавно уменьшить масштаб, чтобы увидеть карту поля битвы, а затем полностью увеличить масштаб области и управлять ею. Он очень хорошо использует LOD, когда вы увеличиваете и уменьшаете масштаб, чтобы не перегружать видеокарту, и на определенном уровне уменьшения сетки заменяются двумерными изображениями того, какого они типа юнит, так что карта поля битвы может четко покажите, где что находится (поскольку очевидно, что 3D-сетка с очень низкой детализацией на 20 000 футов будет неразличима). Вы можете увидеть эффект замещения 2D довольно четко в первые несколько секунд этого видео .
  • RollerCoaster Tycoon 3 - Подобно Supreme Commander, эта игра позволяет вам увеличивать и уменьшать масштаб по желанию, просматривая весь ваш тематический парк или управляя одним каботажным судном. Он не использует замену 2D-изображения, но благодаря LOD все остается гладким; не только большие сетки уменьшаются в качестве, но и мелкие детали, такие как люди, которые ходят вокруг, исчезают, когда вы удаляете достаточно далеко.
  • Legend of Zelda: Wind Waker - во время плавания в открытом море вы можете осмотреться и увидеть ближайшие к вам острова; однако, это всего лишь силуэты островов, и реальные 3D-модели не загружаются, пока вы не приблизитесь к острову. Другие особенности острова, такие как враги и тайфуны в близлежащих водах; к сожалению, игрок может видеть, как они «всплывают», когда он приближается, но в целом это хорошая техника, которая предотвращает перегрузку оборудования Nintendo GameCube, в то же время давая игроку достаточно точное ощущение плавания по морям и возможности различать знаковые острова в Расстояние.
  • Elder Scrolls IV: Oblivion - я давно не играл в эту игру, но я знаю, что в ней используются либо силуэты, либо модели с очень низкой детализацией для структур далеких ориентиров, таких как высокая башня одного из городов и далекие горы ,

LOD используется не только для рельефа местности, но и для силуэтов далеких структур и для орлиных глаз в стратегических / симуляционных играх. Я не знаю деталей алгоритмов, и я думаю, что это основная часть вашего вопроса, но я хотел бы дать вам несколько примеров состояния LOD в современных видеоиграх.

Ricket
источник
4

Одним из современных подходов к непрерывному LOD является аппаратная тесселяция. Аппаратная тесселяция была реализована в DirectX 11 и по существу обеспечивает программируемое разделение поверхностей. Поскольку это реализовано на графическом процессоре, оно обеспечивает гораздо более высокую детализацию, чем обеспечивается тесселяцией, генерируемой процессором. Например, подразделяя поверхности на основе расстояния обзора, вы можете обеспечить форму непрерывного LOD.

Аппаратная тесселяция - это очень новая функция графических процессоров, и не так много игр используют ее. Я подозреваю, что в играх, которые используют его, в основном в качестве вставки для рельефного отображения - вместо рельефной карты в пиксельном шейдере вы можете изменить фактическую геометрию. Вероятно, есть много возможностей для дальнейших исследований в области упрощения и улучшения сетки с использованием аппаратной тесселяции.

Еще несколько ресурсов:

thekidder
источник
Пока что я считаю, что это скорее демонстрационная технология, чем практическая, поскольку вы действительно исключаете огромное количество целевой аудитории. Но да, процедурные средства могут быть способом продвижения вперед в той или иной форме, просто не уверенным, что это текущая реализация MS. Время покажет.
Кадж
4

Вот альтернативное предложение, просто чтобы оно было интересным. Выпуклая декомпозиция может создавать приблизительные геометрические формы довольно быстро, и обычно для столкновительных сеток. Эти сетки работают хорошо как LOD, и это возможно в качестве прореживания в реальном времени для ускорения конвейера.

http://codesuppository.blogspot.com/2009/11/convex-decomposition-library-now.html

underscorediscovery
источник
3

LOD пытается поддерживать постоянную скорость обработки. Иерархический уровень детализации - единственный способ сделать это для сцен со значительной детализацией. Если вы находитесь достаточно близко к объекту, он разлагается на несколько объектов. Этот рекурсивный LOD предоставляет не только простой механизм для обработки точек перехода для переключения на новые уровни детализации, но также позволяет счетчику визуализации оставаться примерно одинаковым независимо от того, как далеко / близко вы находитесь к объектам вашего мира.

Очень хорошо иметь отличные LODы для ваших сеток и текстур, но по крайней мере в одной игре, которую я поставил на PS2, я сэкономил время, просто собрав все листва секторов в единые вызовы отрисовки. Этот более крупный вызов отрисовки занял почти на 90% меньше времени, чем рендеринг всех вариантов с низкими затратами, даже с тщательно упорядоченными переходами материала и пакетным рендерингом каждого типа сетки. Итак, рассмотрите LOD с осторожностью. Это не только отдельные объекты. Это касается всей фазы рендеринга.

Ричард Фабиан
источник
1

Еще одна тема для обсуждения в вашей статье (хотя целый тезис легко может быть написан только на эту тему) - это процедурная генерация рельефа.

Многие современные проекты начинают использовать процедурную генерацию рельефа в реальном времени для создания огромных пространственных ландшафтов (Outerra, Infinity (INovae), чтобы назвать некоторые из самых выдающихся). Дискретный LOD просто не вариант из-за процедурной природы ячеек.

Эти ландшафты часто используют иерархические структуры разделения, такие как квадродерево, для определения LOD и генерируют сетку с соответствующим разрешением на основе глубины узла дерева.

Без использования непрерывных LOD эти удивительные проекты были бы просто невозможны.

bfishman
источник