http://habrahabr.ru/post/251607/
Предлагаю читателям «Хабрахабра» перевод публикации «Using detail textures for extra realism close-up» из блога компании Unity.Дополнительный материал к этой статье ссылка
p.s Огромная просьба к любителям устроить «Дом 2» в комментариях, если нашли ошибку или недочёт в статье. Просьба отписать мне в диалог, с вашим исправленным вариантом. Спасибо за внимание!
Текстуры детализации (Detail Textures) на узоре текстуры, которые будут исчезать на поверхности, когда камера будет постепенно отдаляться. Это может быть использовано для имитации грязи, погодных условий или другой подобной детали на поверхности, не добавляя к
визуализации (rendering) лишних расходов, когда камера находится слишком далеко, чтобы увидеть разницу.
Получение текстуры
Текстуры детализации (Detail Textures) на черно-белом изображении, которые используются для осветления или затемнения другой выбранной текстуры. Где пиксель имеет значение яркости от
0 до
127, изображение будет затемнено (
0 обозначает максимальное затемнение), когда значение находится между
129 и
255, изображение будет освещено (
255 означает максимальное освещение). Значение ровно
128 нейтральное и оставит часть изображения (с пикселями яркости
128) без изменений.
Если детализация изображения имеет среднюю яркость больше или меньше чем
128, всё изображение будет казаться светлее или темнее, это даст неправильный эффект, когда камера приближается. Поэтому важно убедиться, что уровень яркости в изображении примерно симметрично равен
128. Вы можете проверить это дело во многих ПО для редактирования изображений, глядя на
гистограмму изображения (image histogram) или
регулировку уровня яркости ( Levels adjustment ) ( как правило, тоже показывает гистограмму). Если гистограмма показывает симметричное «вздутие» (bulge), то есть чуть-чуть влево или вправо от центра, вы можете с помощью скобок «вздутия» с
min/max стрелками, отрегулировать уровень так, чтобы получить яркость, равную
128.
Во избежание видимости рамок, когда детализированная текстура
обёртывается (wraps) поверх другой текстуры, необходимо в идеале использовать изображение, которое можно замостить не выходя из-за границ другой текстуры. Если изображение создается с использованием функции
шума (noise) в графическом редакторе, результатом будет, тем что наша детализированная текстура будет без артефактов. Кроме того фильтры, такие как
Difference Clouds часто имеют настройку, которая сделает в результате качественную
обертку (wrap) изображения. Простые эффекты, которые могут сделать вполне эффективные карты детализации для симуляции грязи, зернистых поверхностей или эрозий.
Настройки импорта детализированной текстуры в Unity
После того, как вы сохранили изображение в проект
Unity, вы можете выбрать его, чтобы увидеть его настройки импорта в панели
Inspector.
Установите
texture type на значение
Advanced, а затем включите параметр
Generate Mip Maps и параметр
Fadeout Mip Maps так же включите. Вы должны увидеть регулятор диапазона в параметре
Fade Range; числовые значения для диапазона не указаны, но настройки по умолчанию подходят для большинства случаев. Если уменьшить значения в этом регуляторе, то детализированная текстура будет видна с маленького расстояния. Если увеличить этот диапазон, то будет видна с дальнего расстояния. в
Fade Range указаны значения расстояния, на котором детализированная текстуры будет постепенно исчезать, покуда не станут невидимыми.
Материал для детализированной текстуры
Для использования детализированной текстуры, вы должны установить материал, используя
Diffuse Detail шейдер с помощью меню в
Material Inspector (Инспекторе материалов).
В дополнение к
базовой текстуре (base texture), вы увидите второе окно
(Detail), для установки детализированной текстуры, которую вы только что импортировали.
Как правило, вы хотите установить свои значения
Tiling побольше (обычно устанавливают около 10).
Детализированный материал (Detail material) теперь может быть применен к любому подходящему объекту, чтобы отобразить эффект детализации.