Open w23 opened 2 years ago
Да, в процессе. Потихоньку наполняется материал для лучших практик и как делать не надо. Где-то на следующей неделе вероятно засяду за компиляцию этого. Сейчас хочу доработать materialize, так как он открыт и самый удобный из существующих инструментов, хотя часть вещей бы портировать из awesomebump, но я уже забыл что там к чему. Materialize не хватает light cancelation нормального (в случае чего поможешь простым шейдером для этого? повторить принцип как у substance b2m, там есть направляющая света и сила света и надо погасить световые пятна по этому направлению). Потом ещё мне надо написать тузлу-костыль для нейросетей чтобы тайлинг не ломался. Нужно ещё настроить сборку для нейросетей с пошаговой инструкцией что к чему. Максимально упростить весь процесс.
Я думаю, что можно промежуточное выкладывать. То есть просто накидать ссылок на пбр (на вот это например https://academy-api-adobe.substance3d.com/courses/05171e19aa8dc19421385fd9bb9e016e/attachments/6dfaa037-e8f5-4523-ac88-216693b5cf05), и так же тупо списком всё то, что ты попробовал. (я, может, смогу и сам это завтра-послезавтра супер-кратко накидать, там тезисов на пять пунктов и три картинки.)
Мяса туда было бы тоже неплохо (что попробовал, как, почему да, почему нет), но это совсем как будет время.
@w23 если я начну этим заниматься то я засяду с головой. Прям щас не хочу разрываться (уже немного начинаю разрываться). Далеко не все сырые мысли пригодны для передачи понимания людям. Часть вещей возможно вовсе будут не нужны, потому что:
Если щас хаотично начать форсить это процесс результат будет хуже. Короче это так не итерируется. Если начать на минимальной базе форсить то люди будут делать ошибки и лишнюю работу.
Тогда я попытаюсь найти время в вовка-режиме накидать про материалы.
Тут ещё такой момент, что я совсем-совсем не понимаю, что именно ты делаешь, как, что перепробовал, что вообще есть, етц. У тебя есть знание, накопленное десятками часов, и отсутствующее у окружающих. Его в ультра-кратком виде (тупо список тулов и да-нет) можно, думаю, накидать за полчаса.
Просто перфекционизмом досконально всё документировать мы будем до 2077
Тогда я попытаюсь найти время в вовка-режиме накидать про материалы.
Собирался бегло по самым верхам сделать сегодня на тему materials.mat конспект потому что это не требует погружения. Остальное позже.
Его в ультра-кратком виде (тупо список тулов и да-нет) можно, думаю, накидать за полчаса.
Не получится всё в таком формате. Иначе бы я это сделал уже. Ещё ряд вопросов не проверено. Желающих с большим энтузиазмом и кое-как шарящих я пока не вижу кроме 1-2 человек, а их я и так могу в реальном времени проконсультировать в формате утверждение-вопрос-ответ. Для массы же которую планируется привлекать по сарафанному радио нужно совершенно другое. Чтобы процесс ремастеринга материалов пошёл быстрым и слаженным требуется готовая сборка с налаженным конвейером и нормальным ЧАВО, тогда можно привлечь неопытных людей но с большой энергией. Иначе просто утонем в плохих материалах и спрашивается зачем всё это затевалось тогда?
Просто перфекционизмом досконально всё документировать мы будем до 2077
Нет. Речь о базе чтоб делать ≈хороший ремастер, а не вовка-режим дерьмастера гта3. Хочешь вовка-режим? берёшь и прикручиваешь Half-Life ReSrced HD Graphics Mod ну там правда ещё из этого надо другие карты как-то достать... ну типа берёшь там по урокам materialize, substance b2m делаешь как-нибудь, это не сложно, можно вообще batch организовать автоматику. Только за результат я не отвечаю и собирать такое самому не хочется.
Короче тут вопрос кто будет тянуть ремастер материалов как типа арт-директор. Без арт-директора это будет разнобой, как чудовище доктора Франкенштейна, кто-то должен вести проект, следовательно он и будет диктовать свои взгляды на процесс. Если я, то могу сказать однозначно что итеративно тут как ты хочешь не получится, я просто так не могу в данном контексте работать. Это не код, тут совсем другой порядок и объём. Тут желательно подумать ряд вещей заранее прежде чем пускать конвейер, цена переделки высока. Возможно у меня неправильные представления на этот счёт, готов передать эту ношу другому 😅
Ты лучше реши вопрос с местом куда всё это заливать, в принципе я сам могу, но у тебя тут вероятно опыта больше.
@w23 ну держи https://github.com/w23/xash3d-fwgs/wiki/Формат-PBR-материалов Остальное пока не определено.
Вот тебе сырые (хотя и местами доработанные) мысли (надеюсь тебе станет от этого легче):
Для materialize у меня вовсе 18 пунктов доработок, хотя многие не столь важные, но это в любом случае может повлиять на процесс выдирания, например я хочу объединить этап с heightmap с normalmap.
Список приложений есть тут https://github.com/w23/xash3d-fwgs/issues/39 Я намерен улучшить materialize чтобы оно удобным было. Но он в ряде вещей проигрывает substance b2m чисто алгоримически, главным образом не хватает light canceling, но substance b2m платный и тоже есть свои недостатки которые не исправить в отличие от недостатков materialize.
Ох. Я не говорю навованить текстуры, я говорю навованить описание того, что с ними происходит, потому что я понятия не имею, что там и как. Никто на это не набежит вованить, я просто хочу больше понимания того, как ты ремастеришь.
Благодарю за вот это объёмное описание, теперь я запутался ещё больше :D. Думаю не буду лезть больше, просто доверюсь твоему руководству.
@w23 как делаю я это не совсем оптимальный и довольно мудрёный процесс поэтому его нет смысла описывать, мы на этом далеко не уедем, так как входной порог высоковат и производительность низковата. Хочешь могу как-нибудь включить стрим для тебя и ты увидишь своими глазами что это не массовый вариант. Я использую связку: materialize для простых случаев, заброшенного ндо2 (его уже легально не достать) чтобы нарисовать вручную нормаль или получить больший контроль над нормалями в ряде случаев, substance b2m чтобы погасить освещение и получить другой результат с нормалями и картой шероховатости (частенько он это делает лучше), местами делаю нарезку из двух текстур нормалей так поступил с решёткой например (потому что сами лепестки нужно было выделить сильнее нежели обод). Экран телика было сложно сделать хотя и получилось качественно (блик я только не убрал на basecolor, а на нормали его нет потому что нормаль самого экрана я нарисовал вручную). Я хочу довести materialize до примерно уровня substance b2m а в чём-то сделать гораздо удобнее, это сильно повысит производительность труда. А ndo заменить как-то иначе, например сделать синхронизацию с открытым файлом в гимпе где рисуем в сером и получаем на выходе нужную нормаль (естественно я опишу этот процесс максимально доступным языком с примерами). Описывать работу в текущем materialize не вижу смысла, просто посмотри например https://www.youtube.com/watch?v=vtnJToPxBNo чтобы иметь общее представление, а можешь сам скачать и потыкать. Описание параметров materialize ничего толкового не даст так как многое там относительно исходной текстуры будет и надо просто на глаз делать чтобы получить желаемый результат. При этом обычная версия materialize не совместима с нашим roughness потому что он там инвертированный (это я тоже хочу исправить, в одном форке есть переключение да не так как хотелось бы).
Забыл добавить этап с увеличением текстуры, я пока использую realesrgan вулкан-сборки там задействую две модели, его основную и -n realesrnet-x4plus
которая даёт в ряде случаев более правильный результат.
Благодарю.
roughness же можно тривиально автоматически инвертировать, хоть конвертом в командной строке, хоть при загрузке. (точно так же, как 1x1 -> 3x3 повтор). И апскейл можно тоже прогнать скриптом на всё, чтобы быстро понять масштаб катастрофы.
roughness же можно тривиально автоматически инвертировать, хоть конвертом в командной строке, хоть при загрузке.
(точно так же, как 1x1 -> 3x3 повтор).
Естественно это запланировано, но думаю делать не тормознутым имейдмаджиком а быстрым либвипс, хотя конечно большая часть времени сожрётся не им а нейросетями, но учитывая что либвипс выглядит интереснее мне хочется его использовать. Сейчас просто у меня не то состояние чтобы даже эти скрипты написать.
И апскейл можно тоже прогнать скриптом на всё, чтобы быстро понять масштаб катастрофы.
Масштаб катастрофы виден и так (всё плохо, ну где-то даже хорошо, но это не так часто как хотелось бы), нужно подбирать модели под конкретные случаи, а возможно и вовсе куски кадров. В идеале редактор где можно выделить нужную область и на ней применить нужную модель, это на это у меня щас сил не хватит и лучше просто подобрать модели которые достаточно хорошо себя показывают на тех или иных объектах. Если тебе делать нехер можешь сам запустить в цикле realesrgan и подождав пол дня (или больше) увидеть более истинный масштаб проблемы, я не вижу этого смысла, я вижу смысл чтобы на типовых текстурах обкатать 5-6 моделей (если для каждой из них все 4к+ текстур увеличить то это хз сколько времени займёт именно поэтому я предлагал на сервере это сделать и там отбирать хорошие варианты и отбраковывать плохие, но это как понимаю не заинтересовало).
Сейчас я немного вылетел из этой суиты и не могу даже заняться materialize, так что несколько дней я скорее всего большой активности проявлять не буду.
Там ещё для неба отдельный скрипт понадобится для правильного увеличения, надо будет сшивать на каждую сторону соседние иначе будут швы.
Надо, наверное, сделать вики-страницу здесь про то, как "правильно" ремастерить текстуры.
Ну там всякое:
Я не знаю, насколько может быть полезно это для того, кто уже с этим сталкивался, и насколько полезным для нас может быть результат трудов того, кто ни разу с этим не сталкивался. Во всяком случае я хотел бы чуть лучше понимать, что происходит на стороне ассетов :D.