OpenGl Programmierung und wann OpenCl verwenden?

Hi,

ich beschäftige mich gerade etwas mit dem Thema OpenGl. Dabei ist mir unter gekommen, dass es auch noch OpenCl gibt. Leider ist mir noch nicht so klar, wann ich was am besten verwenden sollte.

Zum Beispiel, wenn ich einen Videoplayer programmieren möchte und das Video mit Overlays belegt werden soll wie den Subtitles oder einem eingeblendeten Timecode. Benutzt man in diesem Fall für die Darstellung des Timecodes nur OpenGl oder besser OpenCl damit es schneller und flüssiger läuft. Oder es soll ein weiteres Video als Picture-in-Picture Objekt im eigentlichen Video dargestellt werden, dass mit einer höheren Refreshrate abgespielt werden muss, damit es flüssig aussieht…

So richtig brauchbare Informationen wann welches Toolkit OpenGl oder OpenCl zum Einsatz kommen sollte, konnte mir das Internet leider nicht liefern.

Gruß
patrick

OpenCL hat nichts mit OpenGL zu tun. Beide nutzen die Grafikkarte, das ist richtig. Grafikkarten sind für diverse berechnungen optimiert worden. OpenGL ist für Grafikausgabe zuständig. Damit kannst du Bilder zeichnen, anzeigen, Texturen speichern, verändern, etc.

OpenCL ist eine sprache zur schnellen berechnung diverser Algorithmen, da grafikkarten vieles optimierter berechnen als die CPU das könnte. OpenCL verwendest du dann, wenn du die GPU für berechnungen nutzen willst, aber nicht weißt, welche Grafikkarte im zielrechner verbaut ist. Jeder hersteller hat hier seine eigene Implementierung des Frameworks, wie du das bewerkstelligst. Beim NVidia heißt es soweit ich weiß CUDA, bei ATI heißt es glaube ich (da bin ich mir nicht sicher) ATI Stream. OpenCL kommt mit beiden Grafikkarten klar (und mit diversen anderen auchnoch).

Lies dir am besten mal die Wiki einträge zu OpenGL und OpenCL durch.