Toon posts:

[OpenGL/Direct3D] vertex arrays vs vertex buffers

Pagina: 1
Acties:

Verwijderd

Topicstarter
In Direct3D gebruikte ik vertex buffers voor het opslaan van data. Deze data werd dan in het videogeheugen opgeslagen. Het vullen van de buffers en het "afspelen" van de buffers was heel snel. Tevens stond de data in het videogeheugen met als voordeel dat dit sneller is en hoofdgeheugen bespaard.

Nu probeer ik in OpenGL hetzelfde voor elkaar te krijgen. Hier kan ik kiezen tussen vertex arrays of display lists. Display lists zijn voor mij onbruikbaar omdat het vullen van een display list tergend traag is. De aanroep van glEndList() kan zo'n 10 seconden duren. Dit is onacceptabel. Vertex arrays moeten echter in het hoofdgeheugen door de aanroeper van openGL aangemaakt worden. Hier wordt het videogeheugen dus helemaal niet gebruikt.

Wat ik het liefst wil is de situatie zoals Direct3D die mij aanbiedt. Geef mij een stuk videogeheugen en laat mij daar mijn data inzetten. Geef deze data vervolgens weer. Kan dit ook met OpenGL?

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Vertex arrays maak je aan in main mem en de driver gebruikt ze intern voor het renderen van je geometrie. De driver regelt de T&L logica verder mbt je geometrie, dus als dat op de kaart beter kan zal de driver je array naar de card moven.

Display lists zijn gewoon lijsten met opengl statements in de interne meta language van de driver (iedere driver die opengl ondersteunt gebruikt een deel SGI code), dus je hebt iewat voordeel dat je die transformatie niet elke keer hoeft te doen, echter ze zijn achterhaald omdat je vertex arrays hebt (en tegenwoordig gewoon shaders :))

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • SWfreak
  • Registratie: Juni 2001
  • Niet online
In OpenGL 1.5 zijn vertex buffers geintroduceerd, die vergelijkbaar werken met de DirectX vertex buffers. Voordien was er de GL_ARB_vertex_buffer extensie (als ik t me goed herinner). Meer info kun je hier vinden.

Verwijderd

Topicstarter
EfBe schreef op 07 september 2004 @ 11:26:
Vertex arrays maak je aan in main mem en de driver gebruikt ze intern voor het renderen van je geometrie. De driver regelt de T&L logica verder mbt je geometrie, dus als dat op de kaart beter kan zal de driver je array naar de card moven.
Precies, en dat wil ik dus voorkomen. Ik vind het zonde dat de data heen en weer wordt gesmeten. Vooral omdat de data redelijk dynamisch is.
SWfreak schreef op 07 september 2004 @ 11:39:
In OpenGL 1.5 zijn vertex buffers geintroduceerd, die vergelijkbaar werken met de DirectX vertex buffers. Voordien was er de GL_ARB_vertex_buffer extensie (als ik t me goed herinner). Meer info kun je hier vinden.
Dank je! Ik ga er naar kijken.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 07 september 2004 @ 14:10:

Precies, en dat wil ik dus voorkomen. Ik vind het zonde dat de data heen en weer wordt gesmeten. Vooral omdat de data redelijk dynamisch is.
Dat valt nog best wel mee, in Direct3D gebeurt dat gesmijt net zo goed, en zo langzaam is het niet. Vertex buffers in videomem is overigens een beetje zonde, eigenlijk wil je voornamelijk textures daar hebben staan. Vertex buffers kunnen makkelijk in AGP mem (waar je weer geen textures wilt hebben), dat geheugen is wel iets langzamer dan lokaal videogeheugen, maar nog altijd snel genoeg voor vertices. Gewoon immediate mode is ook wel rap voor dynamische dingen though


Trouwens, EfBe, ik heb gesolliciteerd bij Nixxes. Ik heb al een gesprek gehad, volgende week hoor ik de uitslag, en volgens mij zit het wel goed \o/

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • EfBe
  • Registratie: Januari 2000
  • Niet online
.oisyn schreef op 07 september 2004 @ 14:47:
Trouwens, EfBe, ik heb gesolliciteerd bij Nixxes. Ik heb al een gesprek gehad, volgende week hoor ik de uitslag, en volgens mij zit het wel goed \o/
offtopic:
COOL! :) Leuk te horen dat Jurjen en zn tokootje erg goed gaat! :) Succes met solliciteren :)

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com

Pagina: 1