Partikel in OpenGL



  • Deine Situation ist ja folgende:
    Irgendein "Treiber" ist bei Deiner Linux-Distribution dabeigewesen der immerhin in der Lage ist Deine Grafikkarte beim Namen zu nennen und behauptet OpenGL 2.0-konform zu sein - trotzdem fehlt relevante Funktionalitaet in erheblichem Masse.
    Es waere also sehr naheliegend, beim Hersteller einen offiziellen Treiber fuer Deine (oder eine aehnliche) Grafikkarte zu laden, der nachweislich diese Probleme beheben wuerde.
    Aus mir unbegreiflichen Gruenden tust Du das aber nicht sondern beschwerst Dich ueber die Firma ATI.



  • so hab jetzt ein Systhemupdate gemacht, und nun ist der Treiber (der sehr viele Probleme gemacht hat, bevor er endlich funktionierte) installiert, er funktioniert jetzt ein bisschen besser, als vorher. Vertex Buffer und Point Sprites werden nun unterstützt. Und ja ganz nebenbei wenn es etwas gibt das ich hasse, dann ist das die Treiberinstallation von ATI unter Linux.



  • Hab mir mal so ein Beispiel von VBOs heruntergeladen, und es funktioniert auch. Allerdings scheinen die keinerlei Vorteile für meine Grafikkarte zu bieten, denn denn Geschwindigkeit geht mit dem Aktivieren der VBO deutlich herunter, Was allerdings sehr wahrscheinlich an meiner Grafikkarte liegt, denn meine Karte hat keinen eigenen Speicher, und muss mit dem Hauptspeicher bedient werden.


  • Mod

    was eher wahrscheinlich ist, ist dass die vertextransformationsleistung deiner graka ueberhaupt nicht das bottleneck ist.

    oder anders gefragt, wie bist du darauf gekommen, dass das das problem ist?



  • denn Geschwindigkeit geht mit dem Aktivieren der VBO deutlich herunter

    Im Vergleich zu was denn (Displayliste oder glVertex-Calls) ?
    Die Reihenfolge meiner Vorschlaege war uebrigens bewusst gewaehlt...
    Das groesste Problem in Deinem Source ist, dass Du pro Polygon eine neue Matrix setzt und damit der Pipelinefluss abreisst.
    VBOs nutzen Dir erst in letzter Instanz um den Datentransfer zwischen RAM und GPU zu minimieren. Bei Shared-Memory-Loesungen ist deren Nutzen geringer.



  • also mein Testprogramm hab ich von http://www.songho.ca/opengl/gl_vbo.html es ist vbo.zip, den Quellcode hab ich mir bisher nicht genauer angeschaut, allerdings musste ich das Makefile für linux umändern damit es funktionierte, die haben ein Modul vergessen, eine Display Liste wird es wohl kaum sein, die könnte sowas nicht realisieren, die ist zu Statisch.

    Wie ich nun darauf komme, dass es an meiner Grafikkarte liegt, nun zum einen sind die Effekte auf Windows beim selben rechner die selben, und zum anderen hab ich mir was über VBOs durchgelesen, was mich dazu veranlasst hat das zu glauben, aber was ich mir da genau durchgelesen hab hab ich mittlerweile schon wieder vergessen 😕 .

    Das Programm auf meinem Desktop pc mit echter Grafikkarte funktioniert deutlich besser, auch sind die FPS Zahlen deutlich höher, und der Leistungsschub ist durch die VBO zu erkennen.



  • Wie gesagt liegen Deine Bottlenecks im Moment wo anders.
    Du musst Dir um das fuer und wider von VBOs noch keinen einzigen Gedanken machen.



  • aber das ist frustrierend, wenn man als Belohnung für das erlernen der VBOs eine schlechtere Performance bekommt


  • Mod

    Krux schrieb:

    aber das ist frustrierend, wenn man als Belohnung für das erlernen der VBOs eine schlechtere Performance bekommt

    das ist leider meistens so wenn man probleme loest die man nicht hat. deswegen ist prioritaet 1 beim optimieren: rausfinden was das problem ist.



  • also um das Lernen von Vertex buffern komme ich sowiso nicht rum, also stört es auch nicht, wenn ich die etwas früher lerne.


Anmelden zum Antworten