von:Martin van Velsen
|
Zusammenfassung:
Seit etwas 2 Jahren gibt es ein Projekt namens MindsEye. Das Ziel diese
Projektes ist, ein Modeling/Rendering/Animation Paket für Linux/Unix
zu schaffen, das equivalent zu großen Programmen wie 3D Studio Max oder
LightWave ist. Dieser Artikel gibt einen Überblick über MindsEye.
MindsEye befindet sich zur Zeit noch in einem frühen Entwicklungsstadium. Die meiste Arbeit unter der Oberfläche ist jedoch bereits getan. Trotzdem kann sich die Funktionalität immer noch täglich ändern. Wir wollen jedoch den Benutzern zuerst ein gutes Designkonzept zur Verfügung stellen, bevor wir coole Spielereien einbauen.
Zur Zeit wird der Modellierer- und Renderermarkt von teurer, kommerzieller Software dominiert. MindsEye ist (oder will es zumindest sein) die Freeware (GPL) Antwort, die sich mit diesen kommerziellen Programmen messen kann. MindsEye versucht eine universelle Plattform für alle Ansprüche im Grafik- und 3D-Bereich zu sein, indem das beste aus beiden Welten zusammen mit einigen neuen innovativen Techniken verwendet wird.
Vor ungefähr 2 Jahren, als Linux vor allem noch ein Betriebssystem für Hacker war, wurde die Idee geboren, ein Render/Modellier/Animations-Programm für Linux zu entwickeln. Inspiriert vom Gimp Projekt, setzten wir uns zusammen um zu sehen, ob sich solch ein Monster verwirklichen ließe. Gut ein Jahr lang haben wir mit verschiedenen Designideen gespielt. Der Start ging jedoch vollkommen schief. Wir posteten Artikel in Newsgruppen, um zu sehen, ob sich genügend viele interessierte Personen diesem Projekt anschliessen würden. Wir haben jede Menge Rückmeldungen bekommen und es sah so aus als wäre es kein Problem, mit dem Projekt zu beginnen. Wir nannten es Free-D. Dieser Name wurde später in MindsEye abgeändert , da die Namensähnlichkeit mit dem Free3D Bibliotheksprojekt Verwirrung stiftete. Das Projekt wuchs nur sehr, sehr langsam, da es einige Fallstricke gab, die nichts mit dem Projekt an sich zu tun hatten. Beispielsweise hatten Personen spezifische Ideen, was vordringlich implementiert werden sollte. Deshalb gingen die Argumente über Designspezifikationen auf der Mailingliste hin und her. Schließlich hat es länger als ein Jahr gedauert um ein bißchen Code zu erzeugen.
Das Interessanteste an MindsEye ist sicherlich sein Design. Alle Teile, vom kleinsten bis zu den größten Elementen wie dem Modellierer sind modular aufgebaut. Das Herz des Programms nennen wir den MindsEye Kernel. Dieses Stück Software ist nicht in der Lage, auch nur die geringste Grafikarbeit zu leisten. Stattdessen verwaltet er Module und Plug-Ins. Man könnte ihn auch als großen Resourcen-Manager bezeichnen. In MindsEye gibt es einen deutlichen Unterschied zwischen Modulen und Plug-Ins. Ein Modul ist dynamischer Code, von dem der Kernel bereits vor dem Laden gewisse Eigenschaften und die Funktionalität kennt. Er wird vom Kernel geladen und auch wieder entladen. Das Netzwerk-Modul zum Beispiel bildet eine Schnittstelle, die verschiedene Kernel verbindet. Das Netzwerk-Modul kann auch als Dummy-Modul angesehen werden, welches ein anderes Modul ersetzt. Bis jetzt haben wir folgende Basismodule definiert:
MindsEye bemüht sich sehr um eine solide
Softwarearchitektur. Eine Menge neuer Technologien
werden implementiert und das Programm kann sehr gut als Testsoftware
für neue Render- und Modelliertechniken eingesetzt werden. Einige
der Besonderheiten, welche integriert werden sollen, sind:
Im Moment ist MindsEye aus der Sicht eines Entwicklers ein sehr interessantes Programm. Für einfache Benutzer ist es noch nicht so nützlich. Wir arbeiten sehr hart daran, eine saubere Implementation des Kernels zu schreiben. Wenn dies getan ist, stehen die Chancen sehr gut, daß die Funktionalität sehr schnell zunimmt. Unten können sie einen Screenshot der aktuellen Version des Modellierers sehen. Dies ist eine Ansicht von MindsEye-0.5.19 auf einem Enlightenment Desktop. Im Modellierer können sie sehen, daß eine Szene namens rings5.nff geladen ist. MindsEye hat die Fähigkeit mehrere Szenen zu laden. Obwohl bis jetzt noch nicht so viele Dateiformate unterstützt werden, ist der Code für die Ein- und Ausgabe sehr flexibel. Die Protokolle sind entwickelt und designt worden um das dynamische Hinzufügen neuer Dateitypen zu ermöglichen. Jeder Typ wird durch sein passendes Plug-In geladen. MindsEye wird aktives Plug-In-Scannen beherrschen. Dies bedeutet, daß Komponenten zur Laufzeit hinzugefügt und entfernt werden können.
Übersetzt von
Bernd Waibel
Mindseye:
http://mindseye.luna.net
http://yukon.genie.uottawa.ca/info/soft/nurbs (Bibliothek wird benötigt)
http://www.troll.no (Libs needed)
Mailinglisten:
http://mailarchive.luna.nl/mindseye/
Dateiformate:
http://www.mediatel.lu/workshop/graphic/3D_fileformat/h_format.html
http://www.dcs.ed.ac.uk/%7Emxr/gfx/3d-hi.html
http://www.cgrg.ohio-state.edu/~smay/RManNotes/rmannotes.html
http://www.europa.com/~keithr/
http://www.sdsc.edu/vrml/
http://ourworld.compuserve.com/homepages/thbaier/
Mesa(OGL):
http://ssec.ssec.wisc.edu/~brianp/Mesa.html
http://www.sgi.com/Technology/openGL/
ftp://iris.ssec.wisc.edu/pub/Mesa/
RayTracer:
Pov: http://www.povray.org/
http://www.geocities.com/SiliconValley/Lakes/1434/
http://www.europa.com/~keithr/
BMRT:http://www.seas.gwu.edu/student/gritz/bmrt.html
Andere Modellierer:
http://www.cs.ubc.ca/nest/imager/contributions/forsey/dragon/top.html
http://www.comp.lancs.ac.uk/computing/users/andy/ac3d.html
http://http.cs.berkeley.edu/~schenney/sced/sced.html
http://users.aimnet.com/~clifton/spatch/spatch.html (Hier gibts jede Menge nützliches Zeugs)
http://www.seas.gwu.edu/student/gritz/rmanlinks.html
QT:
http://www.troll.no
Nurbs:
http://yukon.genie.uottawa.ca/info/soft/nurbs
http://www.cs.ubc.ca/nest/imager/contributions/forsey/dragon/top.html
Ähnliche Projekte:
http://www.fpa-engineers.com/OD/
http://www.cybersociety.com/moonlight
http://www.geocities.com/SiliconValley/Lakes/7705/Virtuoso.html
Andere interessante Sites:
http://www.ics.uci.edu/~eppstein/gina/csg.html
http://www.cgrg.ohio-state.edu/~smay/AL/
http://www.XCF.Berkeley.EDU/~gimp/gimp.html
http://www.cs.umn.edu/~amundson/gtk/
http://arch.hku.hk/people/matchy/Tcl.html
http://metallica.prakinf.tu-ilmenau.de/Generic/Generic.html
http://www.mdstud.chalmers.se/~md3msns/rayeng.html
http://cg.cs.tu-berlin.de/~ki/engines.html
http://www.cs.rpi.edu/~martink/
http://www.coolfun.com
http://www.grimmware.com/CrystalSpace/
http://www.cs.technion.ac.il/~gershon/irit/
ftp://ftp.eecs.umich.edu/.0/people/aprakash/collaboration/papers/CSE-TR-156-14.ps.gz
Webpages maintained
by Miguel Ángel Sepúlveda
© Martin van Velsen 1998 Übersetzt von:Bernd Waibel LinuxFocus 1998 |