2013-05-27 5 views
0

Я реализую сопоставление смещения, используя DirectX 11 с его новыми этапами тесселяции.Внедрение картирования смещения: пробелы вдоль швов

Диффузная карта и карта смещения генерируются xNormal.

Результат после того, как я применил отображение смещения, так сильно взломан. http://imgur.com/a/OT2tt#0

Затем я понял, что значения в текстуре вдоль швов не совпадают/непрерывны, поэтому я просто использую диффузную текстуру как карту смещения, а диффузный цвет - полностью красный.

http://imgur.com/a/OT2tt#1

В результате лучше, но по-прежнему разрыв в 1 пиксел вдоль швов.

http://imgur.com/a/OT2tt#2

http://imgur.com/a/OT2tt#3

http://imgur.com/a/OT2tt#4

Я был смущен небольшой зазор, поэтому я увеличил цветную-часть в текстуре с помощью MS художника, то разрыв исчез!

http://imgur.com/a/OT2tt#6

http://imgur.com/a/OT2tt#7

Теперь я просто не понимаю, где проблема. Даже если значение вдоль швов из другой части текстуры одинаково (в этом случае красный (красный)), все еще имеются пробелы в модели результатов.

Я пробовал все образцы фильтра here(MSDN), но ничего не помогает.

Что вызывает разрыв? Будет лучше, если проблема может быть решена путем изменения текстуры вместо изменения моего кода.

+0

Вы используете индексированное представление для своей геометрии или повторяете некоторые вершины в буфере вершин? Если это так, две идентичные вершины могут быть смещены с немного разными значениями из-за ошибок точности с плавающей запятой. –

ответ

0

Вы должны внедрить водонепроницаемую фильтрацию швов: D Если нет, эти промежутки появляются, потому что нормали различаются по УФ-швам. Довольно очевидно.

Смежные вопросы