Mateusz Nejman Opublikowano 29 Czerwca 2014 Udostępnij Opublikowano 29 Czerwca 2014 Witajcie! Mam dosyć spory problem. Robię oświetlenie do gry(3d) i gdy dam w draw czegokolwiek: GML d3d_light_define_point(1,x,y,z+8,120,c_white) d3d_light_enable(1,true) To wynik jest taki: Jak zrobić, żeby ten panel był taki jasny jak wcześniej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 29 Czerwca 2014 Udostępnij Opublikowano 29 Czerwca 2014 przed rysowaniem penelu wywołaj GML d3d_set_lighting(false) a po rysowaniu włącz spowrotem d3d_light_enable(1,true) << to włączaj jednorazowo w create jak światło ma się ciągle świecić. Nie potrzebie zwalniasz działanie gry bo masz to w draw. A i pierwszy index światła to 0 nie 1. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 29 Czerwca 2014 Autor Udostępnij Opublikowano 29 Czerwca 2014 przed rysowaniem penelu wywołaj GMLd3d_set_lighting(false) a po rysowaniu włącz spowrotem d3d_light_enable(1,true) << to włączaj jednorazowo w create jak światło ma się ciągle świecić. Nie potrzebie zwalniasz działanie gry bo masz to w draw. A i pierwszy index światła to 0 nie 1. Mam w Draw: GML d3d_set_lighting(false) d3d_light_define_point(1,obj_player.x,obj_player.y,obj_player.z+8,120,c_white) d3d_light_enable(1,true) draw_set_font(fnt_aura) draw_set_color(c_white) draw_set_alpha(1) draw_sprite(spr_HUD1,0,0,556) //Życie draw_sprite(spr_Life,0,0,492) draw_sprite_part(spr_Life,1,4,4,100,100-hp2,4,496) //Mana draw_sprite(spr_Mana,0,586,492) draw_sprite_part(spr_Mana,1,4,4,100,100-mana2,590,496) //Exp draw_sprite(spr_HUD_Exp,0,108,551) draw_sprite_part(spr_HUD_Exp,1,0,0,xp2,5,108,551) //Mapa draw_sprite(spr_map,-1,746,546) draw_sprite_ext(spr_player_map,-1,746,546,1,1,obj_player.direction,c_white,1) d3d_set_lighting(true) I dalej to samo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 29 Czerwca 2014 Udostępnij Opublikowano 29 Czerwca 2014 A bo to GMS faktycznie tam jakoś inaczej światła działały też miałem taki problem ale nie pamiętam jak go rozwiązałem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 29 Czerwca 2014 Autor Udostępnij Opublikowano 29 Czerwca 2014 I w tym cały problem. Próbowałem z Draw GUI, ale to i tak nie pomogło. Tak myślę, że to wina viewów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 29 Czerwca 2014 Udostępnij Opublikowano 29 Czerwca 2014 GML d3d_light_define_ambient(c_white) //rysuj bez świateł d3d_light_define_ambient(c_black) //rysuj ze światłem</span> Nie obiecuję, że będzie działać, nie sprawdzałem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 29 Czerwca 2014 Udostępnij Opublikowano 29 Czerwca 2014 Tak gra mu się też rozjaśni nie tylko hud :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 30 Czerwca 2014 Autor Udostępnij Opublikowano 30 Czerwca 2014 GML d3d_light_define_ambient(c_white) //rysuj bez świateł d3d_light_define_ambient(c_black) //rysuj ze światłem</span> Nie obiecuję, że będzie działać, nie sprawdzałem. Teraz mi się wszystko rozjaśniło(nawet jak dam to z c_black po rysowaniu) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 30 Czerwca 2014 Udostępnij Opublikowano 30 Czerwca 2014 Kombinuj z kolejnością eventów. Spróbuj d3d_set_lighting() włączać w innym evencie niż wyłączać, przenosić HUD do innych eventów itp. Mi się tak metodą prób i błędów udało wyłączyć oświetlenie w HUDzie. Ten system oświetlenia w GMS jest jakiś porąbany zawsze mi sprawia problemy w GM8.1 wszystko elegancko działało. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 1 Lipca 2014 Autor Udostępnij Opublikowano 1 Lipca 2014 Teraz to u mnie wygląda tak: Tylko jak chcę mieć więcej niż 8 źródeł światła to co mam robić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 1 Lipca 2014 Udostępnij Opublikowano 1 Lipca 2014 Nie można więcej niż 8 naraz, musisz sobie zrobić jakiś cwany system zarządzania oświetleniem tak by nie przekroczyć tego limitu. Co ze światłami robisz że już osiągnąłeś limit. Ja zwykle używam 2. Direction_light jako słońce, point_light jako pochodnia gracza. Btw teraz ta gra wygląda dużo lepiej :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 1 Lipca 2014 Autor Udostępnij Opublikowano 1 Lipca 2014 Ale na mapach będą jakieś źródła światła(ogniska, pochodnie) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 1 Lipca 2014 Udostępnij Opublikowano 1 Lipca 2014 No to niech tych źródeł sobie będzie więcej niż 8 ale musisz zrobić jakiś system zarządzania taki by na raz świeciło tylko 8 z nich. Lub poszukać jakiegoś rozwiązania wypalania świateł na textury. Na forum yoyogames ludziom udało się takie wypalanie świateł zrobić na surface i shaderach. Poszukaj coś w hasłach "Lighting texture bake", "Baking shadows" itp. Taki minecraft nie ma dynamicznych oświetleń, postawienie pochodni wypala textury. Edit: Coś znalazłem http://gmc.yoyogames.com/index.php?showtopic=450622 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 5 Lipca 2014 Autor Udostępnij Opublikowano 5 Lipca 2014 Jeszcze jedno pytanie: Jak mam w roomie kilka obiektów o_pochodnia to każdy będzie źródłem światła czy tylko ten pierwszy postawiony w roomie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 5 Lipca 2014 Udostępnij Opublikowano 5 Lipca 2014 Jeszcze jedno pytanie: Jak mam w roomie kilka obiektów o_pochodnia to każdy będzie źródłem światła czy tylko ten pierwszy postawiony w roomie? W GM, jak i w innych silnikach 3D, jest ograniczona liczba źródeł światła. A światło włączasz poprzez funkcję d3d_light_enable. Możesz zrobić dynamiczne przypisywanie świateł obiektom, które są relatywnie widoczne (np. przez różnicę distance pomiędzy graczem a pochodnią). W create pochodni np zmienna "lightId = 0;" i "enabled = false;", która określa ID światła i czy jest aktywne. Zaś w step można sprawdzać odległość np: GML if(!enabled && distance_to_object(objPochodnia) <= 100) { d3d_light_enable(lightId, true); // inne ustawienia swiatla jak kolor, range etc. enabled = true; } else if (enabled && distance_to_object(objPochodnia) > 100) { enabled = false; } W romie przy creation code pojedynczego obiektu można ustalać różne ID świateł do których pochodnie są przypisane. Dla optymalizacji można powielać ID świateł, ale które są daleko od siebie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się