Echtzeitgrafik - welche Bibliothek?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nko
User
Beiträge: 13
Registriert: Sonntag 19. Oktober 2008, 18:02

Hallo zusammen,

ich wollte mal nachfragen, welche der vielen Grafikbibliotheken ihr für am schnellsten haltet. Auch wenn man das vielleicht so nicht beantworten kann gibts da sicher eine Reihenfolge.

Ich meine vor allem 2d-Grafik.

ich vermute, dass pygame da nicht so verkehrt ist, immerhin ist es zur spieleentwicklung gedacht.

Was meint Ihr?

Gruß
Nko
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

pygame basiert auf SDL und das unter Linux wiederum auf Framebuffer und Xlib. Hardware-Beschleunigung gibt es da, soweit ich mir das gerade anlesen konnte, nicht. Es besteht aber die Möglichkeit, SDL gemeinsam mit OpenGL zu verwenden (also wohl direkt OpenGL-Calls zu machen), um in den Genuss von Hardware-Beschleunigung zu kommen.
BlackJack

@Y0Gi: Bei beiden gibt's auch Hardwarebeschleunigung.
fk
User
Beiträge: 7
Registriert: Freitag 7. November 2008, 14:54

Dann ist da natürlich noch Pyglet, das im Gegensatz zu Pygame den Vorteil hat, dass es halbwegs lebt, sprich weiterentwickelt wird. Das verwendet ctypes, keine Ahnung, obs dadurch langsamer wird. Auf jeden Fall benutzt das auch OpenGL für 2D.
BlackJack

@fk: Von Pygame gab's im Juli ein Release. Würde ich also nicht als Tot bezeichnen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:@fk: Von Pygame gab's im Juli ein Release. Würde ich also nicht als Tot bezeichnen.
Also vor dem 1.8 Release sah gab es schon einige Zeit ziemlichen Stillstand.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
fk
User
Beiträge: 7
Registriert: Freitag 7. November 2008, 14:54

Nagut, das die ne neue Version haben, wusste ich nicht. Ist insofern wahrscheinlich vor allem Geschmackssache, im Prinzip sind sich Pygame und Pyglet ja schon ähnlich.

Pyglet ist aber trotzdem besser. Pff. :wink:
Nko
User
Beiträge: 13
Registriert: Sonntag 19. Oktober 2008, 18:02

hmm,... gut

pygame hatte ich schonmal angetestet. Bin aber nicht weit gegangen. Hab grad wo gelesen, daß pygame für os-icks nicht so einfach geht. ( mir persönlich erstmal egal ;), aber gut)

Pyglet hab ich mir heute ein bisschen angeschaut und scheint auch was vernünftiges zu sein. Hat mir aber scheinbar gerade mal meinen Computer eingefroren. Mal sehen. Also pygame oder pglet scheint die Wahl zu sein.

pglet ist wohl rudimentärer, ist aber wahrscheinlich eher das, was ich suche. Die "Physik" selber programmieren. Also Formen und Farben in Echtzeit generieren und ändern. Echtzeit sollen Datenströme sein, also z.B. n Mikro.

Ich werd da mal ein bisschen weiter suchen und dann wohl wieder in [Sonstige (PyQt, Pygame, PyOpenGL, ...)] posten.

Dann Dank erstmal.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo!

Nur der Vollständigkeit halber: :-)

wxPython hat mit dem wx.GraphicsContext die Möglichkeit, unter Windows direkt mit der GDI-Library zu zeichnen. Und unter Linux wird automatisch Cairo zum Zeichnen verwendet. Schau' dir einfach mal die wxPython-Demo an.

Wem das zu langsam ist -- und falls es wirklich etwas bringt, das weiß ich nicht -- der kann noch mit dem wx.GlCanvas direkt mit OpenGL arbeiten.

So viel ich weiß, haben pyGTK (das war eh klar) und pyQt auch die Möglichkeiten, direkt mit Cairo zu zeichnen. Ich denke, dass beide GUI-Toolkits auch mit OpenGL klar kommen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Scheint mir, du willst sowas wie Processing haben/bauen. Darum gibt's auch irgendwo einen Python-Wrapper.

An gerold anknüpfend: Für wxPython gibt's einen OpenGL-Frame, den hab ich vor längerer Zeit mal benutzt.
lunar

Y0Gi hat geschrieben:pygame basiert auf SDL und das unter Linux wiederum auf Framebuffer und Xlib. Hardware-Beschleunigung gibt es da, soweit ich mir das gerade anlesen konnte, nicht.
Bei 2D-Zeichenoperationen profitiert SDL immer auch von der Hardwarebeschleunigung des Treibers (so er diese bietet). Außerdem unterstützt SDL den Gentoo-Useflags nach zu urteilen mehrere Video-Backends. Für beschleunigte 3D Zeichenoperationen muss man aber direkt auf OpenGL zugreifen, dass stimmt schon.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gerold hat geschrieben:So viel ich weiß, haben pyGTK (das war eh klar) und pyQt auch die Möglichkeiten, direkt mit Cairo zu zeichnen. Ich denke, dass beide GUI-Toolkits auch mit OpenGL klar kommen.
PyQt bietet GraphicsView, womit man Canvas-like zeichnen könnte, bei PyGTK nimmt man da gnome-canvas oder goo-canvas oder soetwas. Ob die für schnelle Grafiken brauchbar sind: keine Ahnung.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

QGraphicsView ist darauf ausgelegt, eine große Anzahl von 2D-Grafiken schnell darzustellen. Für 3D Grafiken gibt es QtOpenGL. QtOpenGL.QGLWidget kann man auch nutzen, um primitive 2D-Zeichenoperationen mittels OpenGL zu beschleunigen.
Nko
User
Beiträge: 13
Registriert: Sonntag 19. Oktober 2008, 18:02

...SDL, Cairo, OpenGL...

sind also die zugrunde liegenden Bibliotheken. Schnelligkeit scheint noch nicht so genau untersucht zu sein.
Dann werd ich das Thema jetzt nochmal anders anpacken: Welche der Pythonbindings ist denn am "einfachsten" zu bedienen? Ja, eine subjektive Frage, aber dennoch. Mit möglichst wenig drumherum.

Danke, bis dann.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Nko hat geschrieben:Welche der Pythonbindings ist denn am "einfachsten" zu bedienen?
Hallo Nko!

So wie es im Moment für mich aussieht, ist Cairo sehr, sehr einfach zu bedienen. Siehe: http://www.python-forum.de/post-115996.html#115996

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten