Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.X] Obramowania dwóch przecinających się elips

Ostatnio zmodyfikowano 2024-10-29 21:58
Autor Wiadomość
tBane
Temat założony przez niniejszego użytkownika
[SFML 2.X] Obramowania dwóch przecinających się elips
» 2024-10-28 20:19:22
Cześć wszystkim!

Załóżmy, że mam dwa obiekty przecinające się sf::CircleShape i definiuje dla nich kolor (półprzeźroczysty) wypełnienia oraz kolor obramowania (ćwierćprzeźroczysty). Jak w prosty sposób wygenerować te kształty w taki sposób, by ich obramowanie było zawsze widoczne tzn nie zasłaniane przez drugi kształt ?

P-181775
DejaVu
» 2024-10-28 21:00:02
Wydaje mi się, że w grach 2D zaznaczanie 'renderuje' się 'pod' jednostkami, czyli najpierw renderujesz zaznaczenia, a potem dopiero modele/obiekty.
P-181777
tBane
Temat założony przez niniejszego użytkownika
» 2024-10-28 21:05:32
Tak, ale chciałbym by te zaznaczenia zachowywały się tak jak na grafice w poprzednim poście
P-181778
DejaVu
» 2024-10-28 22:43:47
ta grafika jest nieprawidłowa, bo jak dwa pół przezroczyste zielone 'tła' się na siebie nałożą, to obszar wspólny będzie ciemniejszy (lub jaśniejszy) w zależności od kolorów i tła. jeżeli obramowanie ma być 'zawsze' widoczne to rysuj je osobno. Najpierw okręgi z tłem bez obramowania, a potem okręgi bez tła z obramowaniem.
P-181779
tBane
Temat założony przez niniejszego użytkownika
» 2024-10-29 10:47:21
Nie do końca mi o to chodziło. Chciałbym aby część wspólna miała taki sam kolor jak każda z elips. Żeby jedna elipsa nie była rysowana na drugiej tylko tak jak na obrazku. Oczywiście obie elipsy są półprzeżroczyste.
P-181780
pekfos
» 2024-10-29 21:53:34
Możesz wyrenderować tła elips, potem na nich osobno obramowania, wszystko bez kanału alfa, albo z blend mode ignorującym alfę i wyrenderować to do tekstury sf::RenderTexture wielkości ekranu. Potem tą teksturę renderujesz na ekranie.
P-181785
tBane
Temat założony przez niniejszego użytkownika
» 2024-10-29 21:55:04
Kurde, no właśnie potrzebuję kanał alfa :-/
P-181787
pekfos
» 2024-10-29 21:58:02
Jeśli wszystko ma być równie przezroczyste, najprościej renderuj na teksturę bez alfy, następnie całą teksturę renderujesz jako sprajt z jednolitą wartością alfa. Jak mają być różne poziomy alfy, to renderujesz na teksturę z ignorowaniem alfy (czyli dalej jest, ale nie ma mieszania kolorów i nadpisujesz piksele), potem renderujesz teksturę bez zmian. Chodzi o to żeby w pierwszym kroku nie mieszać kolorów, inaczej jak Deja Vu napisał będziesz miał inny kolor zależnie od ilości warstw tła i krawędzi.
P-181788
« 1 »
  Strona 1 z 1