В настоящее время я работаю над магистерской диссертацией о LOD и упрощении сетки, и я читаю много научных статей и статей по этому вопросу. Однако я не могу найти достаточно информации о том, как LOD используется в современных играх. Я знаю, что во многих играх используется какой-то динамический LOD для ландшафта, но как насчет других?
Уровень детализации для 3D-графики, например, указывает на то, что дискретный LOD (где художники готовят несколько моделей заранее) широко используется из-за снижения производительности непрерывного LOD. Однако эта книга была опубликована в 2002 году, и мне интересно, изменились ли сейчас дела? Было проведено некоторое исследование по выполнению динамического LOD с использованием геометрического шейдера ( эта статья, например, с его реализацией в ShaderX6), будет ли это использоваться в современной игре?
Подводя итог, мой вопрос о состоянии LOD в современных видеоиграх, какие алгоритмы используются и почему? В частности, используется ли непрерывное упрощение в зависимости от вида или накладные расходы времени выполнения делают использование дискретных моделей с надлежащим смешиванием и самозванцами более привлекательным решением? Если используются дискретные модели, используется ли алгоритм (например, кластеризация вершин ) для их генерации в автономном режиме, художники создают модели вручную или, возможно, используется комбинация обоих методов?
источник
Ответы:
На данный момент кажется, что дискретный LOD все еще предпочтителен, но еще неизвестно, изменится ли это со следующим поколением консольного оборудования.
Для чего он стоит Том Форсайт много писал о непрерывном LOD, который он называет «прогрессивной сеткой». Программирование игр Gems 2 подразумевает, что у них есть одна из этих статей, но, похоже, она отражена здесь .
Я считаю, что одна из игр Тома поставляется с использованием прогрессивной сетки на оборудовании консоли последнего поколения. Я не думаю, что вычислительные накладные расходы беспокоят людей с непрерывным LOD. Я думаю, что больше, чем дискретный LOD, легче. Непрерывный LOD делает более тяжелым подъем в трубопроводе инструментов и не имеет достаточно явных преимуществ.
Что касается генерации дискретных LOD, мы используем комбинацию автоматических инструментов и создания художника. DirectX SDK поставляется с некоторыми инструментами для автоматического уменьшения геометрии, и я считаю, что мы используем это в качестве первого прохода, если качество недостаточно хорошее, тогда художники генерируют дискретные LOD вручную или с помощью дополнительных инструментов в Maya.
источник
LOD используется не только для рельефа местности, но и для силуэтов далеких структур и для орлиных глаз в стратегических / симуляционных играх. Я не знаю деталей алгоритмов, и я думаю, что это основная часть вашего вопроса, но я хотел бы дать вам несколько примеров состояния LOD в современных видеоиграх.
источник
Одним из современных подходов к непрерывному LOD является аппаратная тесселяция. Аппаратная тесселяция была реализована в DirectX 11 и по существу обеспечивает программируемое разделение поверхностей. Поскольку это реализовано на графическом процессоре, оно обеспечивает гораздо более высокую детализацию, чем обеспечивается тесселяцией, генерируемой процессором. Например, подразделяя поверхности на основе расстояния обзора, вы можете обеспечить форму непрерывного LOD.
Аппаратная тесселяция - это очень новая функция графических процессоров, и не так много игр используют ее. Я подозреваю, что в играх, которые используют его, в основном в качестве вставки для рельефного отображения - вместо рельефной карты в пиксельном шейдере вы можете изменить фактическую геометрию. Вероятно, есть много возможностей для дальнейших исследований в области упрощения и улучшения сетки с использованием аппаратной тесселяции.
Еще несколько ресурсов:
источник
Вот альтернативное предложение, просто чтобы оно было интересным. Выпуклая декомпозиция может создавать приблизительные геометрические формы довольно быстро, и обычно для столкновительных сеток. Эти сетки работают хорошо как LOD, и это возможно в качестве прореживания в реальном времени для ускорения конвейера.
http://codesuppository.blogspot.com/2009/11/convex-decomposition-library-now.html
источник
LOD пытается поддерживать постоянную скорость обработки. Иерархический уровень детализации - единственный способ сделать это для сцен со значительной детализацией. Если вы находитесь достаточно близко к объекту, он разлагается на несколько объектов. Этот рекурсивный LOD предоставляет не только простой механизм для обработки точек перехода для переключения на новые уровни детализации, но также позволяет счетчику визуализации оставаться примерно одинаковым независимо от того, как далеко / близко вы находитесь к объектам вашего мира.
Очень хорошо иметь отличные LODы для ваших сеток и текстур, но по крайней мере в одной игре, которую я поставил на PS2, я сэкономил время, просто собрав все листва секторов в единые вызовы отрисовки. Этот более крупный вызов отрисовки занял почти на 90% меньше времени, чем рендеринг всех вариантов с низкими затратами, даже с тщательно упорядоченными переходами материала и пакетным рендерингом каждого типа сетки. Итак, рассмотрите LOD с осторожностью. Это не только отдельные объекты. Это касается всей фазы рендеринга.
источник
Еще одна тема для обсуждения в вашей статье (хотя целый тезис легко может быть написан только на эту тему) - это процедурная генерация рельефа.
Многие современные проекты начинают использовать процедурную генерацию рельефа в реальном времени для создания огромных пространственных ландшафтов (Outerra, Infinity (INovae), чтобы назвать некоторые из самых выдающихся). Дискретный LOD просто не вариант из-за процедурной природы ячеек.
Эти ландшафты часто используют иерархические структуры разделения, такие как квадродерево, для определения LOD и генерируют сетку с соответствующим разрешением на основе глубины узла дерева.
Без использования непрерывных LOD эти удивительные проекты были бы просто невозможны.
источник