Hallo!
Nach langer Sucherei (und viel Schererei) habe ich eine neue 3DS Klasse implementiert, die nun auch das Laden komplexerer 3DS Files unterstützt! Alles in allem eine super Klasse, die immernoch von mir verbessert wird, soweit es mir möglich ist.
Unterstützt werden nun auch mehrteilige Models, Mehrere Texturen und das dynamische laden von Texturen zum Modelload.
Allerdings muss man beim Modelload aufpassen, was die Texturen angeht. StudioMax scheint Dateinamen gerne umzubennen, bevor er sie speichert. So wird aus “oxygen_color” auf einmal ein “oxygen_c”. Aber das ist eher das Problem des Grafikers, ich schreibe nur die Engine, ich bin nicht da, ihm auch noch den hintern ab zu putzen, nicht wahr? (:
Die aktuelle ToDo-List sieht wie folgt aus:
Auslesen von Licht und Bumpmap Daten.
Unterstützung von Bumpmaps.
Enginespezifische Effekte (wie Feuer, Rauch usw) durch ID’s. (Ich suche noch einen geeigneten Chunk, um die Daten darin zu speichern, aber notfalls muss man einfach andere ein wenig “Zweckentfremden”)
Soweit, so gut!
TBC, wenns neues gibt!
Grüße, Makkuro!
Hallo!
Von nun an sind alle Einstellungen wie Fullscreen, Steuerung und ähnliches in eine Konfigurationsdatei ausgeagert.
Benutzt wird dabei eine Klasse zum Lesen und Schreiben von INI-Dateien, die mir von AlienDwarf zur Verfügung gestellt wurde. Sie wurde in den BK-Status erhoben und ist ab sofort ein vollwertiges Mitglied der Engine. (Schließlich wurde sie auch extra dafür geschrieben.)
Wer sich nun fragt: Warum hat er sie nicht selber geschrieben?
Wie man sieht bin ich ein sehr bequemer Mensch, was mich allerdings nicht davon abgehalten hat, direkt nach erhalten der Klasse heute, die gesamte Steuerung und Verwaltung auf eine INI auszulagern.
Und wisst ihr was? Es läuft ohne Probleme!
Danke nocheinmal an Aliendwarf! So einen großen Zwerg hat die Welt noch nicht gesehen!
Guten Tag noch!
Guten Tag!
Auch wenn ich noch nicht fertig bin: Es gibt einen 3DS-Support!
Er ermöglicht das Laden und Zeichnen von 3DS-Modellen. Dabei kann das Objekt mit beliebigen Texturen überzogen werden. Später werden auch weitere designtechnische Möglichkeiten verfügbar. (Etwa Alphablending, mehrere Texturen pro Model, usw)
Weitere Model Formate sind geplant. Besonderes Augenmerk gilt dabei sicherlich dem eigenen Modelformat, dass ich schon am entwerfen bin. Es wird durch besonders einfaches Laden und Speichern ausgezeichnet sein. (So zumindest die Theorie…)
Weitere Features, die geplant sind, sind Boneanimations und enginespezifische Effekte, die über ID’s und ähnliches angewendet/geladen werden können. (Beispielsweise Spotlights, Fog- und Fireanimationen und Ähnliches.)
Guten Tag!
In diesem Beitrag möchte ich gerne das Grundkonzept der Engine vorstellen. Worauf ich besonderes Augenmerk lege ist natürlich die Einfachheit. Die Benutzung der Engine soll so einfach wie möglich gehalten werden!
Erreichen möchte ich das ganze durch die Bereitstellung einer großen Palette an einfach zu benuztenden Werkzeugen. (Die Einfachheit der Benutzung bezieht sich selbstverständlich auf die Kenntnis der Programmierer. Ein C++-Neuling wird wohl keine Chance haben mit der Engine umzugehen. Ich versuche sie allerdings auh für unerfahrene Nutzer interessant zu halten!)
So können beispielsweise mit wenigen Befehlen Modelle geladen und angezeigt, primitive und dreidimensionale Grundformen gezeichnet und mit winzigem Aufwand eine Kamera aufgesetzt werden, die das Bewegen im dreidimensionalen Raum ermöglicht.
Die Engine ist aufgeteilt in mehrere Klassen, die später wohl durch Vererbung und andere Vorzüge der objektorientierten Programmierung zu einer Hauptklasse zusammengefasst werden, über die man auf alle Komponenten der Engine zugreifen kann. Natürlich kann man auch weiterhin eigenständige Instanzen der einzelnen Klassen erstellen und nutzen!
Dadurch möchte ich ein höheres Maß an benutzerfreundlichkeit erreichen. Es ist einfacher ein einziges Objekt zu erstellen und zu verwalten, als gleich zig verschiedene Instanzen verschiedener Klassen zu erstellen und zu harmonisieren. Zwar verlangt dieses aufsplitten in mehrere Klassen, und vorallem das spätere Zusammenfügen zu einer einzigen, ein hohes
Maß an Vorsicht, was Überschneidungen und ähnliches angeht. Dafür nutze ich allerdings Präfixe, die diese Überschneidungen verhindern sollten.
TBC
CSS · © 2007 McSecu