Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4.1 <strong>Visual</strong> Programming Toolkits 67<br />
Low Level ToolKits<br />
Die wesentlichen Low Level ToolKit (LLTK) sind OpenGL[KG08] <strong>und</strong> DirectX[Mic08b]<br />
bzw. ToolKits, die darauf aufbauen, wie der Simple DirectMedia Layer (SDL) [Tea08].<br />
Diese ToolKits ermöglichen direkten Zugriff auf die Grafikhardware <strong>und</strong> erlauben damit<br />
die höchste Performanz.<br />
Expression Power 2D: Die Graphics Processing Unit (GPU)s aktueller Grafikkarten<br />
sind auf das Verarbeiten von 3D Grafiken ausgelegt. Da es sich bei 2D Grafiken<br />
prinzipiell um einen Unterbereich der 3D Grafiken handelt, lassen sich die LLTK<br />
auch sehr gut dafür einsetzen. Dies lässt sich daran erkennen, dass 2D Bibliotheken<br />
manchmal OpenGL einsetzen, um das Rendern zu beschleunigen. Cairo[Mac08]<br />
oder Adobe in ihrer CS4 Programm Serie setzt auf DirectX 9.0 <strong>und</strong> OpenGL<br />
2.0[Asi08b].<br />
3D: Da die LLTKs gerade für schnelle 3D Grafiken entwickelt wurden, können<br />
eigentlich alle 3D Diagramme umgesetzt werden.<br />
Effekte: Mittels Shadern lassen sich alle Effekte in guter Geschwindigkeit<br />
realisieren.<br />
High Level Die Vorteile in Ausdruckskraft <strong>und</strong> Performanz der LLTKs werden durch<br />
große Abstriche im Bereich der Abstraktion <strong>und</strong> Komfortabilität erreicht. Die<br />
Gr<strong>und</strong>bibliotheken an sich konzentrieren sich auf eine sehr hardwarenahe<br />
Umsetzung von 3D Grafiken <strong>und</strong> sind kaum darauf ausgelegt, leicht oder schnell<br />
benutzbar zu sein.<br />
Performanz Aufgr<strong>und</strong> des direkten Hardwarezugriffs <strong>und</strong> dadurch, dass keine Bindung<br />
an ein Framework gegeben ist, können problemspezielle Lösungen entwickelt<br />
werden, welche in der Regel performanter sind als Toolkit-Lösungen. Auch wird<br />
bei manchen anderen Lösungen ein weiterer Interpreter (z. B. Flash <strong>und</strong> Java)<br />
eingesetzt, anstatt native zu arbeiten, oder es kommt Verwaltungsaufwand durch<br />
ein Framework hinzu (z. B. WPF[Fer06]). Allerdings gibt es bei LLTKs einen<br />
höheren Arbeitsaufwand <strong>und</strong> damit die Gefahr (im Vergleich zu ToolKits, die auf<br />
einem höherem Level arbeiten) durch eine schlechte Umsetzung trotz allem ein<br />
langsameres Programm zu erzeugen. Adam Nathans schreibt dazu: „it’s easy to<br />
write a DirectX program that is faster than the same program in WPF – but it’s<br />
even easier to write a program in DirectX that is slower than the WPF application<br />
“ [Nat06].<br />
Tools Da LLTKs meist als einfache Bibliotheken realisiert sind, lassen sie sich in alle<br />
größeren Programmiersprachen <strong>und</strong> IDE einbinden <strong>und</strong> zeigen sich auch hier<br />
wieder sehr flexibel. Dies ist allerdings meist eine recht rudimentäre Unterstützung.<br />
Es werden noch Debugger für OpenGL oder Direct3D benötigt. Zusätzlich gibt<br />
es Tools zum Erstellen <strong>und</strong> Debuggen von Shadern. Prinzipiell muss bei LLTKs