rotalever
2008-01-25, 15:21:07
In einem anderen Thread wurde geraten immer Vertex Buffer Objects zu benutzen. Da das Offtopic wäre, verlagere ich das mal hier. Ich hatte eigentlich selbst Interesse daran, diese in einem gewissen Programm zu nutzen, hatte aber Performanceprobleme und erstmal abgebrochen. Das soll hier auch gar nicht die Frage sein, das kriege ich schon hin.
Das Programm soll allerdings auf möglichst vielen Computern laufen. Am liebsten wäre es mir, wenn es überall läuft, wo OpenGL 1.x vorhanden ist. Aus dem Grund verzichte ich auch komplett auf Shader und implementiere alle Effekte (Blur, etc.) mit der Standardpipeline.
Wie ist es aber mit Vertex Buffer Objects? Laut delphi3d.net (http://www.delphi3d.net/hardware/extsupport.php?extension=GL_ARB_vertex_buffer_object) ist die frühste Verfügbarkeit bei ATI bei der 7500er Serie und bei Intel anscheinend auch noch nicht sooo lange zu finden. Bei Intel kann ich die Angaben allerdings nicht einordnen, da ich mich mit dessen Chips kein bisschen auskenne.
Was passiert auf diesen alten Systemen? Werden da die VBOs vom Treiber (sofern er neu genug ist, was ich denke ich mal vorraussetzen kann) automatisch auf Vertex-Arrays oder ähnliches transformiert, oder muss ich selber feststellen, ob VBOs auf der Hardware verfügbar sind? Dafür gäbe es dann sicher eine Funktion..
Würdet ihr sagen, dass es sich überhaupt lohnt ältere Hardware als z.B. ATI 7500 zu berücksichtigen? Der Aufwand beschränkt sich z.B. auf ein Szenario dieser Art:
Zeichnen einer dünnen Linie (Kantenzug) mit sagen wir mal maximal 200 Vertices
ca. 15x eine Textur komplett auf den Framebuffer draufblenden
Mehrfacher (4x) readback des kompletten Framebuffers in eine bereitstehende Textur mit Hilfe von glCopyTexImage2D
Mit einer GF6800GS habe ich bei ca 1280x1000 pixel screen größe rund 80fps. Benötigt ist allerdings ein kleinerer Bereich
Was sagt da die Erfahrung (die ich leider nicht habe)?
Das Programm soll allerdings auf möglichst vielen Computern laufen. Am liebsten wäre es mir, wenn es überall läuft, wo OpenGL 1.x vorhanden ist. Aus dem Grund verzichte ich auch komplett auf Shader und implementiere alle Effekte (Blur, etc.) mit der Standardpipeline.
Wie ist es aber mit Vertex Buffer Objects? Laut delphi3d.net (http://www.delphi3d.net/hardware/extsupport.php?extension=GL_ARB_vertex_buffer_object) ist die frühste Verfügbarkeit bei ATI bei der 7500er Serie und bei Intel anscheinend auch noch nicht sooo lange zu finden. Bei Intel kann ich die Angaben allerdings nicht einordnen, da ich mich mit dessen Chips kein bisschen auskenne.
Was passiert auf diesen alten Systemen? Werden da die VBOs vom Treiber (sofern er neu genug ist, was ich denke ich mal vorraussetzen kann) automatisch auf Vertex-Arrays oder ähnliches transformiert, oder muss ich selber feststellen, ob VBOs auf der Hardware verfügbar sind? Dafür gäbe es dann sicher eine Funktion..
Würdet ihr sagen, dass es sich überhaupt lohnt ältere Hardware als z.B. ATI 7500 zu berücksichtigen? Der Aufwand beschränkt sich z.B. auf ein Szenario dieser Art:
Zeichnen einer dünnen Linie (Kantenzug) mit sagen wir mal maximal 200 Vertices
ca. 15x eine Textur komplett auf den Framebuffer draufblenden
Mehrfacher (4x) readback des kompletten Framebuffers in eine bereitstehende Textur mit Hilfe von glCopyTexImage2D
Mit einer GF6800GS habe ich bei ca 1280x1000 pixel screen größe rund 80fps. Benötigt ist allerdings ein kleinerer Bereich
Was sagt da die Erfahrung (die ich leider nicht habe)?