Наложение изображений с полупрозрачными краями

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Sovn
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 23.06.2013 (Вс) 11:53

Наложение изображений с полупрозрачными краями

Сообщение Sovn » 19.09.2014 (Пт) 15:46

Хочу создать программу для рисования на базе замечательного движка SR2D, созданного Mikle.
Столкнулся с проблемой наложения PNG-изображений с полупрозрачными краями.

В Фотошопе два изображения накладываются нормально:
Photoshop.jpg

При наложении одного спрайта на другой методом Draw с параметром OpAlphaBlend верхний спрайт "растворяет" нижний спрайт в местах пересечения:
AlphaBlend.jpg

Посоветуйте, как наложить спрайт с помощью методов движка SR2D, чтобы не было этого "растворения".
У вас нет доступа для просмотра вложений в этом сообщении.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Наложение изображений с полупрозрачными краями

Сообщение Mikle » 19.09.2014 (Пт) 22:55

В Spr1 - красная полоса, в Spr2 - синяя:
Сначала готовим RGB:
Код: Выделить всё
  SprC.ClearBuffer 0
  SprC.Draw Spr1, 0, 0, OpAlphaBlend
  SprC.Draw Spr2, 0, 0, OpAlphaBlend
Отдельно готовим альфу:
Код: Выделить всё
  SprA.Draw Spr1, 0, 0, OpPaint
  SprA.Draw Spr2, 0, 0, OpMax ' тут может быть OpAdd
Объединяем:
Код: Выделить всё
  SprC.MoveByte SprA, 0, 0, ChAlpha, ChAlpha

Sovn
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 23.06.2013 (Вс) 11:53

Re: Наложение изображений с полупрозрачными краями

Сообщение Sovn » 20.09.2014 (Сб) 22:03

Уважаемый Mikle, огромное спасибо за решение проблемы и за Ваш могучий движок SR2D!

При подготовке спрайта альфы методом Draw с параметром OpMax итоговое наложение выглядит так:
AlphaBlend_OpMax_by_Mikle.jpg

А при подготовке спрайта альфы методом Draw с параметром OpAdd итоговое наложение выглядит так:
AlphaBlend_OpAdd_by_Mikle.jpg
У вас нет доступа для просмотра вложений в этом сообщении.


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList