Значит, что происходит, когда 4-ый движок встречает такую decal-текстурку (рис № 1):
1. За ее обработку перед выводом в frame buffer (FB ну т.е. на экран) отвечает такой фрагмент в decals.mtr:
{
blend gl_zero, gl_one_minus_src_color
map textures/decals/blue_on_black_d.tga // (по смыслу это типа кровь, но почему голубая? См. далее)
}
2. Общая формула для обработки:
.tga -> src*(blend parm1) + dst*(blend parm2) -> FB
.tga имеет разрядность 24bit, т.е. три канала (RGB ) по 8bit каждый.
3. Значения:
gl_zero = 0 (константа)
gl_one_minus_src_color = FFh - R(x), FFh - G(y), FFh - B(z),
где:
gl_one_ = FFh = 255
_src_color (голубой) = R(x), G(y), B(z) = R(103), G(248), B(248)
_src_color (черный) = R(x), G(y), B(z) = R(0), G(0), B(0)
Таким образом:
gl_one_minus_src_color (для голубого) = R(152), G(7), B(7) - это бордовый.
gl_one_minus_src_color (для черного) = R(255), G(255), B(255) - это белый.
4. Подстановка:
.tga -> src*(blend parm1) + dst*(blend parm2) -> FB
.tga -> src*(gl_zero) + dst*(gl_one_minus_src_color) -> FB
.tga -> src*(0) + dst*(255 - src_color) -> FB
.tga -> dst*(R(152), G(7), B(7)) -> FB - этот пискель инвертирован из голубого в бордовый и перемножен с пикселом из FB (dst)
.tga -> dst*(R(255), G(255), B(255)) -> FB - этот пискель инвертирован из черного в белый и перемножен с пикселом из FB (dst)
5. Результирующая картинка для вывода - см. рис. № 2.
Т.е. обычная инверсия 8-битного цвета с использованием FFh (вспомни цикличность в ZX Spectrum).
N.B. В GIMP достигается путем подготовки нужной картинки (рис.2), затем "Цвет" - "Инвертировать". На выходе - рис.1.
N.B.-2: Сквозь это пятно будут просвечивать элементы поверхности, на которую оно наносится. Как - см. "Умножение цветов RGB".
-
Скрыть объявление
Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.
-
Скрыть объявлениеЕсли Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.
Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
- Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
- Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
- Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
- Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
С уважением, администрация форума Old-Games.RU
Комментарии
Сортировать комментарии по