Suche OpenGL 2.1 SDK!



  • Bitte nicht schon wieder ne Diskussion über "OpenGL vs. D3D".

    Dem thread-Ersteller wurde eigentlich zu genüge geantwortet, er hats gelesen scheints aber nicht zu kappieren - warum auch immer.
    Was soll der gelinkte Wikipedia-Artikel aussagen? Bzw. wo steht da, dass man unter Windows alle Funktionen nach ver1.1 vergessen kann?

    Wurde ja nun zu genüge gesagt: Windows unterstützt von Hause aus nur OpenGL 1.1
    Sofern du allerdings eine einigermassen aktuelle Grafikkarte und Grafikkartentreiber hast kannst du selbstverständlich auch neuere Funktionalitäten nutzen. Wie das geht wurde ja ebenfalls schon mehrfach erklärt.

    Es hilft in der Regel auch, sich mal n Buch zu schnappen und die 2 Seiten zu lesen, auf denen das erklärt wird.



  • Naja, der Artikel erklärt lediglich, was hier zahlreiche schon versucht haben verständlich zu machen, aber evtl. kann er hiermit mehr anfangen:

    http://www.opengl.org/wiki/Getting_started

    Absatz OpenGL2.0+ Extensions sollte alle Fragen beantworten.



  • 3dler2 schrieb:

    Und das Argument mit den "schnelleren Drawcalls" ist auch ein Nullargument. Klar sind einige OGL Draw Calls schneller - dafuer machen sie auch weniger. In D3D sind einige DrawCalls teurer, dafuer kannst du mit einem Drawcall eine halbe Szene auf einmal rendern. Das schenkt sich insgesamt nicht viel.

    Ach.

    Bestimmte D3D Calls sind recht langsam, weil die Aufteilung Kernel-Mode vs. User-Mode von MS recht starr vorgegeben wurde.
    D.h. bestimmte Calls führen zwangsläufig zu einer Kernel-Mode-Transition. Und so Kernel-Mode-Transitions sind nunmal ziemlich langsam.

    Mit D3D 10 oder 11 soll sich das stark verbessert haben, aber da es weder 10 noch 11 auf XP gibt, ist D3D 9 für viele Dinge immer noch Standard.

    Bei OpenGL bleibt dem Grafikkarten-Hersteller überlassen wann wo und warum in den Kernel-Mode gewechselt wird. Dadurch können OpenGL-Implementierungen Dinge optimieren, die ein D3D9 Treiber nicht optimieren kann. Daher sind bestimmte API Calls in OpenGL schneller.

    Hat also nichts damit zu tun wieviel ein API Call an Arbeit erledigt. Und zeig mir mal bitte wie man mit D3D mit einem API Call "eine halbe Szene" rendern soll. Vorausgesetzt man verwendet mehr als zwei Texturen/Shader/Vertex-Buffer/... - was ich mal als nicht unüblich bezeichnen würde.



  • Das sind Argumente die so vielleicht vor 15 Jahren noch Gewicht hatten. Nur weil bestimmte API Calls "langsamer" sind bedeutet das noch lange nicht dass die API am Ende als ganzes langsamer ist...Das Design der OpenGL API hat dafür halt einfach andere Bottlenecks (z.B. das eigentümliche Objektmodell das zu dem ganzen glBind* Kram etc. führt, NVIDIA berichtet hier z.B. von 7x speedup ihrer Bindless OpenGL Extension gegenüber normalem OpenGL).

    Anyway, man zeige mir bitte eine Anwendung in der es irgendeinen signifikanten Geschwindigkeitsunterschied gegenüber Direct3D zugunsten OpenGL gibt (das Gegenteil kommt einem dank oftmals schlechter Treiber dafür wirklich ab und zu unter wenn man mal wieder liest dass wieder einer seinen Renderer nach Direct3D portiert hat weil das ganze dann auf Intel GPUs auf einmal doppelt so schnell läuft...). Alles in allem ist die Performance jedenfalls absolut kein Grund sich für D3D oder OGL zu entscheiden. Das weitaus bessere/zeitgemäßere API Design von D3D würde ich da schon eher als Argument anführen. Und wenn man das ganze natürlich woanders als unter Windows laufen lassen will hat man ohnehin keine andere Wahl als OpenGL...


Anmelden zum Antworten