Иконы для DopexUsb из 3DS MAX c прозрачностью

Визуализация на прозрачном фоне

Сегодня как-то неожиданно решилась проблема, с которой я боролся всю свою сознательную 3D жизнь. Суть ее в следующем, имеем:

  • 3DS MAX
  • Программу какую-нибудь
  • Нужно сделать, например икону с прозрачностью или что-нибудь аналогичное

Неприятности возникают из-за того, что в момент визуализации в 3DS MAX все полупрозрачные предметы накладываются на фон какой-то. А извлечь нормально все кроме фона, до сегодняшнего дня у меня никогда не получалось. Итак, волшебная последовательность действий:

  • Сохраняем результат визуализации в формат поддерживающий альфа-канал (Alpha channel)
  • Открываем картинку в Photoshop
  • Выбираем все, копируем в буфер обмена
  • Создаем новый документ
  • Вставляем картинку
  • Добавляем маску (Add a mask)
  • Возвращаемся к нашему начальному документу, выбираем каналы и там выбираем активным альфа-канал
  • Копируем теперь его в буфер обмена
  • Возвращаемся в наш "клон" и вставляем в маску содержимое буффера обмена

Дальше начинаются пляски с прозрачностью. После удаления фона из под картинки теряется контраст, сильно. Собственно этого и хотелось всегда, чтобы избавиться от артефактов по краям иконы. Но внутри то хочется яркости и четкости! Я перепробовал разные варианты для решения этой проблемы. Для меня наилучшим методом оказалось увеличение яркости и контраста для слоя с маской. Ну а что устроит вас знаете только вы.

Визуализация без потери яркости

Новая волшебная последовательность действий:

  • В 3DS Max идем в настройки Customize > Preferences… > Rendering tab, выбираем “Use Environment Alpha”
  • Environment > Background Color - (0, 0, 0)!
  • Сохраняем результат визуализации в targa
    • Pre-Multipled Alpha выключена!
  • Открываем картинку в Photoshop
  • Выбираем все, копируем в буфер обмена
  • Создаем новый документ
  • Вставляем картинку
  • Добавляем маску (Add a mask)
  • Возвращаемся к нашему начальному документу, выбираем каналы и там выбираем активным альфа-канал
  • Копируем теперь его в буфер обмена
  • Возвращаемся в наш "клон" и вставляем в маску содержимое буффера обмена

Итого: 3DS MAX сохраняет отдельно изображение всей сцены без учета цвета фона (вернее с учетом нашего полностью черного фона), отдельно альфу. И когда все это совмещается - получаем изображение которое прекрасно ложится на любые фоны без каких бы то ни было артефактов или потерей яркости.

Проблема с falloff картой

По каким-то причинам при сохранении без Pre-Multipled Alpha 3ds Max начинает сходить с ума, и сохраняет битые изображения (похоже на переполнение или что-то в этом роде). Лечится хаком: вместо черного цвета (0, 0, 0) в falloff карте используется (1, 1, 1) или чуть больше. Работает.

Теперь при наведении курсора на кнопку внутренности 3d-тушек так же подсвечиваются, создавая впечатление монолитности всего интерфейса. Ну а вот что вышло:

<br>