Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Задачка по блендингу (3 стр)

Задачка по блендингу (3 стр)

Поделиться

Страницы: 1 2 3

=A=L=X=Постоялецwww10 мая 20178:10#30
Suslik
> можно считать так, как удобнее с точки зрения реализации.

А, ну тогда смотри как можно сделать, похоже на то, что я писал в самом начале.
Во первых - никаких градиентов розового. Пиксель или розовый (color key) или нет. Конкретная комбинация цвета и только она даёт эффект.
Во время ручной интерполяции делается так - розовый цвет просто считается всего 100%-ой альфой и альфа всё так же интерполируется как обычно. Но цветовые составляющие розовых пикселей отбрасываются и не фигурируют в интерполяции цветовых компонент - так что если цветной тексель граничит с розовым, то он автоматически, без прочих эффектов размажется в прозрачный цвет градиентно.
P.S.
Собственно разница между тем что я предложил сразу только в том, что обрезка не гладкая, а растворение в альфе.

Правка: 10 мая 2017 8:17

HolyDelПостоялецwww10 мая 201711:20#31
как я понимаю, надо копать в сторону пятиканальных текстур.
например хранить две альфы отдельно в b и a каналах, а rgb составляющую ужать в какой-нибудь yuyv.
foxesПостоялецwww10 мая 201721:02#32
HolyDel
> например хранить две альфы отдельно в b и a каналах
16 битный цвет от оставшихся rg, или использовать R и G как каналы описывающие градиентно 2 объектa с заданными цветами Сolor1*R и Color2*G.
Во втором случае A и B будут свободные, то есть 4 разноцветных объекта. То есть будет 4 альфа канала.  Если только в задаче не будут использоваться разноцветные объекты.
Ну или сделать атлас, и запихивать туда хоть 1000 вариантов всяких миксов или текстур. Также как и в 3 катальную текстуру положить одну часть картинку, другую 3 канала альфы.

Правка: 10 мая 2017 21:10

Kurono267Постоялецwww11 мая 20174:22#33
Suslik
Есть странная мысль, но что если взять color key и рассматривать остальные цвета как проекцию на данный вектор(Могу ошибаться в терминах).
Грубо говоря взять и перевести все цвета в пространство где color key базовый вектор,
По итогам имхо, обычный dot должен сработать, находим dot между color key и цветом, и блендим на его основе.
Будут косяки когда цвета схожи с color key'ем, но тут уже должно спасти некоторое пороговое значение для dot'а.

Правка: 11 мая 2017 4:38

SuslikМодераторwww11 мая 20174:47#34
Kurono267
ты предлагаешь что-то вроде разницы цветов по сути. то есть вырезать цвета не строго равные color key, а вырезать по плавной маске, у которой прозрачность тем больше, чем больше цвет похож на color key. если я правильно понял, то на чём-то таком я сейчас остановился пока.
andreyuПостоялецwww25 мая 201716:12#35
Suslik
> Спрайты на всех этапах рендерю я сам и могу их запекать так, как мне вздумается
А почему тогда нельзя избавиться от "color key" на этом этапе?

Страницы: 1 2 3

/ Форум / Программирование игр / 2D графика и изометрия

2001—2017 © GameDev.ru — Разработка игр