Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сглаживание при экспорте в .ogf работает некорректно. #775

Open
YourWaltNightmare opened this issue May 9, 2024 · 7 comments
Labels
bug Что-то не работает ogf Формат *.ogf

Comments

@YourWaltNightmare
Copy link

Работаю с ТЧ (правлю модели оружия и анимации) и пользуюсь SDK от Yara. У меня актуальная версия плагина, а также Блендер 2.79 на Win10 Pro. Карта RTX 3060.

  1. Беру модель, у которого правлю сглаживание.
    На скриншоте представлено, как оно должно выглядеть:
    image

  2. Экспортирую в object - получаю Maya-SG incompatible: sharp edge adjacents has same smoothing group
    image
    Сколько форумы не читаю, так и не понял, с чем конкретно связана эта ошибка. Появляется при экспорте с первой группой сглаживания (SOC).

  3. Так или иначе, после экспорта и импорта в Блендере мой .object файл имеет правильные Sharp Edges.

  4. При конвертировании уже в .ogf (неважно через SDK или плагин) и последующем импорте обратно в Блендер видим, что сглаживание имеет проблемы.
    image
    Часть граней становится острыми, а часть наоборот сглаженными там, где это не нужно.

Не имеет значение, выбираю ли я пункт SOC при экспорте или CS/COP. По итогу результат получается одним и тем же и линии грани портятся приблизительно в одних и тех же местах.

@YourWaltNightmare YourWaltNightmare added the bug Что-то не работает label May 9, 2024
@PavelBlend
Copy link
Owner

@YourWaltNightmare про сглаживание я недавно написал в wiki:
https://github.com/PavelBlend/blender-xray/wiki/Smoothing

Острые рёбра могут пропасть, если полигоны плоские:
01

Это связано с тем, что в ogf файлах нет границ сглаживания. Для сглаживания используются нормали вершин. Подробнее в вики по ссылке выше. Если на плоских полигонах пропадают sharp edges, то это нормально, так и должно быть, это не ошибка. Но если на выпуклых полигонах - то это ошибка и нужен пример файла. Я сейчас пытался сам создать пример, но не получилось.

Если сглаженное ребро становится несглаженным, то скорее всего это не критично, так как главное, чтобы направления нормалей совпадали. Визуально объекты до и после экспорта не будут отличаться, так как для ogf важны направления нормалей. Их можно включить здесь:
02

Я в принципе знал, что такое может быть, но не стал искать причину этого, так как результат в игре нормальный.

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

Вот пример файла:
test_ogf_smoothing.zip

Буду выяснять в чём причина. Скорее всего эта ошибка исчезнет, если исправить ошибки геометрии. Сделать так, чтобы поверхность меша была non-manifold'ой и чтобы не было T-соединений.

@YourWaltNightmare
Copy link
Author

Спасибо за ответ!
Вот оно как.... Т.е. в данном случае, где ребра имеют sharp edges на плоской поверхности, в игре будут выглядеть нормально, т.к. нормали на вершинах правильные?
image

МБ из-за этого у меня на грозе в этом месте странный пересвет
image
image

Почитаю вики и поиграюсь еще.
Раньше я как раз использовал Максовский тип сглаживания, где полигоны нужно было делить на группы, пока не перешел полностью на Блендер.

@PavelBlend
Copy link
Owner

Я открою эту issue, чтобы не забыть тщательнее изучить проблему.

@PavelBlend PavelBlend reopened this May 9, 2024
@YourWaltNightmare
Copy link
Author

Извеняюсь. Я ее случайно закрыл, пока пытался разобраться с работой Гитхаба :)

Да. Проблема была в этих двух вершинах:
image

На скриншоте видно, что нормали не туда смотря, а все из за того, что между полигонами были еще полигоны....
image

Удалил, поправил геометрию меша и сразу все стало работать как надо.
image

@YourWaltNightmare
Copy link
Author

"Сделать так, чтобы поверхность меша была non-manifold'ой и чтобы не было T-соединений."

Посмотрел все non-manifold'ные соединения. Они как раз находятся приблизительно там, где у меня проблемы со сглаживанием.
image

@YourWaltNightmare
Copy link
Author

Убрал нон-монифолдные поверхности у мушки, целика и скобы спускового крючка (создал в дырах между гранями полигоны). Попробовал снова эскпорт в .ogf и импорт в Blender. Теперь в этих выделенных местах нету Sharp Edges на плоских поверхностях, как на предыдущем скриншоте:
image

Правда меня это не особо радует, т.к. конкретно в этой модели невозможно обойтись без конечных краев, которые ни к чему не присоединены. Вот еще пример на Волтере:
image
Это модель после экспорта и импорта. Верхняя грань нон-монифолдная (ее я менять никак не собираюсь). Выделил все грани, которые должны были быть острыми. Вместо этого при экспорте острой становится грань по середине плоского квадрата. Выглядит это так, словно параметр острой грани перешел на соседнюю грань образуя тем самым треугольник
И так во многих местах, где похожая ситуация с конечными гранями, которые ни с чем не замкнуты.

Надо как то сделать так, чтобы сглаживание было в тех местах, где нам хочется, независимо от геометрии меша.

@PavelBlend
Copy link
Owner

Понял. Посмотрю позже.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Что-то не работает ogf Формат *.ogf
Projects
None yet
Development

No branches or pull requests

2 participants