Was sind die Unterschiede zwischen den Bibliotheken OpenGL, GTK und QT?
Verstehe ich den Zweck von GTK, QT oder andere Grafik-toolkits. Aber ich verstehe nicht die Rolle von OpenGL. Ist es nur eine andere GUI-Bibliothek oder meint Sie etwas grundlegenderes? Wenn ja, was ist das und Wann sollte ich es verwenden, in der von Tag zu Tag hacking?
InformationsquelleAutor der Frage prinzdezibel | 2009-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
OpenGL ist eine Bibliothek für das zeichnen von Grafiken auf einem niedrigen Niveau. Es zeichnet sich vor allem bei 3D-Grafiken. Die wichtigsten Wettbewerber zu OpenGL ist Direct3D (nicht das ganze DirectX).
GL ist nur dann wirklich mächtig, wenn Sie müssen it-hardware beschleunigt. Heute, fast jeder desktop-oder laptop-Lösung hat GL-Beschleunigung, aber auf einigen Systemen, wo die Grafik Karte ist integriert in den chipset, es ist noch Recht langsam.
Für Tag-für-Tag-hacking, GL dienen kann viele ungewöhnliche Zwecke. Der Grund dafür ist, dass Sie in den Genuss der GPU-Rechenleistung für Grafik-Aufgaben. Für alles nicht-grafische, neuere Sprachen wie CUDA gibt es auch Zugriff auf die GPU.
Während GL wirklichen stärken liegen in der 3D-Szene Rendern, ist es oft auch für 2D-manipulation oder Komposition. Der Grund dafür ist, dass die 2D-Beschleunigung Architekturen von Grafikkarten oft erreichen Sie nicht die macht (Freiheit) oder die Leistung von GL. Das ist, warum manchmal GL wird verwendet für video-Ausgang (vor allem verkleinern) oder Vermengung der Aufgaben, auch wenn bestimmte 2D-Beschleunigung für diese Aufgaben zur Verfügung stehen würde. Mac OS X ist ein prominentes Beispiel für ein ganzes desktop (Optional) gerendert wird, durch den GL zu ermöglichen, ansprechende Effekte ohne hohe CPU-Last. Aber es kann auch verwendet werden, zum Beispiel blend-anti-alias-text Glyphen auf einem strukturierten hintergrund.
Sobald Sie eine grafische -, performance-kritische Aufgabe, werden Sie wahrscheinlich wollen, dass die GPU zu helfen (möglich, auch wenn Sie nicht zeichnen auf dem Bildschirm) und dann OpenGL ist eine saubere, standardisierte, Plattform-übergreifende Antwort auf Ihre Bedürfnisse. Die heutigen GUI-toolkits meist nicht auf, bieten Sie GPU-beschleunigte Zeichnung, aber die Aufnahme von GL-rendering in Ihre widgets. So können Sie Sie für UI-Zeichnung und geben Sie Ihre performance-kritische Echtzeit-Grafiken, wo es passt. Gebäude eine ganze UI innere GL ist ein Schmerz, aber es gibt auch Lösungen, die verfügbar sind (typische Anwendungsfälle sind Spiele mit in-game-UI).
InformationsquelleAutor der Antwort ypnos
Es ist etwas grundlegenderes. OpenGL ermöglicht die Durchführung low-level-Zeichnung (denken Sie an "ziehen Sie eine Linie von hier nach hier" statt "zeichnen-button"). OpenGL-Operationen sind oft auch hardware-beschleunigt und dadurch sehr effizient, und der OpenGL-API können Sie bequem die Arbeit mit 3D.
Wahl zwischen OpenGL und ein GUI-toolkit wie QT oder GTK hängt wirklich davon ab, ob Sie versuchen zu ziehen, UI-Elemente für Ihre Anwendung oder möchten, sehr fein Steuern, wie Grafiken gezeichnet werden.
Manchmal, GUI-toolkits beschäftigen OpenGL unter die Decke, um zu ziehen, Ihre on-screen-Elemente.
InformationsquelleAutor der Antwort MandyK
OpenGL Grafik-API, auf die komplexere user-facing Grafik-Bibliotheken aufgebaut sind. Wenn Sie interessiert sind, in der Grafik Entwicklung, und insbesondere 3D-Grafik, dann ist es auch Wert, dass es bekannter. Es ist und außerordentlich leistungsfähiges system alles zu tun, ziehen Sie eine Linie durch Rendern von Beben zu behandeln Foto-realistische atmosphärische rendering.
Ihre Ausgangspunkt für alles, was mit OpenGL zu tun hat, ist OpenGL.orgwelche links zu alles, was Sie brauchen.
Wenn Sie lieber ein lehrbuch, und das ist keine schlechte Idee mit OpenGL, dann wird der definitive text ist "OpenGL programming guide", umgangssprachlich bekannt als 'Das Rote Buch', die auf das Konto von it ' s cover. Möchten Sie vielleicht ergänzen diese mit "OpenGL Shading Language" (Orange Book), die tut, was es sagt.
Eines der schönen Dinge über OpenGL ist, dass es eine einfache test-toolkit - GLUT -, die umgesetzt wurde, in den meisten Sprachen mit Bindungen und ist außerordentlich einfach aufstehen und laufen, zu Experimentieren und in der Regel zu hacken, um mit.
Also gehen, Holen Sie sich die Darstellung Ihrer Teekanne!
InformationsquelleAutor der Antwort Cruachan
GTK, QT, MFC, wxwidget etc. sind windowing toolkits bieten Sie Steuerelemente wie Dialogfelder, widgets, buttons usw. zu erstellen, gui-Anwendungen.
Eines der Steuerelemente, die Sie in der Regel-Versorgung ist eine Leinwand, du kannst zeichnen mit Grafik-Befehle (drawline, Kreis zeichnen etc). Sie wahrscheinlich auch liefern, die eine OpenGL-canvas-wie gut, dass man zeichnen mit OpenGL-Befehle.
OpenGL (in einfacher Form) ist eine Sprache für die Darstellung von 3D-Objekten, es ist sehr mächtig, cross-Plattform-und etwas kompliziert (vor allem, wenn Ihr Mathe schwach!) ABER es ist weit besser, als zu versuchen zu tun, alle von diesem 3D-Zeug selber! Es kann frustrierend sein, zu Zeiten, vor allem, wenn Sie etwas falsch machen und es zieht nur ein leerer Bildschirm.
Nur um die Dinge ein wenig komplexer, es gibt auch windowing toolkits geschrieben in OpenGL, wo OpenGL bietet eine Reihe von buttons, Dialogen etc. in der Szene UND es gibt Zeiten, wenn Sie (hinter den kulissen) alle GUI-Elemente, mit denen so etwas wie QT sind tatsächlich gezeichnet von OpenGL!
InformationsquelleAutor der Antwort Martin Beckett