Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
PCmaniak
Založen: 07. 10. 2007 Příspěvky: 6
|
Zaslal: 23. listopad 2007, 22:13:33 Předmět: OpenGL render polygonu s vertex a index bufferem a rozsahy |
|
|
zdarvim mam mensi problem prosim neporadil by mi nekdo jak mohu vykreslit v OGL polygon pomoci Index a Vertex Bufferu ?
Delam kresleni Quake III BSP. Mam start_vertex, num_verts, start_index, num_indexes.
dekuji |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 25. listopad 2007, 18:11:50 Předmět: |
|
|
Vertex a index buffery vytvoříš pomocí sekvence příkazů: glGenBuffers, glBindBuffer, glBufferData, glBindBuffer(.., 0). Vždycky na konci všeho nastavuj nulový buffer - to vrací původní stav tzn. vypíná VBO. Každý z příkazů bere typ bufferu: GL_ARRAY_BUFFER pro vertexy a GL_ELEMENT_ARRAY_BUFFER pro indexy.
Rendering provádíš přes vertex arrays, tzn. nejdřív nastavíš odpovídající attributy vertexů pomocí glVertexPointer, glNormalPointer, glTexCoordPointer... případně jejich obecná varianta glVertexAttribPointer, která přiřadí atribut přímo konkretní proměnné v GLSL shaderu, kde si pak s těma datama můžeš dělat, co chceš. Před každým gl*Pointer příkazem ho musíš zapnout pomocí glEnableClientState, jinak se daný atribut nepoužije. Na konci renderingu je zas všechny povypínáš pomoci glDisableClientState. Dále před každým gl*Pointer příkazem musíš nastavit odpovídající vertex buffer pomocí glBindBuffer, pointer v gl*Pointer potom nebude ukazovat do RAM, ale bude to jenom offset v tom bufferu ve VRAM, tedy ideálně 0, pokud chceš začít od začátku bufferu.
Až máš všechno nastavené, samotné vykreslení provedeš pomocí glDrawElements nebo glDrawRangeElements, kde se zadává pointer na index buffer. Před tímto příkazem opět pomocí glBindBuffer nastavíš odpovídající index buffer, aby se bral z VRAM. Na konci renderingu nezapomenout zpět nastavit nulové buffery pomocí glBindBuffer.
Teď víš, čeho se držet a jak by ten rendering měl asi vypadat. Ostatní informace a dokumentaci si najdeš na netu (google, opengl.org/sdk/docs/man). Neuváděl jsem tu schválně zdroják - jsi programátor a tedy tvým úkolem je převést slovní popis do vlastního kódu. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
PCmaniak
Založen: 07. 10. 2007 Příspěvky: 6
|
Zaslal: 30. listopad 2007, 22:16:28 Předmět: |
|
|
diky omlouvam se za tak pozdnou reakci ale uz jdem dostal odpovedi na gamedev jinak dekuji |
|
Návrat nahoru |
|
|
|
|
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