[SFML] Przyciemnianie obrazu ekranu
Ostatnio zmodyfikowano 2012-08-11 21:55
Admixior Temat założony przez niniejszego użytkownika |
[SFML] Przyciemnianie obrazu ekranu » 2012-08-11 16:30:37 Witam mam następujący problem. Robię grę i potrzebuję w niej zrobić przyciemnianie obrazu (podając np kanał alfa). Aktualnie jest zrobione tak: wczytuje obrazki; Tworze obrazek o rozdzielczości tła koloru czarnego; ustawiam na niego Sprita. i jeżeli kanał alfa się zmieni to wywołuje funkcje SetColor(Color(0,0,0,alfa)); problem jest w tym że przy rysowaniu: wnd.Draw(obrazki...); wnd.Draw(przyciemnienie); //tego wnd.Draw(obrazek_jasny);
cały obraz zostaje zmieniony. Natomiast ja przy przyciemnianiu co klatkę zmieniam o 1 kanał alfa (25 frame limit)(dla rozdzielczości FullHD trwa to trochę i widać takie delikatne lagi ekran tak jakby dzieli się na 3 części i na przemian odświeża).
A więc czy jest jest sposób żeby zaciemnić cały ekran nie zmieniając przy tym całego obszaru pamięci(o ile się tak dzieje w przypadku SetColor) Funkcja z SFML lub z opengl (czy SDL, nie wiem dokładnie z czego składa się SFML) która by wypełniłaby cały ekran jednym kolorem( czarnym z kanałem alfa). Coś typu FillWindow(r,g,b,a,left,up,down,right); |
|
m4tx |
» 2012-08-11 16:34:24 wnd.Draw( obrazki...); wnd.Draw( przyciemnienie ); wnd.Draw( obrazek_jasny ); "Przyciemnienie" powinieneś raczej rysować na końcu? :P |
|
akwes |
» 2012-08-11 16:45:18 czarny sf::Shape ? |
|
waxx |
» 2012-08-11 17:27:13 po prostu na samym koncu renderuj czarny prostokat z malym opacity ^^ |
|
akwes |
» 2012-08-11 17:35:31 @waxx, no ale on napisał, że tworzy czarny obraz i zmienia jego alphę w jego kolorze ;>
Może to kwestia monitora? U mnie na starym LCD często ruszające się obiekty "smużyły" i długo szukałem problemu. Aż przeniosłem okno na drugi monitor... |
|
Admixior Temat założony przez niniejszego użytkownika |
» 2012-08-11 20:35:08 Dobra kolejność jest gdyż chcę aby jeden obiekt był rysowany odpowiednio jasno. Co do Shape to testowałem i ten sam efekt. A co ciekawsze: Mam monitor 1600x900. Jak dam w oknie to nie ma takiego defektu (że dzieli monitor na 3 częśc). A jak na fullscreen w tej samej rozdzielczości to ów jest. Może to jakaś opcja karty graficznej? Która ma mniej obciążać laptopa gdy wykryje że jest gra uruchomiona? |
|
akwes |
» 2012-08-11 21:55:06 Podeślij apkę skompilowaną na fullscreen to obczaję.
Albo po prostu stwórz nowy projekt, z samym ściemnianiem i zobacz czy będą podobne rzeczy się działy. |
|
« 1 » |