Skocz do zawartości

Silnik 3D


Rekomendowane odpowiedzi

Zainteresowałem się ostatnio tworzeniem gier 3D, chciałbym poćwiczyć swoje umiejętności, ale nie wiem jaki silnik 3D wybrać. Ten wbudowany w Game Maker'a 8 "d3d" prezentuje się całkiem sympatycznie, ale domyślam się, że nie jest z najwyżej półki i jego zasób funkcji oraz efektywność mogą być ograniczone. Mam też do wyboru nowy Game Maker: Studio, ale jako że ostatnimi czasy w ogóle nie śledziłem nowości ze świata GM'a, nie mam o nim zielonego pojęcia. Jest dla mnie opcją, ponieważ na bank jest tam jakiś nowszy, może zupełnie inny wbudowany silnik 3D. No i ostatnia możliwość - biblioteka DLL z silnikiem 3D, lecz nie wiem jaką wybrać. No nic, proszę o jakieś pomocne porady. :)

Odnośnik do komentarza
Udostępnij na innych stronach

GM ma przestarzały silnik 3D, ten w GMS także. Nie nie ma żadnego wsparcia modeli ze szkieletową animacją. Nie ma żadnych funkcji z kolizjami czy fizyką więc wszystko musisz robić od zera. Engine światła też jest do bani bo wspiera mało świateł na raz i nie ma dynamicznych cieni. Co nie znaczy że nie idzie ich zrobić. Widziałem na forum yoyo próby zrobienia dynamicznych cieni na surface ale wiadomo to GM więc prędkość działania takich rozwiązań jest zerowa xD

Odnośnik do komentarza
Udostępnij na innych stronach

GMogre nie jest już wspierane i nie działa dobrze w GM8+ robiłem tego ponga na nim w GM8.1. I mogę powiedzieć tylko tyle że praca z GMogre na GM8+ to istny horror xD

Mi np często się zdarzało że fizyka się wyłączała z niewiadomych przyczyn i co trzeba było zrobić? Przenieść pliki z materiałami do innego folderu lol.

 

Ale jest jeden plus robienia gry 3D w GM. Jak byłeś słaby z matematyki i fizyki w szkole to masz teraz okazje się tego nauczyć bo bez tej wiedzy ( szczególnie trygonometrii ) nic nie zrobisz.

Odnośnik do komentarza
Udostępnij na innych stronach

No to już miałem zrobione, światło normalnie pada na przykład na blok, ale na ziemię już nie.

 

GML
d3d_start();

d3d_set_lighting(true);

d3d_set_perspective(true);

 

d3d_light_define_point(1,x,y,100,512,c_white);

d3d_light_enable(1,1);

 

GML
d3d_transform_set_identity();

d3d_transform_add_rotation_z(image_angle);

d3d_transform_add_translation(x,y,0);

d3d_draw_block(-8,-8,0,8,8,16,background_get_texture(bgHero),3,3);

d3d_transform_set_identity();

 

d3d_draw_block(100,100,1,room_width-100,room_height-100,2,background_get_texture(bgGrass),ceil(room_width/35),ceil(room_height/35));

Odnośnik do komentarza
Udostępnij na innych stronach

Po 1 światło w gm działa na normalach więc prawdopodobnie po prostu krawędzi floora jest za daleko od światła i dlatego nie jest oświetlona

 

plus bodajże właśnie normale d3d_floor są ustawione na odwrócone tzn że jest to w pewnym sensie (jeśli chodzi o oświetlenie) bardziej sufit niż floor :P

(Nie ma to splecionego wpływu na point light ale na direction light już bardziej)

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...