Gesucht: Einfache, portable 3D Engine für einfache geometrische Objekte


  • Mod

    Ich würde gerne ein Visualisierungsprogramm für gewisse Daten schreiben. So ähnlich wie VMD(Visual molecular dynamics, falls das jemand kennt), aber mit ein paar Features die dieses nicht bietet (und mit vielen Features weniger die ich nie brauche). Das (für mich) komplizierte daran ist die 3D-Darstellung, da das nur ausgehend von einer Grafikbibliothek wie OpenGL viel Entwicklungsarbeit ist. Also habe ich mir mal die bekannten Spieleengines angeguckt, musste aber feststellen, dass diese im Prinzip viel zu viel können für meine Zwecke. Ich hatte eigentlich nicht vor großartig Quake3 Modelle mit Texturen zu erstellen - einfache geometrische Objekte wie Kugeln, Quader und Zylinder mit verschiedenen Farben sind voll ausreichend. Dazu noch Lichtquellen und Bewegung im Raum mittels Maus und/oder Tastatur.

    Habt ihr Empfehlungen für eine abgespeckte Engine, wo ich das ohne viel Entwicklungsarbeit hinbekommen kann? Kleine Einschränkung: Es muss idealerweise portabel oder mindestens unter gängigen Linuxdistributionen funktionieren.
    Oder wäre die Empfehlung doch eher, dass ich mich mit einem Modeleditor auseinandersetze und für eine der größeren Engines (z.B. SDL) damit Modelle von Kugeln, Quadern und Röhren zeichne?
    Oder habe ich was übersehen und die bekannten 3D-Engines bieten mir diese Funktionen sowieso schon an und ich habe es übersehen?


  • Mod

    glut (bzw openglut/freeglut) sollten das cross platform framework und (opengl + keyboard + maus) und die folgenden primitiven bieten:

    glutSolidCone - render a solid or wireframe cone respectively.
    glutSolidCube - render a solid or wireframe cube respectively.
    glutSolidDodecahedron - render a solid or wireframe dodecahedron (12-sided regular solid) respectively.
    glutSolidIcosahedron - render a solid or wireframe icosahedron (20-sided regular solid) respectively.
    glutSolidOctahedron - render a solid or wireframe octahedron (8-sided regular solid) respectively.
    glutSolidSphere - render a solid or wireframe sphere respectively.
    glutSolidTeapot - render a solid or wireframe teapot respectively.
    glutSolidTetrahedron - render a solid or wireframe tetrahedron (4-sided regular solid) respectively.
    glutSolidTorus - render a solid or wireframe torus (doughnut) respectively.
    

    opengl in der einfachsten form bietet dir lichtquellen aller art, "materials" gibt es auch (gibt online auch listen die mit setups fuer verschiedene materialien z.b. gold, silber usw.)

    um einfach z.b. eine lookat matrix zu basteln usw. koenntest du dir GLU ansehen (http://www.opengl.org/resources/faq/technical/glu.htm)

    wenn du ein wenig mehr als basis opengl haben moechtest (und das cross platform), bietet sich Glew an http://glew.sourceforge.net/basic.html



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Eventuell ist das Overkill, aber ansonsten fiele mir die Irrlicht-Bibliothek ein. IGeometryCreator könnte dir bei deinen Figuren behilflich sein. Licht ist auch recht einfach eingebaut (dafür gibts ein Tutorial).

    Vom benötigten Code her dürfte das wahrscheinlich drinliegen, aber ich weiss nicht, wie wichtig es dir ist, möglichst wenig zu linken/extern mitzuführen. Wobei Irrlicht noch richtig schlank ist, wenn man z.B. Ogre anschaut (auch im Bezug auf sehr kurze Kompilier- und Ladezeiten)... 😉


  • Mod

    Danke für die Tipps, klingt vielversprechend. Werde ich mir die nächsten Tage mal ansehen. Hauptsache geringer Entwicklungsaufwand. Die Rechner auf denen das laufen soll sind recht großzügig ausgestattet - Schlankheit des Endprodukts dürfte da eher nebensächlich sein.



  • Huch, da hab ich wohl 4 Sekunden zu früh gepostet (nur als Hinweis, falls du meinen Post nicht mehr gesehen hast) 🙂


  • Mod

    Nexus schrieb:

    Huch, da hab ich wohl 4 Sekunden zu früh gepostet (nur als Hinweis, falls du meinen Post nicht mehr gesehen hast) 🙂

    Ja, da habe ich noch editiert und den "Tipp" in den Plural versetzt. 🕶



  • Ich denk eine Grafikengine für Spiele ist da vermutlich nicht unbedingt das Mittel der Wahl. Auch wenn ich selbst wirklich alles andere als ein Fan davon bin, ich könnte mir vorstellen dass du dich für deine Zwecke vielleicht mit einem Scenengraph basierten Ansatz anfreunden kannst. Beispielsweise gäbe es da Coin (eine Open Inventor Implementierung), OpenSG und osg.

    Es gibt auch noch VTK und die Visualization Library, die kenn ich aber zugegebenermaßen nur vom Namen her, schaun aber, find ich, relativ vielversprechend aus (letzere hat sogar schon direkt was für Molekülvisualisierung eingebaut) 😉


Anmelden zum Antworten