Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
JohnyDog

Založen: 17. 08. 2007 Příspěvky: 66
|
Zaslal: 1. září 2009, 20:05:48 Předmět: |
|
|
Tak opastuj cely kod ten data soubor.
Pri vykreslovani by se idealne nemelo nic kopirovat, cili nacitat z toho souboru primo do datovych struktur ktere muzes rovnou podstrcit jako pointer - u vertexu to uz mas, muzes rovnou psat :
glVertexPointer(3, GL_FLOAT, sizeof(Vector3D),&v_verLoad[0].x);
u indexu by si mel nacitat do pole integeru. _________________
 |
|
Návrat nahoru |
|
 |
Deluxe

Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 1. září 2009, 20:11:29 Předmět: |
|
|
btw.: Nejak se mi nezda tohle:
kód: |
glDrawElements(GL_TRIANGLES, sizeof(Indicies), GL_UNSIGNED_INT, Indicies); |
proc sizeof(Indices)? Nema tam byt pocet indexu? takze sizeof(Indices)/sizeof(unsigned int)? |
|
Návrat nahoru |
|
 |
jatro.m
Založen: 29. 07. 2009 Příspěvky: 89
|
Zaslal: 1. září 2009, 20:18:02 Předmět: |
|
|
takze dobry ty vertices uz funguji ted se vrhnu na face |
|
Návrat nahoru |
|
 |
jatro.m
Založen: 29. 07. 2009 Příspěvky: 89
|
Zaslal: 1. září 2009, 20:33:41 Předmět: |
|
|
Dekuji vam vsem velice mooooooooooc moooooooooc
hej ja sem haaaaaaaaaaaaaaaaaaaaapyyyyyyyy D normalne se raduju jak male decko joooooooooooo D a hlavne dik if.thenovi jak mi byl celejch 6h napicu tak mi poradil to zamenit za GL_UNSIGNED_INT a uz to beha (jak psal johnydog nak mi to nedochazelo) ale jako mooooooooc  |
|
Návrat nahoru |
|
 |
jatro.m
Založen: 29. 07. 2009 Příspěvky: 89
|
Zaslal: 2. září 2009, 13:47:27 Předmět: |
|
|
Deluxe
nevim ted to mam pocet indexu (kostka) 12*3 a funguje to bezvadne uz mam skoro hotovy nacitani textur  |
|
Návrat nahoru |
|
 |
jatro.m
Založen: 29. 07. 2009 Příspěvky: 89
|
Zaslal: 12. září 2009, 17:04:00 Předmět: |
|
|
zdarec, tak sem se pohl a resim texturovani docela by me zajimalo jak se toto resi vzdycky jsem byl zvyklej to resit pres for ale tady se to neda pouzit kvuli vertex arrays
na obrazku je nakresleny jak to vypada v milkshape (texturovani)
urcite uz ste to nekdo resil tak sem hodte svuj nazor.
Diky Jatro |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 12. září 2009, 17:55:12 Předmět: |
|
|
Hi. Obrázek nechápu a v tvém příspěvku není nikde popsané, co myslíš. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
Deluxe

Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 12. září 2009, 18:00:20 Předmět: |
|
|
Jediny co "asi" chapu z obrazku je ze mas prehozeny RGB a BGR, pokud teda ta textura ma byt cervena. Akorat pak netusim co ma znamenat text prispevku. |
|
Návrat nahoru |
|
 |
jatro.m
Založen: 29. 07. 2009 Příspěvky: 89
|
Zaslal: 12. září 2009, 18:14:09 Předmět: |
|
|
hehe sem se blbe vymackl proste ze na levym obdelniku ma bejt textura treba cervena a na pravym treba zelena.... a problem je v tom jak rict fci glBindTexture(...) kde ty textury ma
jinak textury sou ulozeny v poli ktery je cislovany (UINT textura, 1,2,3) a ja potrebuju mu ukazat ze tam ma mapovat predtim jsem to delal pres for() ale tady se to neda pouzit kvuli vykresleni pres Vertex arrays (je to v screenu)
Deluxe ne barvy sou spravne urcite |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 12. září 2009, 18:29:12 Předmět: |
|
|
ako ako. bindnes texturu, vertex, texcoord a normal array a potom kreslis, ide o to ze si musis rozdeit geomteriu podla jednotlivych textur. teda mozes to mat v jednom array/buffer a mat rozdelen indicies popripade ist cez glDrawRangeElements(). teda stale tam musis mat for() ktory cykluje cez textury. preto byva jeden model jedna textura _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
jatro.m
Založen: 29. 07. 2009 Příspěvky: 89
|
Zaslal: 12. září 2009, 19:28:32 Předmět: |
|
|
nou dobry no, posledne mi radili at tam cykly nepouzivam ale at mu tam rovnou naserviruju pointery na ty struktury
kód: |
glTexCoordPointer(2,GL_FLOAT,sizeof(Vector3D), &v_TexCoord[0].x);
glNormalPointer(GL_FLOAT, sizeof(Vector3D), &v_Normals[0].x);
glVertexPointer(3, GL_FLOAT, sizeof(Vector3D),&v_Vertices[0].x);
glDrawArrays(GL_TRIANGLES, 0, i_NumVertices); |
tudiz pokud jsem to dobre pochopil tak ty rikas at si to rozcykluju ze?
=================================================
dobry no uz sem na dosel k tomu ze se to da rozume nacyklovat ale musim si kvuli tomu prepsat strukturu aby to bylo jako vic objektu a ne jako jeden |
|
Návrat nahoru |
|
 |
JohnyDog

Založen: 17. 08. 2007 Příspěvky: 66
|
Zaslal: 12. září 2009, 19:45:09 Předmět: |
|
|
jatro.m napsal: |
nou dobry no, posledne mi radili at tam cykly nepouzivam ale at mu tam rovnou naserviruju pointery na ty struktury
|
Pokud mozno mel by si mit na jeden model/mesh jednu texturu, tim se vyhnes prepinani (zvlast pokud budes kreslit vic instanci toho sameho modelu). _________________
 |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 12. září 2009, 19:48:03 Předmět: |
|
|
za pouzitia shaderov by sa dalo natlacit do nejakeho atributu ktora textura sa ma pouzit. proste ked chces zmenit texturu musis to robit cez glBindTexture(). prepnutie textury ale stoji urcity procesorovy cas. preto sa v hrach snazia prepinanie snazia minimalizovat. takze sa robia texturove atlasy. teda pakovnie viacerych textur do jednej. teda minimalizovat pocet textur.
takze mozes mat vetku geometriu v jendnom poli a kreslit cez glDrawRangeElements alebo aj napriklad ked pouzivas indicies tak mat viacero skupin. pre kazdu texturu jednu. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
jatro.m
Založen: 29. 07. 2009 Příspěvky: 89
|
Zaslal: 12. září 2009, 20:09:41 Předmět: |
|
|
jo dobry me totiz uz doslo ze to nemuzu mit ulozeny jako jeden velkej trojuhelnik (ten model) ale jako vic a diky tomu muzu mit na kazdym trojuhelniku jinou texturu |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 13. září 2009, 06:41:23 Předmět: |
|
|
nou napsal: |
takze sa robia texturove atlasy. teda pakovnie viacerych textur do jednej. teda minimalizovat pocet textur. |
Jo, ale pak už není úplně triviální zařídit, aby opakování textur fungovalo. V tomto případě si musí člověk zahrávat s gradienty (vektory parciálních derivací) a možná ani to by nestačilo. Obecně to může být problém. Proto v DX10/GL3 jsou k dispozici texture arrays, které umožňují mít pole 2D textur ve stejném smyslu jako 3D texturu, akorát filtrování se neprovádí mezi 2D vrstvama.
jatro.m> Nekresli po jednotlivých trojúhelnících. Kresli po větších dávkách. Přiřaď si ke každé textuře seznam trojúhelníků a vykresluj všechny zároveň. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
|