.[ ČeskéHry.cz ].
OpenGL - modifikace vertex bufferu problem ?

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Dr.Sid



Založen: 11. 04. 2008
Příspěvky: 9

PříspěvekZaslal: 1. květen 2008, 23:26:56    Předmět: OpenGL - modifikace vertex bufferu problem ? Odpovědět s citátem

Problem:

kreslim oblohu pres skydome, coz je vicemene polokoule s barvou definovanou ve vrcholech, bez textury, bez osvetleni.
Barva ve vrcholech se cas od casu prepocita.

Kreslim to asi takhle (v nejvic obecnem pripade, mam i verzi s VBO, ta problemy necini):

glInterleavedArrays(GL_C4UB_V3F,0,color_vertices);
glDrawElements(GL_TRIANGLES,index_count,GL_UNSIGNED_SHORT,indices);

mno u mne na nVidia 7300go to je zcela neprustrelne. U kamose na integrovanem intelu to spadne jakmile do toho bufferu color_vertices podruhe zapisu. To teda zatim delam kazdy frame. Mam teorii ze on to vyuziva asynchrone, ostatne OpenGL ma otevreny samostatny thread, to je videt .. a ze dojde k nejake kolizi. To si myslim proto ze se bezne stane ze na prvnim vykreslenem snimku nejsou vsechny objekty videt, jenom nektere, aniz bych se o neco takoveho snazil (to dela i u mne) a samozrejme pouzivam doublebuffering.

V helpech jsem nic o to ze by to bylo asynchroni nebo ze bych si mel davat na praci s tim bufferem majzl nenasel.

Nejaky napad ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 2. květen 2008, 02:32:26    Předmět: Odpovědět s citátem

To může být cokoliv.
Zkoušels použít normální vertex arrays? (glColorPointer, glVertexPointer)
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Dr.Sid



Založen: 11. 04. 2008
Příspěvky: 9

PříspěvekZaslal: 2. květen 2008, 11:03:27    Předmět: Odpovědět s citátem

Tak jsem zacal psat verzi bez interleaved arrays .. a uvedomil jsem si to. Teda jeste jsem nemel sanci to na tom Intelu zkusit, ale problem je na 80% tento:

Interleaved arrays zapinaji prislusne client states automaticky. Pokud pouzije interleaved array s normalou a UV na objekty, a pak jenom vrchol a barvu, a nijak si s client states nelamu hlavu, zjevne se dostavam do nejake oblasti kde chovani neni zaruceno.
Jakmile jsem pouzil cisty glColorPointer a glVertexPointer hned mi to zacalo delat blbosti i na nVidii, protoze z vykreslovani objektu zustaly zaple client states pro normaly a UV (coz se da overit).

Spravne bych mel v takovem pripade zjevne pouzit glPushClientAttrib a glPopClientAttrib, byt teda v MSDN na to nikdo nepoukazuje, i to ze Interleaved arrays zapinaji client states je jasne a overitelne, ale nikde napsane.

PS: ano, nejspis to nema nic spolecneho s editaci toho bufferu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Dr.Sid



Založen: 11. 04. 2008
Příspěvky: 9

PříspěvekZaslal: 2. květen 2008, 14:15:54    Předmět: Odpovědět s citátem

Tak tim to neni .. to vypadalo nadejne Very Happy
Cisty arrays padaji taky. Zkoumam dal.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 2. květen 2008, 18:33:48    Předmět: Odpovědět s citátem

Pokud vertex arrays padají a nepoužíváš VBO, pak máš nejspíš chybu ve svém kódu.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Dr.Sid



Založen: 11. 04. 2008
Příspěvky: 9

PříspěvekZaslal: 2. květen 2008, 22:54:39    Předmět: Odpovědět s citátem

Jojo .. vypada to tak .. zatim odvolavam poplach a sypu si popel na hlavu.

Ale taky porad nevim .. dam vam pak vedet. On je to opruz to ladit pres logy u nekoho v Americe Very Happy

Zrovna jsem dosel k tomu ze se mi prepise ten index buffer a naraz se v nem objevi hodnoty ukazujici mimo spravny rozsah. Jenom jsem zatim neprisel na to kdy se to stane, ale uz jsem dost blizko. Pritom si tak davam pozor na tyhle veci, autopointery, vsecko automaticky, vsecko oasertovany az na pudu .. to zas bude blbost Laughing
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna