Skocz do zawartości

3D początek


Pieter

Rekomendowane odpowiedzi

ja sie znam i moge zrobić przykład, pod warunkiem że zapłacisz :D A tak na serio zaraz coś zrobie i dam.

 

 

Nie chce mi się robić przykładu, ale dam ci kod

x=hero.x-cos(degtorad(hero.direction))*odleg;
y=hero.y+sin(degtorad(hero.direction))*odleg;
direction=point_direction(x,y,hero.x,hero.y);

Daj to w obiekcie kamery, hero to obiekt za którym ma podążać kamera, a odleg to odłegłość.

 

Albo weź sobie mój stary silniczek gry wyścigowej, zaczął on powstawać na konkurse, ale mi się odechciało, zapewne m kilka błędów, ale powinien ci się przydać. Powiem tylko że zależnie jaką wartość wpiszesz zmiennej global.kszt (w obiekcie kszt1 w create), inaczej będzie wyglądał pojazd. Plik racer.gm6

http://www.gmclan.org/up863.html Co do twórców, jeżeli ktoś użyje tego silniczka, niech napisze że tylko troche pomogłem.

Odnośnik do komentarza
Udostępnij na innych stronach

tutaj jest przerobiony twoj plik, jest w nim ladna kamera tpp. Zrobilem to 'po swojemu' wiec jest tam trohe zmian.

 

Co do ludzi znajacych sie na 3d w gm, to wydaje mi sie ze zaliczam sie do nich.

 

Edit. Miscaner, co do twojego 'silnika' to powiem tylko tyle, ze uzywanie modeli zamiast d3d_draw... daje znaczny wzrost wydajnosci, zwlaszcza przy sporej ilosci wyswietlanych obiektow.

W tym przykladzie dla Pietera nie skorzystalem z modelu, gdyz wyswietlany jest bardzo prosty obiekt w postaci jednej sciany, ale przy wiekszych modelach powinno sie z nich korzystac.

Odnośnik do komentarza
Udostępnij na innych stronach

Sorki za offtopa ale

Edit. Miscaner, co do twojego 'silnika' to powiem tylko tyle, ze uzywanie modeli zamiast d3d_draw... daje znaczny wzrost wydajnosci, zwlaszcza przy sporej ilosci wyswietlanych obiektow.
To jak nałożyć teksture na taki model.

d3d_transform_set_identity();
d3d_transform_add_translation(x,y,0);
d3d_primitive_begin_texture(pr_trianglelist,-1);
d3d_vertex_texture(0.00,5.96,52.91,0.03,0);
d3d_vertex_texture(1.67,3.99,0.66,0.49,0);
d3d_vertex_texture(1.00,6.53,52.91,0.03,0);
d3d_vertex_texture(0.00,5.96,52.91,0.03,0);
d3d_vertex_texture(0.00,3.06,0.66,0.49,0);
d3d_vertex_texture(1.67,3.99,0.66,0.49,0);
d3d_vertex_texture(0.48,3.36,-16.06,0.64,0);
d3d_vertex_texture(0.00,3.15,-21.08,0.69,0);
d3d_primitive_end();
d3d_transform_set_identity();

Odnośnik do komentarza
Udostępnij na innych stronach

Ale burdel sie zrobił ;p Wydaje mi się, że można to zrobić tak: rysujesz cały świat w 3d, drogę, drezwka, itp ;p Później tworzysz obiekt gracz, który jest płaski, ma jakiegoś tam sprita, i obraca się do kamery (ten kod, co podał Mincaser). W sumie wystarczy trochę pogłowkować i powinno wyjść :)

Odnośnik do komentarza
Udostępnij na innych stronach

hmm a gdzie się uczyliście 3D? Jestem wyżej zaawansowanym użytkownikiem można powiedzieć średnio/wyżej i chce się też tego nauczyć...
Help + tutoriale + przykłady(zagraniczne) :)

Tak naprawdę, 3D w GMie nie jest w cale takie trudny ;) Jedyną niedogodnością jest pamięciożerność.

Odnośnik do komentarza
Udostępnij na innych stronach

Zgadam się w 100% z Dark Maximalem, w 3d w gm mozna by było stworzyć naprawde bardzo dobre gry, gdyby nie pamęciożerność, np. moje Golden Curse, gdyby nie to że jest bardzo pamięciożerne, postarał bym się o owiele lepszą grafikę, dlatego mam na dzieje że w nowym gm 3d będzie lepsze. 3D w gm nauczyłem się głównie na podstawie prób i błędów, troche korzystałem z helpa i waszej pomocy. Offtopic się zrobił.

Odnośnik do komentarza
Udostępnij na innych stronach

@miscaner

A w czym problem? Jezli rozumiesz jak uzyc xtex i ytex, to nie widze nic na przeszkodzie zeby to oteksturowac.

Pozatym kod tego 'modelu' nie jest prawidlowy gdyz ilosc vertexow powinna byc podzielna przez 3, przy pr_tranglelist.

 

Pieter, zobacz tutaj, te tutoriale powinny ci pomodz. Ja niestety zbyt pozno je 'znalazlem' i uczylem sie sam(z helpa), zaczynajac od przykladu fps z gamemake.nl.

Odnośnik do komentarza
Udostępnij na innych stronach

Dokladniej tu masz same bardzo proste zeczy zrobione. A jezeli nie rozumiesz pierwszych 2-3 przykladow to...... sam nie wiem czy moze byc cos prostrzego.

 

@blackmaul

A co ty chciales? postaw_sciane(tam,czerwona)? Trzeba po prostu okreslic wszystkie punkty z ktorego do ktorego miejsca ma 'stac'. Gdyby bylo prostrze, to mialoby mniejsze mozliwosci.

Pozatym sciana d3d_(model/draw)_wall to juz jest skrocenie bo normlanie to wyglada mniejwiecej tak

d3d_primitive_begin_texture(pr_trianglefan,textura)
d3d_vertex_texture(x1,y1,z1,1,0)
d3d_vertex_texture(x2,y2,z1,1,1)
d3d_vertex_texture(x1,y1,z2,0,0)
d3d_vertex_texture(x2,y2,z2,0,1)
d3d_primitive_end()

tylko, ze jeszcze normale, kolory, alpha i costam jeszcze...

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ę...