Наложение цвета
Не менее важной и полезной функцией в mapping'е является наложение цвета, именно оно раскрывает огромный потенциал в работе и позволяет нам:
- Перекрашивать текстуры в любой свой цвет.
Не так давно мне потребовалось сделать комнату с использованием двух основных цветов: черный и зеленый. Банально голубая картина не вписывалась в интерьер и пришлось ее перекрасить, что сразу же бросается в глаза как нечто новое и нестандартное, не правда ли?
А что вы скажите на счет того, чтобы за счет наложения цвета на текстуру сделать эффект неонового свечения на стенах? - Да как два пальца обоссать!
- Фиксить "засветы" и "затемнения" объектов.
В GTA SA имеются так называемые "засвеченные" объекты, обладающие эффектом свечения, очень яркие и выбивающие глаза. А есть напротив очень "затемненные", которые трудно сходу разглядеть. И те и другие фиксятся как раз таки наложением белого цвета (0xFFFFFFFF).
- Задавать абсолютно любым текстурам прозрачность.
Никогда не задумывались приукрасить окно красивым, полупрозрачным тюлем или сделать реалистичное, не мультяшное стекло, т.к. дефолтные текстуры таковых отсутствуют?
В серверном редакторе данная функция реализована следующим образом:
Отдельную благодарность выражаю "скриптеру", создавшему этот TextDraw с "подсказкой", вводящей в заблуждение! Так и хочется в руки насрать.. А вам же ребята настоятельно рекомендую на нее внимания не обращать!
Задается цвет не с помощью привычного нам RGB или RGBA формата, а с помощью ARGB. Уж кто-кто, а скриптер должен был это знать, т.к. данный формат используется в Pawno, JavaScript и т.д. Я не стану углублять вас в терминологию, а вкратце поясню за данный формат для общего развития. Значение цвета в виде ARGB указывается в шестнадцатеричном формате, где каждая пара цифр представляет по порядку значения каналов Alpha, Red, Green и Blue:
"0x" в начале - префикс, который не оказывает влияния и на который не нужно обращать внимания. Чтобы задать цвет максимально точно, нужен конвертер, а для наших скромных задротских задач сойдет таблица стандартных цветов, без использования альфа-канала:
В данной таблице значения указаны с префиксом "#" в начале, в нашем случае, его нужно заменить на "0x". Значение альфа-канала задается значением от 0 до 255. Чем меньше значение альфа-канала, тем более прозрачен цвет.
Кстати, не так давно опытным путем я выявил интересный факт: если не затрагивать альфу, задать любое значение цвета и в конце дописать любое числовое значение, то текстура приобретет эффект лёгкой, еле заметной прозрачности, которой невозможно добиться выставлением значения альфы.
Я до конца не понимаю чем это может быть вызвано, правильно ли и можно ли так делать, но то что это работает - факт!
Если в результате наложения цвета на объект вы столкнулись с неожиданным результатом в виде почернения объекта, то не пугайтесь! Это значит, что данный объект не поддерживает наложения цвета, таких объектов не много, но они есть. К сожалению, с подобными объектами вы ничего не сможете сделать, придется их оставить как есть, максимум - ретекстурить.