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:



QuadTree_a_heightMap

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: QuadTree_a_heightMap

Autor: nou

21:29:06 21.06.2009

ak budes chciet vetsi vykon tak aj tak budes musiet pouzit VBO a to je jednozmerne pole. potom aj indexy budes moct mat v jednom velkom buffery.

Citovat příspěvek

 

Re: QuadTree_a_heightMap

Autor: Mirekk

17:07:01 21.06.2009

Jo já jsem se nad tím teďkom trochu více zamyslel, čili jestli je můj předpoklad totožný s vašim nápadem, tak proměnné minX, minZ a maxX, maxZ mi určuje rozměry potomka roota. Poté mi stačí tedy jestli daného potomka vidím a pokud ano, pak ho vykreslit třeba takto:

for(x=minX; x for(y=minZ; y .
.
.
Doufám, že tak nějak by to mohlo být, ihned jak budu mít příležitost, vyzkouším.
A ještě co jsem se chtěl zeptat, je lepší udržovat výšky ve dvourozměrným poli, nebo v jednorozměrným?
Jelikož právě píši jakýsi editor, tak z pohledu generování terénu nějakým algoritmem je pro mne jednodušší generovat výšky do dvou rozměrnýho pole, má pak cenu toto pak transformovat do jednorozměrnýho? Mám to vyzkoušený při vykreslování takto aniž by se nějak zvýšily paměťové či výpočetní nároky, ale jen mě zajímá jestli je to v nějakém směru výhoda.

Díky

Citovat příspěvek

 

Re: QuadTree_a_heightMap

Autor: Mirekk

15:48:49 21.06.2009

Ano přesně tak jsem měl udělanou tu třídu plus ještě nějaký proměnný ohledně toho jestli je uzel dělený,... což je v tuto chvíli nepodstatné. Ale přesně takto jsem postupoal také, nicméně jsem pak nějak jasně nedokázal určit jak by se ty trojúhelníky dělily do těch potomků a následně jak by se to pak jednoduše vykreslovalo. Ale díky za odpověď, aspoň vím, že nějak takto je třeba se ubírat.

Citovat příspěvek

 

Re: QuadTree_a_heightMap

Autor: michalferko

18:26:42 20.06.2009

tak vysky mas ulozene v nejakom 2D poli tak ako to vidno v tvojom cykle. Root by teda mohol byt cele to pole, jeho 4 deti by bolo pole rozsekane na 4 casti a ich deti by boli samotne casti rozsekane takisto. Teda jeden uzol by vyzeral takto nejako:
[code]
class QuadTreeNode
{
int minX;
int minZ;
int maxX;
int maxZ;
QuadTreeNode* children[4];
};
[/code]
a tie inty by vlastne boli ohranicenia v ramci tvojho 2D pola.

Citovat příspěvek

 

QuadTree_a_heightMap

Autor: Mirekk

15:38:13 20.06.2009

Zdravím,
mám dotaz ohledně quad tree aplikované na výškovou mapu. Nemám problém v algoritmu spíše v principu uložení bodů v paměti.
V mé původní verzi programu načítám výškovou mapu a do třídy Point3D ukládám složky x, y, z. Na základě x a z pak snadno rozhodnu do které buňky bude trojúhelník patřit.
Ale složky x a z při renderování není potřeba ukládat, udělám li si klasicky dva cykly, tak x a z jsou právě aktuální hodnoty cyklů, myšleno takto:

for(x=0; x for(z=0; z glBegin(GL_TRIANGLE_STRIP);
glVertex3f(x, height[x][z], z);
glVertex3f(x+1, height[x+1][z], z);
glVertex3f(x, height[x][z+1], z+1);
glVertex3f(x+1, height[x+1][z+1], z+1);
.
.
Čili stačí mít v paměti uložené výšky. A teď by mě zajímalo, zda-li nějak rozumně jde pouze z výšek udělat QuadTree. Snažím se už nějakou dobu na to nějak přijít a stále se nedaří. I když jsem náhledl do cizích kódů, tak jsem nenalezl to co hledám.

Díky za radu

Citovat příspěvek

 

 

 

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

Uživatelské jméno:

Heslo: