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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
22
14 лет назад
2
"это глюк алгоритма обработки текстур-тайлов, который приводит к швам на границах"
Это не глюк, это фича. Просто векторно текстура представима как матрица вершин окрашенных цветами соответствующих пикселей, а пространство между ними заполняется градиентом цветов соседних вершин. Иначе мы бы наблюдали квадратные (а иногда и не очень) пиксели текстуры на модели.
Т.е. когда точке геосета соответствует позиция (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, допустим :)
т.е. я так понимаю, он заполняет внутренние пиксели своим градиентом вместо абсолютного перехода, а это и есть "глюк" ибо это "не то, что ожидалось"
0
22
14 лет назад
0
"всё бы ничего, если бы я юзал 0,0, а не 1.8"
?? Вроде ж координаты вершины на карте текстур в mdx это два float значения. Т.е. координаты (1, 8) это правая нижняя точка седьмого повторения текстуры по направлению вниз (ну или правая верхняя точка восьмого)
Ну а если ты имел ввиду пиксели то я тебе гарантирую, что если координаты находятся в рамках:
(0.5 / TextureWidethInPixels) * n < X < (1 - (0.5 / TextureWidethInPixels)) * n
(0.5 / TextureHeightInPixels) * n < Y < (1 - (0.5 / TextureHeightInPixels)) * n
n &#8712; &#8484; \ 0
То в варе никаких швов не будет. Если они есть в War3 Model Editor-е, то этот баг исключительно на его совести.
__________________
PS: Гадский фильтр.
n є Z \ 0
Ууупс, лажаю. Поправочка:
(0.5 / TextureWidethInPixels) + n < X < (1 - (0.5 / TextureWidethInPixels)) + n
(0.5 / TextureHeightInPixels) + n < Y < (1 - (0.5 / TextureHeightInPixels)) + n
0
37
14 лет назад
0
Ты сейчас повыёживаться пришёл чтоли ? Я тестил может прежде чем писать?
0
20
14 лет назад
0
Вуху, теперь я знаю что нужно делать если внезапно появятся швы! И при этом не учтено что тексутра может использоваться в материалах с анимацией положения оной, и дабы избежать смазывания придется использовать еще раз ту же текустуру что в принципе не возможно из-за корявого кода War3ME! Клево!
0
22
14 лет назад
0
ScorpioT1000, я просто говорю как оно есть с максимумом конкретики, не обобщая кучу мыслей непонятными терминами типа "заполнение внутренних пикселей" и "абсолютный переход".
И ты мне поверь, я тоже тестил.
0
25
13 лет назад
0
soooooooooooooooooooooo useless
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.