Closed akaSpy closed 6 years ago
Здравствуй, @akaSpy
По скриншоту сложно сказать в чём проблема.
Было бы полезно посмотреть на blend-файл, object-файл и получившуюся карту нормалей, чтобы хоть как-то понять в чём может быть проблема.
А экспорт же был сделан с использованием Format Version: CS/CoP
?
@igelbox, спасибо, что откликнулся. И извини, что ответил не сразу, был пока не у дел. Я сегодня проведу ещё пару тестов и постараюсь предоставить детальную информацию.
@igelbox
Пока не могу нормально провести тесты, так как ломается модель. Сделал тестовую модель, но не могу понять, что с ней происходит в Actor Editor:
Похоже на проблему с группами сглаживания, судя по возросшему vertex count. В игре (Зов Припяти) аналогично плохо всё:
Это как-то решается?
P. S. Сам экспорт модели проходит нормально, при импорте обратно в Блендер модель выглядит корректно.
@igelbox
Blend-файл GameTest.zip
Думаю проблема в не правильной Format Version:
. У меня, при выставленной Format Version: CS/CoP
- нормально в CoP SDK открывает:
@igelbox Действительно, спасибо! Как же я не догадался попробовать, ведь при импорте та же проблема была. В общем, у меня по какой-то причине эти кнопки перепутаны. Я когда импортировал модель Winchester 1300 из игры, то при выставленном CS/CoP ломались группы, а при SoC норм. При экспорте видимо та же ситуация. Версия плагина 0.4.0 Видимо есть какой-то баг, либо, что-то я неправильно установил.
@igelbox По поводу основной проблемы. Подскажи, пожалуйста, передаётся ли tangent space из Blender? Подобные проблемы сглаживания указывают, как раз на то, что не соответствуют tangent space Blender'a и Stalker'a. И как их синхронизировать не могу понять. Кучу разных способов перепробовал, но ошибки сглаживания как были, так и есть.
Я когда импортировал модель Winchester 1300 из игры, то при выставленном CS/CoP ломались группы, а при SoC норм. При экспорте видимо та же ситуация. Версия плагина 0.4.0 Видимо есть какой-то баг
Какая версия игры? Какой конкретно файл импортировался? Чем был сконвертирован из ogf в object?
Подскажи, пожалуйста, передаётся ли tangent space из Blender?
на сколько я знаю, формат object не предоставляет возможности передачи tangent map, т.е. SDK его каждый раз рассчитывает при экспорте в ogf. Если всё таки есть примеры где он передаётся, напиши - мы реализуем в аддоне.
Какая версия игры? Какой конкретно файл импортировался? Чем был сконвертирован из ogf в object?
У меня, при открытии этого файла в CoP SDK, он загружается так же плохо, как и в Blender. Получается - это проблема с converter.exe
(что он всегда конвертирует в SoC-овские группы сглаживания).
@PavelBlend, может ты знаешь, каким конвертером правильно преобразовывать модели ЗП.
Но, вообще, думаю можно смело импортировать сконверченные модели с Format Version: SoC
, а сохранять для SDK с Format Version: CS/CoP
.
Но, вообще, думаю можно смело импортировать сконверченные модели с Format Version: SoC, а сохранять для SDK с Format Version: CS/CoP.
В том то и дело, что если сохраняешь с Format Version: CS/CoP, то бьются группы сглаживания, а если в SoC, то всё ок :) Магия! Может у меня, что-то локально не так.
Может при импорте куда-то фиксируется в blend-файл? Тот файл, который я выше скидывал, удалось сохранить как CS/CoP, но без битых групп?
Может при импорте куда-то фиксируется в blend-файл?
Навряд ли. Такого в аддоне не было.
Тот файл, который я выше скидывал, удалось сохранить как CS/CoP, но без битых групп?
Да. Импортировал в Blender как SoC
и сразу же экспортировал как CS/CoP
. Потом открыл получившийся object-файл в SDK и там со сглаживанием всё хорошо.
Версии ПО:
SDK - 0.7
blender-xray - 0.5.0
Конвертер бардака всегда сохраняет группы сглаживания в формате SoC, независимо откуда был взят ogf файл (из ТЧ или из ЧН/ЗП).
@akaSpy я скачал твой файл wpn_winchester1300_hud.object, импортировал в blender, потом экспортировал в object в формате CS/CoP, потом сохранил в ogf с помощью SDK 0.7. В итоге в игре модель выглядит так же как в blender:
Чтобы не было таких чёрных затенений на модели, нужно править группы сглаживания, так как сейчас они не совсем правильно настроены. Вот я исправил:
И вот blend сцена с исправленным сглаживанием: fix_sg.zip
Да. Импортировал в Blender как SoC и сразу же экспортировал как CS/CoP. Потом открыл получившийся object-файл в SDK 0.7 и там со сглаживанием всё хорошо. @akaSpy я скачал твой файл wpn_winchester1300_hud.object, импортировал в blender, потом экспортировал в object в формате CS/CoP, потом сохранил в ogf с помощью SDK 0.7. В итоге в игре модель выглядит так же как в blender:
Попробую поставить свежую версию плагина, очень странно.
Чтобы не было таких чёрных затенений на модели, нужно править группы сглаживания, так как сейчас они не совсем правильно настроены. Вот я исправил.
@PavelBlend Дело не в группах сглаживания, они сделаны такими специально для тестирования карты нормалей. В игре карта нормалей по какой-то причине не компенсирует подобное сглаживание, хотя должно. Я предполагаю это из-за не соответствия tangent space. Но как синхронизировать не могу найти решение. Толи вектора из Blender имеют не то направление, то ли ещё чего. Пока нет мыслей.
Вот здесь хорошо показана проблема, при смене tangent basis (аналогичная моей): https://youtu.be/m-6Yu-nTbUU?t=2m31s
@akaSpy можешь показать как выглядит карта нормалей?
@PavelBlend да, я в течении получаса подготовлю модель и карту нормалей, и скину сюда.
@akaSpy я менял группы сглаживания и косяков стало меньше. Может в сталкере карта нормалей не компенсирует сглаживание, а дополняет его. Сквозь карту нормалей проглядываются затенения от групп сглаживания. В оригинальных моделях ЗП на острых углах нет сглаживания. Может так нужно делать и со своими моделями?
@igelbox, @PavelBlend Ребята, спасибо за помощь! Возьму время ещё на пару тестов.
Так же не забывайте удалять двойные вершины и выворачивать нормали наружу.
@igelbox Хочу уточнить, а при экспорте необходимо накидывать модификатор Edge Split, чтобы сохранить группы сглаживания?
Только недавно обратил внимание, что появляется ошибка (про неё я уже прочитал): Maya-SG incompatible: sharp edge adjacents has same smoothing group Так вот Edge Split фиксит её.
И вообще как сохранить группы сглаживания?
@PavelBlend Подскажи, а как ты экспортишь группы сглаживания? У меня почему-то бьются в AE и в игре соответственно ломается нормалка.
В редакторах:
В игре:
Edited: похоже опять проблема с форматом. Не знаю почему, но у меня экспортируется только в SoC нормально.
@akaSpy просто нажимаю File>Export>XRay Object и ставлю тип формата (SoC или CS/CoP) и всё. И никаких модификаторов Edge Split не нужно ставить.
А при экспорте этой модели есть предупреждения Maya-SG incompatible? Может острое ребро преобразовалось в сглаженное. Хотя если это ЗП, то не должно быть такого предупреждения. Только для ТЧ есть определённые ограничения в этом плане.
@PavelBlend Понятно, спасибо!
В SoC формате группы сохраняет. Но склеивает вершины и из-за этого бьет группы :(((( Флаг HQ Geometry не помогает. Существуют какие-то лекарства?
@akaSpy
Хочу уточнить, а при экспорте необходимо накидывать модификатор Edge Split, чтобы сохранить группы сглаживания? И вообще как сохранить группы сглаживания?
Обычно и без него работает. Но, думаю, он может помогать в сложных случаях (разделяя треугольники, дублируя рёбра), когда текущий меш не представим в формате SoC/Maya. Тут, кстати, есть ишью по этому поводу (если уж очень нужен SoC формат) - #57, но у меня пока мощи не хватает, сделать нормальный алгоритм расчёта. А в CoP-формате - нет таких ограничений, любые группы сглаживания должны поддерживаться аддоном, безо всяких дополнительных модификаторов.
@igelbox Спасибо за ответ! Я честно говоря так и не понял, почему у меня нормально не экспортируется в CoP-формате. Плагин поставил свежий. Может ещё СДК на всякий случай переустановить, странно это всё.
Попробовал открыть модель из _Test/raw/sdk/editors/rawdata/meshes/dynamics/weapons/wpnwinchester1300/ из ранее приложенного "Каталог с файлами" в SDK 0.7 - сглаживание сломано, в SDK - 0.4 - склаживание - норм.
Попробовал экспортировать модель из Test/raw/GameTest.blend используя формат CS/CoP - в SDK 0.7 - сглаживание норм, в SDK - 0.4 - склаживание сломано.
Может всё-таки версия SDK - не правильная. У меня, кстати, были похожие проблемы при использовании SDK 0.4: при компиляции OGF ломались нормали и в игре это выглядело как на половине с "original": Из-за этого в аддоне и появилась сырая поддержка экспорта в ogf (см. половину с "my (fixed)"). Сейчас, я тестирую в (откуда я их взял - уже не помню):
Вообщем, попробуй тоже экспортировать с CS/CoP и открыть в SDK для ЗП. Если не получается, то пиши, какой SDK используешь (не думаю, что сюда надо ссылку на пиратские ресурсы постить, может просто описание, как его найти на просторах интернета).
@igelbox Ты прав. Я установил чистый официальный SDK 0.7. Что-то было внутри SDK, что ломало весь процесс, либо какие-то файлы от 0.4 версии. С экспортом CS/CoP сглаживание заработало как надо. Правда не сразу. Модификатор Edge Split ломает группы в модели, по крайней мере в промежуточном использовании в *.fbx для запекания карты нормали, развёртки. И меня это сильно путало. Когда отказался от него, всё пошло как надо. Большое тебе спасибо! Наконец-то мои мучения закончились :)
Пока единственной проблемой осталось склеивание вершин, с HQ Geometry, в редакторе вроде по лучше выглядит, чем в игре. То есть как будто в игре игнорируется этот флаг. Ну хоть группы не ломает, уже хорошо. Но тут как вариант ещё есть оптимизировать модельку.
Накинул тестовую текстурку:
Есть ещё какой-то фикс "форсирование групп сглаживания" для SDK 0.7 https://www.gameru.net/forum/index.php?showtopic=46774
Похоже на то, что вопрос решён. Если что, можно будет переоткрыть эту ишью.
Приветствую, коллеги по цеху!
Снова я к вам за помощью, так как косвенно это относится к плагину экспорта и вы в целом больше в теме внутренних особенностей.
В общем, проблема такая. Карту нормалей запёк в Substance Painter. В Substance всё выглядит отлично, в Marmoset тоже. Но в игре (Зов Припяти) имеет такие же ошибки сглаживания (3ds Max с Xoliul Shader):
Не могу разобраться в чём дело, как только не пробовал запекать. Подскажите, пожалуйста, какие есть варианты? Такое ощущение, что, что-то не то с нормалями.
P.S. Модель сделана в Blender и экспортирована через текущий плагин.