7505
0
21/10/2021

Пример

В этом примере мы будем использовать плоскую модель листа, текстурированную с помощью диффузной карты PNG, содержащей альфа-канал, и черно-белой карты непрозрачности.

Объекты, расположенные близко к камере, отображаются с небольшими контурами:

После перемещения объектов дальше от камеры материал становится ярче или размывается:

Объяснение

Хотя эта проблема может навести на мысль о проблемах с картой непрозрачности, на самом деле она связана с картой диффузности. Если вы используете растровое изображение, содержащее информацию альфа-канала (.png, .tif,...) в слоте diffuse, фильтрация слегка размывает его границы, чтобы был виден сплошной диффузный цвет материала Corona. По умолчанию цвет диффузии установлен на серый, и это причина того, что в большинстве случаев текстуры становятся размытыми или более яркими, чем ожидалось.

Примечание: эта проблема не связана с Corona, такая же проблема возникнет и в любом другом рендере.

Вот как выглядит карта диффузной текстуры в программе просмотра графики. Обратите внимание на прозрачный фон:

Эффект едва заметен в редакторе материалов, если цвет диффузии установлен по умолчанию 128 серых:

Однако после изменения цвета на красный он становится более очевидным:

А после отключения прозрачности для материала видно, что сплошной диффузный цвет используется в альфа-маппированных областях текстуры:

Решение

Чтобы исправить это поведение:

Либо:

  • Если растровая карта диффузии содержит альфа-канал, установите цвет диффузии материала в соответствии с текстурой (например, зеленый, если это текстура листьев).

Либо:

  • Если диффузный растр не содержит альфа-канала, отредактируйте его и закрасьте его "фон" (область, которая прозрачна на этом рисунке) цветом, соответствующим основной текстуре.

Неправильный диффузный растр:


Исправленный диффузный растр:


Исправлен материал, видимый на расстоянии (сравните с примером в верхней части страницы):

Существуют и другие решения, но их работа не гарантирована, и они могут привести к нежелательным результатам, таким как мерцание или aliasing, особенно в анимации:

  • Установите параметр "размытие" на 0 в настройках диффузного растрового изображения.
  • Установите параметр "texmap filtering" на "none" в разделе "Development / Experimental Stuff".

Примечание: это отключит фильтрацию для ВСЕХ текстур в сцене и, таким образом, может вызвать значительное количество артефактов при рендеринге (мерцание, aliasing, неровные края...).


Более подробно ознакомиться со всеми курсами образовательного проекта CGBandit вы можете здесь: https://www.cgbanditcourse.com

Перевод статьи осуществлен образовательным проектом CGBandit c официального сайта coronarenderer.

Комментарии (0)