Избавляемся от швов

Добавлен , опубликован
Раздел:
Моделлинг
Наверняка, работая с моделями (особенно экспортированными из других игр, например, World of Warcraft), вы встречались с проблемой появления швов. Если нет, то я поясню, как это выглядит.
У нас имеется каркас из полигонов, который представляет из себя две половинки. На них натянута с двух отражённых сторон одна и та же текстура. На моей модели это лицо персонажа.
Когда мы включаем полный просмотр, получаем следующий результат:
Как видно, на лице просматривается шов. Это последствие склейки полигонов с натянутыми копиями текстуры с разных сторон.
Изначально решением было смещение точек развёртки геосета "вглубь" текстуры, подальше от её краёв.
Но недавно я придумал другое решение: нужно убрать флаги "Wrap Width" и "Wrap Height" в свойствах текущей текстуры.
В War3 Model Editor это делается через меню Windows / Texture Manager / правый клик по текстуре / Edit / Texture Wrapping.
Тогда программа отрисовки не будет понимать текстуру как "тайл" и её края приобретут чёткие границы. Я думаю, что это глюк алгоритма обработки текстур-тайлов, который приводит к швам на границах.
Отдельная благодарность: Wolverine.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
25
14 лет назад
1
как то мало для статьи)
1
17
14 лет назад
1
Это новый вид статей - заметки :)
1
37
14 лет назад
1
Я думаю, это кому-то поможет. Лучше, чем ничего. Если что, я уменьшил количество опыта в 4 раза)
1
27
14 лет назад
1
Лучше зашей в xgm.ru/p/wc3/m_faq
3
22
14 лет назад
3
"это глюк алгоритма обработки текстур-тайлов, который приводит к швам на границах"
Это не глюк, это фича. Просто векторно текстура представима как матрица вершин окрашенных цветами соответствующих пикселей, а пространство между ними заполняется градиентом цветов соседних вершин. Иначе мы бы наблюдали квадратные (а иногда и не очень) пиксели текстуры на модели.
Т.е. когда точке геосета соответствует позиция (0, 0) на карте текстур (допустим текстура 256х256), то эта точка будет занимать позицию на стыке 4-х пикселей (0,0) (255, 0) (255, 255) (0, 255) и будет окрашена в цвет равномерного смешения цветов этих пикселей. Вот и получается, что вроде бы как край текстуры одного цвета, но вершина окрашивается в смесь цвета этого края, с цветом противоположного края.
А когда ты убираешь тороидальность наложения текстуры, то крайние положения на карте текстур берут цвет пикселей только того же края.
0
15
14 лет назад
0
Мелочь, но приятно... мне пригодится... спс...
0
26
14 лет назад
0
Никогда не встречал, у меня и так все работает. Пока.
0
37
14 лет назад
0
Iron, всё бы ничего, если бы я юзал 0,0, а не 1.8, допустим :)
т.е. я так понимаю, он заполняет внутренние пиксели своим градиентом вместо абсолютного перехода, а это и есть "глюк" ибо это "не то, что ожидалось"
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.