Autor Wątek: [SFML] Kopiowanie obrazków z alpha  (Przeczytany 1823 razy)

Offline steckel

  • Użytkownik

# Listopad 16, 2011, 01:36:02
Witam!
Próbuję skopiować 2 obrazki, w których występuje przeźroczystość na przeźroczysty obraz, aby go później wyświetlić:
sf::Image screen(400,300,sf::Color(0,0,127,0));
screen.Copy(img,50,50,sf::IntRect(0,0,200,200),1);
screen.Copy(img,150,50,sf::IntRect(0,0,200,200),1);
Niestety nic się nie wyświetla. Gdy wyłączam przeźroczystość przy kopiowaniu to jeden obrazek zasłania drugi tam, gdzie powinien być przeźroczysty, a jeśli włączę ustawię alpha na 255 przy tworzeniu docelowego obrazka to wyświetla się mi niepożądane tło.
Wie ktoś jak rozwiązać ten problem?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Kos

  • Użytkownik
    • kos.gd

# Listopad 16, 2011, 08:45:46
Uh, blending constant alpha*texture alpha*colour? Abstrahując od SFML, da się to w ogóle zrobić bez shaderów na oglu?

Offline KoXXeR

  • Użytkownik

# Listopad 16, 2011, 22:14:31
W SFML mniejsza wartość to większa przeźroczystość. Jeszcze jedno img.SetBlendMode(sf::Blend::Alpha);   to wszystko.

Offline steckel

  • Użytkownik

# Listopad 16, 2011, 23:01:25
Nie znalazłem tej metody w klasie sf::Image, jest ona w sf::Sprite, ale wyczytałem, że jest to domyślny tryb.

Offline niba

  • Użytkownik

# Listopad 17, 2011, 00:25:52
Z tego co pamietam ostatni parametr w copy lub przy konstruktorze sf::image to boolean czy kopiowa alfe

Offline steckel

  • Użytkownik

# Listopad 17, 2011, 00:35:52
Tak, pisałem już, że próbowałem zmieniać ten parametr.

Offline gawron89

  • Użytkownik