Diskuze: 3D rotace objektů

Ostatní jazyky GameMaker GameMaker 3D rotace objektů

Avatar
husarik.marek:

Nevíte někdo, jak rotovat model,který je vytvořen primárně v Game makeru z jeho vlastních 3D elementů, nikoliv importovaný jako "objekt"?
Pomocí

d3d_transform_add_rotation_z(rotace);

umím rotovat každý tvar individuálně kolem své osy, ale ne celý model dohromady.
Na youtube je mraky tutoriálů, ale všechny jsou o tom, jak něco vymodelovat v blenderu (nebo jiném 3D) a pak naimportovat jako hotový objekt.
Díky

 
Odpovědět 27.1.2014 21:23
Avatar
marta9191
Člen
Avatar
marta9191:

Myslíš,aby rotovala kamera nebo nějaký objekt??

 
Nahoru Odpovědět 30.1.2014 16:10
Avatar
TomBen
Redaktor
Avatar
Odpovídá na marta9191
TomBen:

Píše "rotovat model", tak zřejmě nemyslí kameru. Mimochodem GM není pro práci s 3D celkově vhodný nástroj. 3D funkce jsou tam jenom do počtu. Doporučuji zkusit v něm dělat jen věci, na které je dobrý.

Editováno 30.1.2014 23:16
Nahoru Odpovědět 30.1.2014 23:16
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
chain
Redaktor
Avatar
Odpovídá na husarik.marek
chain:

Ako uz naznacil TomBen, gamemaker nie je priamo robeny na 3D hry - nepozna 3rozmer(nechape premennu "z" ako moznu z-tovu suradnicu). Na druhej strane 3D hry nie su vzdy o 3rozmeroch ale o iluzii vykreslenia takehoto priestoru;)
Ak chces rotovat celou sadou objektov, je to trosku narocnejsie na priestorovu predstavivost.
Vsetky tvary musia byt definovane pomocou toho isteho x,y,z a podla nich objektom rotujes.

d3d_transform_set_i­dentity();

//budeme rotovat podla z-osi - podla smeru pohybu objektu(direction)
d3d_transform_ad­d_rotation_z(di­rection+90);

//definovane stredu suradnicovych osi :D GML nepozna skutocny 3rozmer:D
d3d_transform_ad­d_translation(x,y,0);

//kreslenie objektov uz automaticky pocita so stredom a zadavaj body uz len vo vzdialenostiach
d3d_draw_block(-2,-1,12,+2,+1,6,­sprite_get_tex­ture(sprite,0),1,1);
d3d_draw_ellipsoid(-2,2,11,0,0,9,­sprite_get_tex­ture(sprite,0),1,1,20­);
d3d_draw_ellip­soid(2,2,11,0,­0,9,sprite_get_tex­ture(sprite,0),1,1,20­);
d3d_draw_block(-1.8,-1,15.8,+1.8,+1,12­.1,sprite_get_tex­ture(sprite,0),1,1);
d3d_draw_block(-2.1,-1.1,16.1,+2.1,+0­.9,12,sprite_get_tex­ture(sprite,0),1,1);
d3d_transform_set_i­dentity();

Viem ze som nenapisal nic nove;) len pre istotu...
Pre tych co im to nic nehovori ale chcu to skusit:
http://www.forum.velkejchytrak.cz/viewtopic.php?…

 
Nahoru Odpovědět 1.2.2014 11:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.