Open YourWaltNightmare opened 6 months ago
@YourWaltNightmare про сглаживание я недавно написал в wiki: https://github.com/PavelBlend/blender-xray/wiki/Smoothing
Острые рёбра могут пропасть, если полигоны плоские:
Это связано с тем, что в ogf файлах нет границ сглаживания. Для сглаживания используются нормали вершин. Подробнее в вики по ссылке выше. Если на плоских полигонах пропадают sharp edges, то это нормально, так и должно быть, это не ошибка. Но если на выпуклых полигонах - то это ошибка и нужен пример файла. Я сейчас пытался сам создать пример, но не получилось.
Если сглаженное ребро становится несглаженным, то скорее всего это не критично, так как главное, чтобы направления нормалей совпадали. Визуально объекты до и после экспорта не будут отличаться, так как для ogf важны направления нормалей. Их можно включить здесь:
Я в принципе знал, что такое может быть, но не стал искать причину этого, так как результат в игре нормальный.
Сейчас пытался на простом примере воспроизвести ошибку и понял, что сглаженные рёбра становятся несглаженными, если у меша топология не корректная. Например, если есть накладывающиеся полигоны и кривая геометрия:
Вот пример файла: test_ogf_smoothing.zip
Буду выяснять в чём причина. Скорее всего эта ошибка исчезнет, если исправить ошибки геометрии. Сделать так, чтобы поверхность меша была non-manifold'ой и чтобы не было T-соединений.
Спасибо за ответ! Вот оно как.... Т.е. в данном случае, где ребра имеют sharp edges на плоской поверхности, в игре будут выглядеть нормально, т.к. нормали на вершинах правильные?
МБ из-за этого у меня на грозе в этом месте странный пересвет
Почитаю вики и поиграюсь еще. Раньше я как раз использовал Максовский тип сглаживания, где полигоны нужно было делить на группы, пока не перешел полностью на Блендер.
Я открою эту issue, чтобы не забыть тщательнее изучить проблему.
Извеняюсь. Я ее случайно закрыл, пока пытался разобраться с работой Гитхаба :)
Да. Проблема была в этих двух вершинах:
На скриншоте видно, что нормали не туда смотря, а все из за того, что между полигонами были еще полигоны....
Удалил, поправил геометрию меша и сразу все стало работать как надо.
"Сделать так, чтобы поверхность меша была non-manifold'ой и чтобы не было T-соединений."
Посмотрел все non-manifold'ные соединения. Они как раз находятся приблизительно там, где у меня проблемы со сглаживанием.
Убрал нон-монифолдные поверхности у мушки, целика и скобы спускового крючка (создал в дырах между гранями полигоны). Попробовал снова эскпорт в .ogf и импорт в Blender. Теперь в этих выделенных местах нету Sharp Edges на плоских поверхностях, как на предыдущем скриншоте:
Правда меня это не особо радует, т.к. конкретно в этой модели невозможно обойтись без конечных краев, которые ни к чему не присоединены. Вот еще пример на Волтере: Это модель после экспорта и импорта. Верхняя грань нон-монифолдная (ее я менять никак не собираюсь). Выделил все грани, которые должны были быть острыми. Вместо этого при экспорте острой становится грань по середине плоского квадрата. Выглядит это так, словно параметр острой грани перешел на соседнюю грань образуя тем самым треугольник И так во многих местах, где похожая ситуация с конечными гранями, которые ни с чем не замкнуты.
Надо как то сделать так, чтобы сглаживание было в тех местах, где нам хочется, независимо от геометрии меша.
Понял. Посмотрю позже.
Работаю с ТЧ (правлю модели оружия и анимации) и пользуюсь SDK от Yara. У меня актуальная версия плагина, а также Блендер 2.79 на Win10 Pro. Карта RTX 3060.
Беру модель, у которого правлю сглаживание. На скриншоте представлено, как оно должно выглядеть:
Экспортирую в object - получаю Maya-SG incompatible: sharp edge adjacents has same smoothing group Сколько форумы не читаю, так и не понял, с чем конкретно связана эта ошибка. Появляется при экспорте с первой группой сглаживания (SOC).
Так или иначе, после экспорта и импорта в Блендере мой .object файл имеет правильные Sharp Edges.
При конвертировании уже в .ogf (неважно через SDK или плагин) и последующем импорте обратно в Блендер видим, что сглаживание имеет проблемы. Часть граней становится острыми, а часть наоборот сглаженными там, где это не нужно.
Не имеет значение, выбираю ли я пункт SOC при экспорте или CS/COP. По итогу результат получается одним и тем же и линии грани портятся приблизительно в одних и тех же местах.