Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Herni transformace

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Herni transformace

Autor: Laethnes

19:11:00 09.09.2008

Mno, mě osobně při začátcích pomohlo uvažovat takto: mám klasický souřadný systém. Pomocí gluLookAt() si nastavím kameru. Pak si představím, že mám imaginární kurzor, kam se ukládají objekty a ten měním přes glTranslate a Rotate (takže implicitně ukazuje na [0,0,0]).

Napr;

// tento kod postavi zed 10x100

gluLookAt(...);

for(int i = 0; i < 10; i++)
{
// ukladani a nacitani matice je lepsi, nez skladana translace:
// snadno dochazi k drobnym chybam a nepresnostem...
glPushMatrix();

glTranslatef(i*10.0, 0.0, 0.0);

NakresliKostku();// ma rozmery 10x10x10

glPopMatrix();
}

Citovat příspěvek

 

Re: Herni transformace

Autor: Derec

17:02:17 11.08.2008

Ahoj,

doted jsem se jeste zabyval dokoncovanim parseru modelu, takze jsem se jeste nestihl temtio transformacemi zabyvat - chystam se na to ted.

Diky za rady, Derec

Citovat příspěvek

 

Re: Herni transformace

Autor: Eosie

20:43:15 09.08.2008

Jako start doporučuji:
http://nehe.ceske-hry.cz/cl_gl_matice.php
http://nehe.ceske-hry.cz/cl_gl_matice2.php
(na tom webu je jeden článek ode mě - ten jsem psal, když jsem byl ještě nezkušený, berte to s rezervou ;))

Samozřejmě nejlepší je absolvovat kurz lineární algebry na vysoké škole (zaměřit se na lineární a afinní transformace).

Vřele doporučuju nepoužívat maticové operace v OpenGL (LoadIdentity, Rotatef, Translatef, Scalef, Ortho, Perspective, ...), ale dávat tam vlastní matice přímo pomocí LoadMatrixf. Je to docela dobrý způsob, jak si otestovat korektnost vlastních maticových výpočtů. Později to tak stejně budeš muset dělat, pokud budeš používat shadery a budeš chtít udělat něco složitějšího (tam pak budeš používat buď glProgramLocalParameters4fvEXT nebo glUniformMatrix4fv).

Až pochopíš transformace pomocí matic, doporučuju začít s quaterniony - jedná se o velmi elegantní reprezentaci rotace a umožnují plynule přecházet mezi dvěma různými rotacemi (s maticema to nejde, s reprezentací pomocí Eulerových úhlů to jde, ale není to tak flexibilní).

Citovat příspěvek

 

Re: Herni transformace

Autor: j.h

17:26:28 09.08.2008

Pochopil jsi to dobre a nic prepocitavat nemusis. Ty transformace se provadeji postupne od nejvyssi, takze nejdriv se model posune na svoji pozici (nactenou ze souboru, treba [1, 0, 0]), pak se provede transformace kamery. Takze kdyz hrac stoji na [2, 0, -1] a kamera nebude nikam otocena, tak model uvidi na [-1, 0, 1] vzhledem ke sve pozici, coz je spravne. Poradne prostuduj nehe a musi ti to byt jasny. A kdyz ne tak experimentuj, proste to zkus napsat tak jak myslis ze by to mohlo byt, spust to a uvidis co je spatne.

Citovat příspěvek

 

Re: Herni transformace

Autor: Derec

16:25:05 09.08.2008

Ten 10. NEHE tutorial jsem cetl i nekolikrat programoval. Tam se ale resi vykreslovani jenom jednoho "objektu".

Takze jestli jsem to spravne pochopil, tak se nejdrive aplikuje posun kamery (stejne jako v NEHE tutorialu) a pak se pokazde ulozi matice, (1) posune pocatek soustavy, vykresli model, a obnovi matice?

Pokud ano, je pri posouvani pocatku na pozici jednotlivych modelu (krok oznaceny 1) nutne prepocitat puvodni souradnice ze souboru (ktery jsem popisoval v prvnim prispevku), nebo se puvodni souradnice zachovaji?

Neznate nejaky dobry clanek zabyvajici se timto tematem?

Dekuju Derec

Citovat příspěvek

 

Re: Herni transformace

Autor: JSH

12:59:45 09.08.2008

Jak se dělá s kamerou je popsané třeba v nehe 10.(http://nehe.ceske-hry.cz/tut_10.php)
Při vykreslování objektů se pak po nastavení kamery uloží matice(glPushMatrix), přidá se posun na správné místo(glTranslate, glRotate, ...), vykreslí a posun se zruší(glPopMatrix).
Práci s maticemi každopádně nastuduj. Na maticích je celá 3D grafika postavená a jsou velice elegantní.

Citovat příspěvek

 

Herni transformace

Autor: Derec

9:13:41 09.08.2008

Ahoj, zacal jsem s kamaradem vytvaret 3D hru.

V soucasne dobe mame par .obj modelu (model hradby, model veze, model brany, atp.) - kazdy model ma pocatek souradnic zhruba uprostred podstavy. Dale mame soubor, ve kterem jsou popsane jejich (x, y, z) souradnice v prostoru.

Tzn. pokud by "hrac nechodil", tak by se pri renderovani sceny jednoduse pro kazdy model posunul pocatek soustavy souradnic na polohu (x, y, z) danou souborem a model se vykreslil. Dale by se pocatek presunul na polohu dalsiho modelu atd.

Bohuzel, pokud umoznime hraci pohybovat se svetem a otacet se, tak uz souradnice ze souboru nebudou platne (osy se pootoci).

Jaky je nejlepsi a nejzchudnejsi zpusob implementace takoveto kamery? Mam si nastudovat praci s maticemi a pak zjistit, jak se to resi pomoci nich, nebo existuje elegantnejsi reseni?

Dekuju Derec

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: