Archiv für die Kategorie ‘Artworks’

Erster einfacher Test-Shader

Dienstag, 27. Januar 2009

Wie ich bereits vermerken ließ, hatte ich auch diesen Monat nicht die meiste Zeit, das Projekt voranzutreiben. Das Shader-System ist nahezu fertig. Es ist lediglich noch ein bisschen Funktionalität geplant, die den Komfort bei der Verwendung des Shader-Systems steigern soll. Nebenbei habe ich das Fundament für das Rendering-System gelegt. Jedoch bin ich mir da noch nicht ganz sicher, wie ich das genau aufbauen soll. Ist aber auch nicht ganz so schlimm, denn das Rendering-System dient eigentlich rein der Steigerung des Komforts. Insbesondere verschiedene Render-Targets sollen darüber verwaltet und zur Verfügung gestellt werden. Für einfache Techniken (z.B. die simple Beleuchtung mit einem Phong-Shader) wird so eine Funktionalität gar nicht benötigt.

Das Shader-System habe ich bereits getestet. Im folgenden Video kommt hierfür ein Vertex-Shader zum Einsatz, der keine tollen Berechnungen vollzieht, sondern einfach nur die nötigen Matrixtransformationen durchführt und die korrekte Texel-Farbe der Textur extrahiert. Der verwendete Pixel-Shader ist noch primitiver; er gibt die (interpolierte) Farbe unverändert zurück. Das Resultat ist natürlich nicht besonders hübsch, aber zum Testen reicht es allemal.

Get the Flash Player to see the wordTube Media Player.

Ups, da habe ich aber lange gebraucht, um zu merken, dass sich der Mauszeiger mitten im Bild befindet. Einer rafft es nie! Witzig ist auch — was mir gerade erst auffällt —, dass das 3D-Modell spiegelverkehrt dargestellt wird (man beachte die Sieben auf Cybers Brust). Da findet anscheinend an irgendeiner Stelle ein ungeplanter Koordinatensystemwechsel statt. Das krich ich aber schon noch raus.

Geburtstag

Donnerstag, 27. November 2008

Heute ist der 27. November. Das ist der Geburtstag von Cyber und Elsa. Cyber und Elsa sind im Gegensatz zu dem, was einige Leute denken, nämlich gar kein Pärchen im Sinne von Männlein und Weiblein, sondern Geschwister. Obendrein sind sie Zwillinge. Sie haben heute am 27. November gemeinsam Geburtstag und planen, eine riesen Sause zu veranstalten. Natürlich wünschen sich beide irre viele Geschenke! Das ist ja das Geilste an Geburtstagen: Geschenke! Ein guter Freund von Cyber und Elsa, nämlich Münninger, sagte einst über Geschenke: „Von Herzen müssen sie nicht kommen, aber teuer sollen sie sein!“ Das trifft es wohl auf den Punkt! Zumindest findet Elsa das. Cyber ist in dieser Hinsicht nicht ganz so krass wie Elsa. Er ist mit sehr viel weniger zufrieden. Aber Elsa, herrje — wenn du ihr den Finger hinstreckst, reißt sie dir den ganzen Arm heraus! Bildlich gesprochen! Obwohl’s auch schon tatsächlich passiert sein soll!

Elsa freut sich natürlich über Blumen, ganz klar. Sie ist ja schließlich ein Mädel. Oder wie einige Leute sagen würden, die sich des modernen Slangs bedienen: Elsa ist ein weltklasse Frauenzimmer mit einer tierisch geilen Performance! Oh ja, das ist sie, Baby!

Einen Strauß Blumen hat Elsa heute bekommen. Den findet sie auch geil. Aber worüber sie sich richtig gefreut hat, ist das H&K-G3, das Cyber ihr geschenkt hat. Elsa ist manchmal recht nostalgisch unterwegs: Sie steht nicht so auf die Waffen, deren Software Cyber programmiert. Sie schießt lieber mit altmodischen Waffen wie .45-Kaliber-Pistolen oder 7.62mm-Gewehren. Cybers Waffe hingegen — die Bärenpranke 9000 — ist mit modernster und raffiniertester Highend-Software ausgestattet, die Cyber natürlich selbst programmiert hat.

FaceLabs-Demo

Sonntag, 02. November 2008

So Freunde, es ist soweit: Hier ist der erste Download für euch! Es handelt sich dabei um eine kleine FaceLabs-Demo bei der man ein kleines Fenster zu sehen bekommt, in dem man ein paar Visualisierungseinstellungen vornehmen kann.

Wer Bock hat, kann auch gerne ein bisschen an den ini- und tga-Dateien rumspielen, um das Design zu individualisieren. Falls es dabei Unklarheiten gibt, beantworte ich natürlich gerne entsprechende Fragen. Ihr dürft mir auch gerne eure eigenen Entwürfe schicken. Vielleicht schafft es ja ein Design oder Teile davon bis ins Spiel.

Beim Start der exe-Datei wird eine html-Datei erzeugt, die ggf. ein paar Fehlermeldungen enthält. Das Programm benötigt auf jeden Fall DirectX 9 und ein Windows-NT-Betriebssystem (vielleicht funzt auch ME oder so, aber das konnte ich bisher nie testen). Falls das Programm bei der Ausführung zu Problemen führt, sollten in der html-Datei Fehlermeldungen auftauchen, die mich in Kombination mit euren Systeminfos interessieren würden. Falls das kleine Programm problemlos ausgeführt werden kann, sollte etwas zu sehen sein, was ungefähr dem folgenden Screenshot entspricht (abgesehen von schwarzem Hintergrund und ein bisschen Text, was nicht im Screenshot enthalten ist):

(Der Info-Button hat bisher übrigens keinerlei Funktion.)

Zwischenmeldung

Donnerstag, 02. Oktober 2008

Es ist ja schon ein wenig was her, dass ich das letzte Mal hier was von mir gegeben habe. Das soll so ja nicht weitergehen. Nur habe ich im Moment nix Besonderes, was ich zeigen könnte. Gut, dass 3D-Modell von Elsa könnte ich langsam mal an die Sonne kloppen, aber ich bin jetzt gerade bei meinen Eltern und hätte nur über Umwege Zugriff auf das Modell.

Was ich aber ganz wunderbar machen kann, ist, einfach etwas zu berichten, womit ich mich gerade so beschäftige:

Während die Grafik- und die Eingabekomponente bereits funktionieren (über Direct3D bzw. DirectInput), wird von der Engine bisher noch keinerlei Wiedergabe von Sounds unterstützt. Darum kümmere ich mich aber gerade. Wave-Dateien können bereits geladen werden, um die DirectSound-Buffer zu füllen. Jedoch ist noch kein Abspielen möglich, weil das nicht ganz trivial ist. Naja, wenn der DirectSound-Buffer einmal gefüllt ist, stellt ein einfaches Abspielen keine große Herausforderung dar. Jedoch müssen größere Sounds „gestreamt“ werden, d.h., sie befinden sich im regulären Arbeitsspeicher und werden nur häppchenweise in die Sound-Hardware geschoben. Immer nur die Portionen, die wirklich gerade abgespielt werden. Oder aber ein Sound muss dubliziert werden, weil er mehrmals parallel ertönen soll (z.B. wie beim lustigen Knattern einer Maschinengewehrsalve). Von zusätzlichen Effekten habe ich noch gar nicht gesprochen, aber da bin ich mir auch noch nicht sicher, was es alles geben wird. Nicht, dass jemand jetzt denkt, die DirectSound-Komponente wäre ein komplexeres Baby als die Direct3D-Komponente zur Grafikdarstellung etc. Aber das ist ja auch kein Vergleich.

Sobald die Sounds letztlich abgespielt werden können, werde ich die FaceLabs (das Modul für die grafische Benutzeroberfläche) weitestgehend fertigstellen. Wenn es soweit ist, werde ich eine kleine Demo schreiben, die ich dann zum Download bereitstelle. Das wird nix Wildes sein. Nix, was mit dem eigentlichen Spiel zu tun hätte. Sondern einfach nur ne kleine Demo des FaceLabs-Moduls. Aber da könnt ihr euch dann schon mal auf den ersten Download von dieser Seite freuen, hihihi.

Bezüglich des FaceLabs-Moduls bin ich mir aber noch nicht sicher, wie ich die Individualisierung der optischen Darstellung der Fenster und Steuerelemente etc. realisieren werde. Ich hatte zunächst an eine XML-Datei gedacht, in der die Farben zum Mischen und Koordinaten sowie Dateinamen der Texturen und Sounds etc. vermerkt sind, jedoch bockt mich das mittlerweile nicht mehr so an. Ich würde lieber alles in einer Binärdatei haben, also Sounds, Grafik, sonstige Daten wie Farben und Koordinaten und so alles in einer „Paketdatei“. Dafür ist dann natürlich eine Art Editor nötig, um so ein Bündel zu einer Datei zusammenzuführen. So ein Editor bedeutet wieder mehr Aufwand. Aber ich fänds halt einfach schöner.

Kritik, Vorschläge und Ideen oder auch Wünsche sind sehr willkommen.

Naja, mal sehen. Ich bin selbst gespannt! Bis die Tage.

Kleine BodyLabs-Demo

Donnerstag, 31. Juli 2008

Ich habe jetzt mal ein klitzekleines Video „gedreht“, in dem die Physikengine BodyLabs zum Einsatz kommt. Ich habe es auf die Schnelle erstellt; die Qualität ist nicht die beste. Zu meinem Pech führt das dazu, dass einige Stellen nicht ganz sauber und korrekt rüberkommen. Ziemlich in der Mitte des Videos flippt der Würfel am rechten Rand recht eigenartig rum. Ich sollte möglichst bald ein besseres Video erstellen, damit ihr seht, dass das wirklich nur am Video liegt, denn eigentlich sind die Berechnungen sehr überzeugend.

Get the Flash Player to see the wordTube Media Player.

Zu Testzwecken habe ich mir eine OpenGL-Anwendung erstellt, um die Objekte zu visualisieren. Die bunten Quader und Kugeln in dem Video entsprechen natürlich nicht den Objekten im Spiel. Die OpenGL-Anwendung ist nur zum Testen der Physikengine, die sich bisher übrigens auf 2D-Objekte beschränkt. Es werden zwar 3D-Objekte dargestellt, die Berechnung findet aber nicht auf Quadern und Kugeln, sondern auf Rechtecken und Kreisen statt.

Cyber3D

Montag, 23. Juni 2008

Ursprünglich sollte Cyber E-Razor rockt die Galaxis ein reines 2D-Jump-and-Run werden. Lediglich verschiedene Layer, die unterschiedlich schnell über den Bildschirm flitzen, sollten ein wenig Perspektive ins Spiel bringen. Jedoch habe ich mich dann aus mehreren Gründen dafür entschieden, es nicht bei reiner 2D-Grafik zu belassen, sondern bestimmte Objekte — also nicht alle — als 3D-Modelle darzustellen.

Darunter fallen auch die zu steuernden Charaktere. Hier offenbare ich nun ein paar Bilder von Cybers 3D-Modell. Die Screenies wurden übrigens mit MilkShape 3D gemacht und entsprechen nicht der letztendlichen Visualisierung im Spiel.


Cyber von der Seite (flat shaded).


Cyber von vorne (smooth shaded).


Cyber in Aktion (textured).

Die Bones und das Gittermodell sind noch nicht optimal einander angepasst. Das sieht man, wenn man einen Blick auf das linke Knie wirft, das ragt nämlich nach oben hinaus. Ist in diesem Fall aber eine Kleinigkeit. Da gibt es Stellen mit wesentlich höherem Überarbeitungbedarf, die man hier jetzt nicht so offensichtlich sieht. Mit dem Gesicht bin ich auch noch nicht zufrieden. Das Gittermodell ist aboslut in Ordnung, aber die Textur ist noch nicht so geil. Wenn ich die ändere, muss ich aber das Gittermodell ggf. auch anpassen bzw. halt beides aufeinander abstimmen. Da das ebenfalls — so wie beim Knie — nur eine Frage der Ästhetik ist, hat es geringere Priorität. Ich kümmere mich da später drum.