.[ ČeskéHry.cz ].
OpenGL VBO

 
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
Aroidzap



Založen: 14. 11. 2011
Příspěvky: 68

PříspěvekZaslal: 10. srpen 2012, 18:49:51    Předmět: OpenGL VBO Odpovědět s citátem

Ahoj, trapi me jeden problem... Mam VBO a do nej davam zabalena vertex data (vertexy,normaly,tangenty a souradnice textur). Problem je ze mam napriklad 500 vertexu, 3000 texturovych souradnic a k tomu indexy. Rad bych tech indexu vyuzil, ale kvuli texturovym souradnicim musim tech 500 vertexu doplnit o dalsich 2500 aby sedely k texturovym souradnicim. Pak uz indexy nemaji smysl. Nenapada nekoho neco, abych mohl vyuzit indexu a usetrit tak pamet na grafice? (k tem vertexum musim zapocitat i dalsich 2500 normalu a 2500 tangentu) Kazdym resenim jsem zatim dosel k tomu, ze bych musel vertexy, normaly a tangenty zbytecne duplikovat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 10. srpen 2012, 21:05:40    Předmět: Odpovědět s citátem

kratka odpoved je ze to nejde.

dlhsia je ze to teoreticky ide. videl som to riesit na opengl.org fore. a riesenie nebolo vobec pekne a jednoduche. a hlavne je potrebne tusim az OpenGL 4.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Aroidzap



Založen: 14. 11. 2011
Příspěvky: 68

PříspěvekZaslal: 10. srpen 2012, 21:21:44    Předmět: Odpovědět s citátem

A myslis ze by bylo rovnou lepsi si udelat si vlastni format kde to budu mit nekompresovane bez tech indexu?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 10. srpen 2012, 22:47:43    Předmět: Odpovědět s citátem

no indexy su dobra vec pretoze vecsina vrcholov byva pri normalnych modelov zdielana. teda usetri sa na pameti oproti neindexovanemu.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Aroidzap



Založen: 14. 11. 2011
Příspěvky: 68

PříspěvekZaslal: 10. srpen 2012, 23:06:55    Předmět: Odpovědět s citátem

me tam delaji problemy ty texturove koordinaty... zkusim to jeste nejak poresit... je blbost aby jich tam bylo tolik
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 610

PříspěvekZaslal: 11. srpen 2012, 12:14:12    Předmět: Odpovědět s citátem

Aroidzap napsal:
me tam delaji problemy ty texturove koordinaty... zkusim to jeste nejak poresit... je blbost aby jich tam bylo tolik

No není. Může tam být šev (seam) a pak i když je bod stejný (xyz) tak pro různé trojůhelníky má různé souřadnice.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mivoj



Založen: 11. 12. 2012
Příspěvky: 32

PříspěvekZaslal: 26. duben 2013, 20:33:26    Předmět: Odpovědět s citátem

Potřebovál bych pomoc s VBO nebo jak pochopit vertex arrays abych to mohl zakomponovat do svého simulátoru a tak to líp optimalizovat.
Tedy vysvětlit fůnkci glVertexPointer a co jak u ní dosadit. Hlavné ty dva poslední parametry.
Pak na vykreslení co použít radši jestli glDrawArrays nebo glDrawElements a když glDrawElements tak bych rád pochopil u ní poslední parametr. Chtěl jsem to uzpůsobit pro načítaní ASE souboru, ktery využívám na vykreslení objektů, ale nedáří se mně to. Zobrazí to jen pár trianglů a ty ještě špatně.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 26. duben 2013, 22:52:18    Předmět: Odpovědět s citátem

glVertexPointer() prvy parameter je pocet zloziek ktore ma jeden vertex. 2-4 bezne sa pouziva 3. druhy parameter je datovy typ. najcastejsie GL_FLOAT. tretim parametrom je krok. moze byt 0 ak su vertexy jeden za druhym. v pripade ze mas prelynane VBO tak treba uviest velkost jedneho vertexa v bajtoch. ak je struktura vertexa nasledovna [x,y,z, s,t] tak bude stride 5*sizeof(float)=20. poslednym parametrom je bud pointer na data vertexa alebo ak je nabindovany nejaky VBO cez glBindArray() do GL_ARRAY_BUFFER tak offset. tento offset je treba nastavovat pri prelinanych VBO. ak zoberieme predchadajuci priklad tak pri volani glTexCoordPointer() treba dat hodnotu 3*sizeof(float)

pri glDrawArray() a glDrawElements() treba dat pozor a predat pocet vertexov nie pocet primitiv. teda glDrawArrays(GL_TRIANGLES, 0, 3); vykresli prave jeden trojuholnik. glDrawElements pridava indexy do pola vrcholov. posledny parameter sa sprava rovnako ako v pripade glVertexPointer() jediny rozdiel je ze berie do uvahy VBO ktory je nabindovany do GL_ELEMENT_BUFFER_ARRAY
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
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