Список разделов » 3D WIP (Work In Progress)
Монстр как способ познакомиться
Автор: Rebecca | Что-то псдшник не открывается ни в сs6 ни в сс/ | ||
Автор: Bezz | Rebecca, скачал, проверил - у меня открылось. Не знаю, с чем может быть связано. Ну, видимо, не судьба | ||
Автор: sdeart |
Тоже не открывался. По какой-то причине файл скачивается не до конца. Надо пробовать скачивать до тех пор, пока файл не будет весить 258 МБ. С 3 раза удалось скачать | ||
Автор: Bezz | А так? старый добрый Дропбокс не должен подвести | ||
Автор: Bezz | НУ вот, Felix17, я дописал наконец то, что хотел написать про нормалки и хард эджи. По крайней мере настолько, что больше писать уже не могу, залолбало))
Ну кароч, я эту штуку пишу, в первую очередь, для себя. Я где-то что-то прочитал, с чем-то столкнулся, что-то просмотрел. Я хочу суммировать и допонять. Да, такой вот я эгоист. Поэтому прошу прощения, если кроме непосредственного ответа на вопрос, придется прочитать кучу того, что и так знаете. А вот если ответа на вопрос не нашлось — то смерть мне через посыл гнева в комменты и в личку! Буду исправляться!
Так, ну, по-первых, кто знает английский, пусть лучше посмотрят вот эти вещи: Там все объясняется доступнее и понятнее, чем я счас тут распишу.
Издалека и нудно (ну хоть без формул)
Что такое карты нормалей? Карты нормалей, как вы наверное знаете, это, если грубо, способ заставить объект выглядеть детальнее, не усложняя геометрию. Как это работает — в текстуру записываются данные о нормалях поверхности высокодетализированного объекта и применяются на менее детализированном.
Это все понятно, это вам википедия и без меня могла сказать. И про то, что есть Tangent space и object space тоже. Но вот чего википедия не говорила мне, в свое время, так это то, ПОЧЕМУ, МАТЬ ТВОЮ, обжектспейс нормалка при запечении получается иногда прям вся такая чистенькая и красивенькая, а тангент спейс вся в дурацких разводах, из-за которых тенюшки неприятные на лополи.
А все почему? А все потому, что обжект спейс нормалка полностью игнорит нормали лоуполи и подменяет их на хайпольные, в то время, как тангент спейс нормали запекаются относительно нормалей лоуполи. То есть, если нормали хайполи и лоуполи полностью совпадают, мы получим чистую голубую текстуру, в остальных случаях — собственно разницу нормалей в виде оттенков, которые и показывают, на сколько по каждой из осей координат нормаль хайполи отклоняется от нормали лоуполи.
Но что я все на словах? Вот вам эксперимент: возьмем два куба — один с мягкими ребрами, другой с жесткими, все по классике, и попробуем запечь на каждый из них хайполи сферу и хайполи куб с чамфером.
Получим результат:
1. Обычный хороший результат. Большая часть текстуры ровно голубая и только там, где у хайполи скругленные края добавляется цвет. 2. и 3. Градиенты показывают, что чем дальше от центра плоскостей, тем сильнее расходятся нормали лоуполи и хайполи. 4. Тадааам! Чисто ровный цвет. И это не баг, это то, о чем я говорил выше — технически, нормали лоуполи и хайполи не отличаются друг от друга, и никаких отклонений нет. То есть куб с мягкими ребрами, это куб, который считает себя сферой.
Ну и что? Какя разница-то? Ну компенсирует же? Ну градиенты. Но в итоге же все будет ровненько и вообще ок? Не, не ок. Ну, редко мож и ок, но в основном нет.
А все опять же потому, что по какой-то мне неизвестной причине, нет единого алгоритма, записи и считывания тангент спейс карт утвержденного в трех чтениях и высеченного в граните в назидание потомкам. Хз почему. Гуглите. Потом мне расскажете.
А вот обжект спейс наоборот, ввиду своей прямолинейности считывается и записывается везде одинаково, сука такая. Ну да хрен с ней, она нас не интересует пока.
Вот и получается, что макс печет нормалки так, майя сяк а хнормал еще как-то, при том, что и движки их считывают тоже каждый по-своему. Отсюда и пресловутая галка «flip green channel” где-то, и другие отличия.
Кароч, если у вас совпадает алгоритм записи и считывания, вам сказочно повезло — цените. Можно печь как угодно и все должно выглядеть красивенько. Но бывает так крайне редко. Поэтому основная задача снятия нормалок, - сделать это так, чтобы даже при самой неудачной из комбинаций модель выглядела хорошо.
Капитанство, я знаю, но теперь у вас есть понимание того, почему так. Для меня это было важным открытием, вот и пишу все это.
Методы борьбы:
В идеале
Приземленно
Первую модель так же можно исправить, если подобавлять жестких ребер/смуфгрупп, но тогда и количество швов на развертке сильно вырастет, что затрудняет текстурирование. Но можно. Дело вкуса, как обычно.
Про чамфер и смуфгруппы
Технически, между чамфером и жестким ребром разницы нету — количество вертексов по факту одно и то же. Правда, в случае с чамфером, 3дмакс вам скажет, что кол-во вершин изменилось, а в случае групп сглаживания, нет.
На всякий случай, поясню. Каждый вертекс содержит в себе только один набор информации (о нормали, UV, цвете вершины и проч). При создании жесткого ребра, шва развертки или назначении нового Material ID, появляется дополнительная инфа, которую надо куда-то записать. А вертексы в 3д графике так устроены, что не принимают в себя больше одного набора инфы за раз. И что остается делать? Создать еще один вертекс, в который и поместить всю новую информацию. Вот.
Самые любопытные пользователи зд макса могут заюзать вот этот
Обратно к делу. Лично я предпочитаю чамфер, потому что в таком случае не надо разделять куски на развертке и текстурить проще. К тому же швы имеют свойство вылезать в самый неприятный момент, когда вы уже почти закончили текстринг. С другой стороны, если шов так и так делать, чамфер уже и ни к чему. Ну, разве что у вас очень толстый бюджет на полигоны. Как у ребят, делающих Star citizen, например.
Можете сами посмотреть
Еще я заметил, что на практике на фактическое количество вертексов никто внимания не обращает. То есть если у вас бюджет на полигоны, скажем, 1000 треугольников, то если вы замоделите впритык, а потом наделаете смуфгрупп, вряд ли кто-то скажет «О, чувак, тебе кажется, что ты уложился в лимит, но смуфгруппы добавили еще 20%, так что надо оптимизировать». Не, не помню такого. Глянут на статистику, и примут модель. Хотя я не такой и большой опыт имею. Поправьте меня, кто встречался с более серьезным отношением к вопросу.
Вообще, имейте ввиду — вся это тема, когда можно рисовать и лепить по модели не парясь о швах, эт конечно хорошо, но швы все равно лучше прятать в самые незаметные места, хотя бы из-за возможных проблем с чтением нормалки, указанных выше.
Ну, вот как то так. Вам хоть что-то пригодилось? Дайте знать, мне важно)) | ||
Автор: San oOo | "куб, который считает себя сферой" это круто) не знал что плоская нормалка получится) Полезная статья, подчерпнул для себя пару моментов | ||
Автор: Bezz | San oOo Ого! Спасиб, польщен)) | ||
Автор: Felix 17 | Bezz, спасибо за столь развернутый и информативный ответ, подчерпнул для себя пару моментов.
Про 20% из за смуз групп это на самом деле ерунда, ибо лимиты даются с расчетом на то что движок может поднять вдвое больше. |
Количество просмотров у этой темы: 34540.
← Предыдущая тема: Вертолёт Воздушных сил Украины