В Shortest Edge наиболее угадывается камазюка, разве что немного покрышки побиты.
На втором месте Quadric Error Metrics unweighted, кроме покоцанных колес угадывается оригинал.
Quadric Error Metrics (QEM) weighted by triangle area
- такое себе, лонжероны пропали.
Original Algorithm by Stan Melax - ужас.
Судя по скриншотам автоматическая генерация лодов еще долго не заменит ручную работу модельщика.
Вообще мне кажется что в принципе вряд ли возможен алгоритм который мог бы нормально уменьшать полигонаж, т.к. надо понимать геометрию модели, и упрощать ее сохраняя ее форму.
Добавлено 16-01-2021 в 19:37:
Если выбирать из перечисленных то однозначно Shortest Edge, у него модель меньше всего убита. Stan Melax однозначно самое дно, модель полностью анигилирована.
Chyvachok писал: Судя по скриншотам автоматическая генерация лодов еще долго не заменит ручную работу модельщика.
скорее всего - никогда. Потому что сейчас делают наоборот. Берут заранее симплифицированную модельку и добавляют к ней детали при помощи тесселяции. А тесселяция, это не просто увеличение полигонов. Она ориентируется на хейтмапу, снятую с оригинальной хай-поли модели.
Крупные детали так конечно не сделать, но вся мелочь в играх именно так и проступает. Игрок далеко - тесселяция на минимум. Правда у нее есть существенный минус, она не ускоряет работу, как лоды, а наоборот замедляет её.
Дядя Миша писал:
Есть вполне официальная тенденция. Зря что ли тесселяцию внедрили.
Вообще-то первые демки были уже в 2009-м году.
Официальная тенденция среди украинских разработчиков разве что. Не очень-то много современных игор вспоминается с тесселяцией. Даже если посмотреть статьи "что такое тесселяция" за последние пять лет, то там в примерах будут сталкер, метро и крузис 2.
Цитата:
Дядя Миша писал:
все дециматоры худо-бедно дают неплохие результаты до 50%.
Проблемы начинаются где-то от 30%. И там уже фирменные косяки алгоритма лезут наружу.
3дмакс сработал не очень, а блендер родил вот такое. Модель кривая, она на части разбита, где не надо. Например, покрышки разбиты на 4 отдельных куска. Если предварительно объединить совпадающие вершины, то не будет дыр хотя бы (левый камаз)
Дядя Миша писал:
все дециматоры худо-бедно дают неплохие результаты до 50%.
Я б сказал, что ниже этого порога тебе уже нужен не дециматор, а реконструктор. Неко кои дециматор ты не обучишь тому, что камаз должен в итоге выродиться в нечто вроде этого:
nemyax писал: Я б сказал, что ниже этого порога тебе уже нужен не дециматор, а реконструктор
Дай-ко угадаю, он сперва бьёт модель на группу конвексных хуллов а потом считает разницу между реальностью и финальной точкой?
Цитата:
nemyax писал: камаз должен в итоге выродиться в нечто вроде этого:
финальная стадия это импостор
Добавлено 17-01-2021 в 16:49:
Вообще, не забывайте, что у лодов, сконструированных автоматически, есть одно серъезное преимущество - они обсалютно не затрагивают исходную геометрию, меняют только индексы. Такой подход здорово экономит видеопамять. Причём если бы там были настоящие лоды, для них пришлось бы и лайтмапу считать, а для прогрессивных мешей лайтмапа сама "адаптируется". Хотя декали могут действительно утопать внутри модели на низших уровнях лодов. Кстати может в сталкере наблюдать этот эффект, чиркнуть ножом по дереву и отойти. Зарубка исчезнет. Я долгое время думал, что это какой-то глюк и только недавно до меня дошло что это такое.
Дядя Миша писал: ты что-то имеешь против украинских разработчиков?
Только то, что они не создают тенденций.
Цитата:
nemyax писал: У блендера три упрощатора.
Ты про три режима Decimate, или там еще что-то есть? Я показал то, что выдает Collapse. Unsubdivide, очевидно, не подходит, а Planar не дает выставить в процентах, сколько должно выйти треугольников.
Цитата:
Дядя Миша писал: Причём если бы там были настоящие лоды, для них пришлось бы и лайтмапу считать
Необязательно, если делать у лодов развертку под лайтмапу более-менее совпадающей. И запекать можно было бы на лодах, а не на хайполи.
В любом случае, использовать для коллизий генерированную автоматом мешанину из треугольников вряд ли стоит.
ncuxonaT писал: Только то, что они не создают тенденций.
А кто создаёт? Крайтек?
Цитата:
ncuxonaT писал: Необязательно, если делать у лодов развертку под лайтмапу более-менее совпадающей
Это неконтролируемый процесс. Для старших лодов наверное еще возможно, а вот для предельного варианта - очень навряд ли.
В любом случае придётся предусмотреть отдельные развертки для каждого лода, на случай, если что-то пойдет не так.
Цитата:
ncuxonaT писал: В любом случае, использовать для коллизий генерированную автоматом мешанину из треугольников вряд ли стоит.
Сталкер именно такую мешанину и использует. Просто дециматору заданы особые параметры и дополнительные штрафы на несмежных рёбрах.
Но есть важное отличие - мы имеем дело с геометрией у которой нет материалов и все точки шареные. И дециматору работать на порядок легче. Вы же обратили внимание, что все демки симплификации намеренно не используют текстурирование. Ну вот в том числе и поэтому.
Добавлено 19-01-2021 в 14:45:
Совсем забыл. Есть такой хитрый режим децимации, я не вникал как это работает, но он упрощает модель не в процентном соотношении, заданном юзером, а до тех пор, пока не начнётся определённая деградация.
Причём степень этой деградации вычислятся индивидуально для каждой модели. Где-то можно и впятеро симплифицировать, а где-то всего на 30%.
В сталкере SWPM именно так и работает, он сам выбирает до каких пределов модель поддаётся упрощение. Из-за чего увидеть деградацию модели в принципе невозможно. Что в свою очередь привело к мнению, будто бы в сталкере нет никаких лодов. Причём это порой утверждают даже люди, которые делали под XRay уровни.
Имплементировал колоизацию из дуум3, в целом неплохо, мне нравится.
Но есть конечно и досадные моменты. Во первых, больше всего места в заняли сурфэджы - индексы ребёр. На лост-альфовском кордоне почти 17 мегабайт. И ведь ничего не сделаешь. Сами рёбра и вертексы весят достаточно скромно, дерево я ужал, плюс это всё происходит на оригинальной геометрии где порядка миллион двести тысяч полигонов (не треугольников, а именно полигонов). Думаю, если геометрию симплифицировать, будет не так жутко. К тому же у аксиального BSP есть один важный плюс - сурфейсы в него можно фильтровать на лету, это очень быстро, а значит не надо их хранить в карте. К тому же фильтровать их можно, читая контентсы из материала, если к примеру несолидный, то вообще не помещать в дерево. Ну то есть, для того чтобы поменять контентсы, вовсе необязательно перекомпиливать карту.
Минус в проверке на пересечение модель\полигон. Т.е. движение модели сквозь полигон работает отлично, а вот тест на застревание внутри полигона - не очень. Это не баг кода, это такой подход. Помните выражение "застрял в текстурах"? Вот это как раз оно. Т.е. проверка на пересечение делается в самом начале, когда плоскости модели и плоскость полигона рядом. Но чистой проверки на всю модель - не выполняется.
Иными словами полигоны односторонне проходимы, т.е. сзади сквозь него можно пройти, но назад он уже не пропустит.
Такой подход не позволяет конечно некоторые вещи, которые раньше решались легко и просто, ну например - проверка на вставание игрока внутри узкого тоннеля скорее всего сфейлит. Это не значит что подобные вещи нереализуемые теперь, логика немного поменяется. Но я вот думаю что классический тест на застревание тоже нужен. Потому что трассировочную модель можно представить в виде конвексного браша.
Добавлено 22-01-2021 в 14:00:
К слову, весь этот механизм колоизации предполагает любопытный выверт геометрии. Вся геометрия вывернута наизнанку, но плоскости смотрят правильно. При этом и модель для трассировки тоже вывернута, но уже в другую сторону, т.е. полигоны смотрят внутрь, а плоскости наружу.
Вообщем главная претензия к колоизации - это её размер.
Хрен его знает что с этим делать. Всего по чуть-чуть, а в сумме много.
Примерно половина от визуальной части. Ну скажем, если визуальная геометрия весит 100, то колоизация - 50. Многовато.