Bereich: News Uhrzeit: 14:07 38.107.191.92
Vorhandene Einträge: 52
News sortieren: | Anzahl pro Seite:


Betreff: Neue Engine-Features
Geschrieben von J!0X, 03.10.2008 - 15:01 Keine Kommentare

Also in chronologischer Reihenfolge der Implementierung:
Beim Praktikum an der Universität entstand ein kleines Shadersystem mit funktionsfähigem Phong-Shader.
Objekte in der Szene werden jetzt durch einen Szenengraphen verwaltet und können durch das Scriptsystem erstellt, manipuliert oder gelöscht werden. Das lokale Koordinatensystem eines Nodes wird visualisiert und kann selektiert, verschoben und rotiert werden:



Es ist jetzt auch möglich, MD2-Models (Format aus Quake 2) zu laden, anzuzeigen und zu animieren.

(Hier mit Phong-Beleuchtung)

Zuletzt habe ich diesen Algorithmus zur Kollisionserkennung und -behandlung eines Ellipsoids mit beliebigen Dreiecken implementiert. Da dieser aber bei meiner Heightmap mit 6500 Dreiecken etwas zu langsam wurde, entwickelte ich noch einen Octree, der zur Optimierung nur nahegelegene Dreiecke dem Algorithmus übergibt.



(Das Model ist unabhängig von der Kollision)


Betreff: Serverumzug
Geschrieben von J!0X, 02.05.2008 - 12:41 Keine Kommentare

Hier war während eines Serverumzugs alles offline, aber es sollte bis auf Directory Listing alles wieder funktionieren.
Schon länger nicht mehr geschrieben hier...
Ich arbeite momentan an einem kleinen Scriptsystem, das auf den Szenengraph zugreifen soll.
Ziel wäre z.B.:
root.particles1.setColor 0.23 0.84 1.0
Der Aufruf von Funktionen mit beliebigen Parametern funktioniert schon, sodass ich mich jetzt auf die Verbindung zum Szenengraphen konzentrieren kann.


Betreff: Gitarre
Geschrieben von J!0X, 25.12.2007 - 2:00 Keine Kommentare


Hier sieht man meine neue Yamaha LL26. Ich habe sie jetzt seit ein paar Wochen, war aber zu faul, ein Foto zu machen.


Betreff: Tile-Engine und Partikelsystem
Geschrieben von J!0X, 24.09.2007 - 12:06 Keine Kommentare

Ich hab mal wieder an meiner Engine rumgebastelt und einige kleine Sachen hinzugefügt:
-Dynamische Tile-Engine
-beliebige Größe, passt sich der Auflösung an
-ein Tile hat eine Textur, eine Funktion (Wall, Ladder, ...) und ein Attribut (z.B. Score = 4)
-Kollisionserkennung und Gegenwirkung (Stoß), Gravitation
-Laden und speichern
-Granatenwerfer als Beispiel für Kollisionen etc.
-Kann auch dreidimensional gerendert werden




-Partikelsystem
-Verschiedene Eigenschaften wie Mittelwert der Größe (Zufallswerte werden immer mit einbezogen), Geschwindigkeit und Richtung etc.
-Bisher nur richtig in 2D gerendert, ARB_point_sprite funktioniert nicht wirklich und ich habe keine Lust, eine Matrix zu invertieren, um dann die Quads richtig zu rotieren

-Skybox
-Textur kann über "loadskytex ..." geladen werden
-Kanten sehen noch blöd aus
-GUI_Slider
-GUI-Elemente können bewegt werden, wenn sie fokussiert sind und die mittlere Maustaste gedrückt wird


Betreff: Engine
Geschrieben von J!0X, 29.08.2007 - 19:21 Keine Kommentare


Ich kann jetzt aus Dateien verschiedene GUI-Konfigurationen laden und diese dann über Konsoleneingabe nutzen:
>showgui loadheightmap
Außerdem habe ich noch eine Konsolenausgabe hinzugefügt (echt sinnvoll für Debugging) und kann jetzt auch Skyboxes anzeigen(, die aber total scheiße aussehen).
Todo:
-Quads, die immer die Kamera anschauen
-Scene Graph
-Models laden
-Maps?


Betreff: Heightmaptest
Geschrieben von J!0X, 08.08.2007 - 18:25 Keine Kommentare


Hab mich ein bisschen mit Heightmaps beschäftigt und eine kleine Klasse geschrieben, die Bilder lädt und dann als Heightmap anzeigt. Ich habe auch die Normalenvektoren berechnet und eine Textur draufgemapt, damit das ganze schöner aussieht. Wie man vielleicht auf den Bildern erkennen kann, werfen die hohen Punkte der Map keine Schatten auf die tiefen Punkten (kurz: kein Shadow Mapping).
Keine Ahnung, was ich damit jetzt machen soll; vielleicht brauche ich die Klasse irgendwann noch einmal.

Heute im Englischkurs(Thema: False Friends):
Hr. Winter: "What is the meaning of bank?"
Philipp: "It is a double sit!"
Hr. Winter: "No, that's a bench."

Edit:
Philipp kann mit seinem Wortschatz echte Romane schreiben. Erst erzählt er uns von seinem double sit und jetzt beeindruckt er uns mit Trees, die leffs haben:
Hr.Winter: "Philipp?"
Philipp: "I would say..."
W.: "Never say 'I would say', because you say it right away!"
P.: "I will say... hmm it is diffucult; Please let me think two minutes."
[...]
W.: "Philipp, how do you imagine these two sentences?"
P.: "When I think on this two sentences, I think I sit on a balcon and look to a crowd."
[...]
W.: "Philipp, what do you see outside?"
P.: "I see trees with 'leffs'".

Kann leider nicht alles so schön nachkonstruieren, trotzdem beeindrucken mich seine Englischkenntnisse und ich beneide jetzt schon seinen Wortschatz.

Ich habe übrigens das RSS-Feed funktionsfähig gemacht. Wer dieses Weblog abonnieren möchte, kann das schöne Icon neben der Adresse anklicken. Das gilt natürlich nicht für die billigen Internet-Explorer-Nutzer :D.


Betreff: 3d2m beta1
Geschrieben von J!0X, 29.07.2007 - 21:30 1 Kommentar

Hab mich in den letzten Tagen noch einmal drangesetzt und 3d2m bis zum Betastadium gecodet. Es hat insgesamt etwas länger gedauert, weil ich nicht sehr intensiv an dem Spiel gearbeitet habe.
Bisher ist das größte Problem die Kamerafahrt. Leider habe ich auch keine Idee, wie ich das ganze verbessern könnte. Freue mich über Vorschläge.
Das Spiel sollte man nicht so ernst nehmen, da man wohl nicht gerne dreidimensionale Kartenspiele spielt. Eigentlich sollte es eine Art Test werden, wie weit ich mit meinen (noch sehr geringen) OpenGL skills komme :D.
Ich habe die Win32-Binary inklusive Daten bei sourceforge hochgeladen. Für Linux und Mac sollte man ohne Probleme kompilieren können, wenn man SDL, SDL_mixer, SDL_image, SDL_ttf und OpenGL als Libs installiert hat (Ich habe mit Mac keine Erfahrungen).
Sourceforge Projektseite
Windows .exe
Linux (kompiliert; keine Ahnung ob das funktioniert, hab keine Erfahrung mit Binaries unter Linux)
Source code


Betreff: 3d2m
Geschrieben von J!0X, 25.06.2007 - 13:34 Keine Kommentare

Hab schon länger nichts mehr geschrieben. Endlich sind Ferien und ich habe Zeit, mein 3D-Mau-Mau-Spiel zu Ende zu schreiben. Der Hauptteil des Spiels funktioniert bisher. Sowohl unter Windows als auch unter Linux öffnet sich das Fenster, die Texturen werden geladen und auch das GUI funktioniert. Eigentlich ist GUI nicht die richtige Bezeichnung, denn es können nur Buttons und Text angezeigt werden. Immerhin reicht es, um festzulegen, welcher Spieler vom Computer gespielt wird und welcher Spieler vom User gesteuert wird. Außerdem wird eine Hintergrundmusik geladen und im Menü gespielt. Als Musik habe ich einfach eine einfache Akkordabfolge (Grundkadenz, Paralleltonart) mit einigen Pentatonikskalen und Tonleitern auf der Gitarre und ein bisschen Schlagzeug genommen. Bisher nur als Midi-File. Im Spiel wird der Tisch mit Karten angezeigt und noch nicht richtig beleuchtet. Die "KI"(nicht wirklich eine richtige KI) des Computers funktioniert wunderbar und bevorzugt sogar bestimmte Karten. Ich kann also 4 Computer gegeneinander Spielen lassen und dabei zuschauen. Man kann auch als User mitspielen, ist aber immer noch mit einem Bug konfrontiert: Wenn eine Karte gezogen wird, wird bei den eigenen Karten eine Lücke angezeigt, aber die Karte fehlt. Ich habe irgendwo einen Fehler mit den Zahlenwerten der Karten. Als zweites Problem stellt sich dann das Licht: Ich habe die Normalenvektoren nicht richtig festgelegt und das Licht ist deshalb sehr unrealistisch. Das Problem wird sich aber auch in kurzer Zeit lösen.

Wenn das Spiel fertig ist, werde ich wohl noch etwas mit OpenGL rumspielen und mal schauen, was ich dann mit meinen Kenntnissen so anfangen kann.


Betreff: 3D-Mau-Mau
Geschrieben von J!0X, 13.04.2007 - 13:30 Keine Kommentare

Editierung: Ich habe Wordpress auf diesem Server eingerichtet, um eine Art Development-Weblog zu beginnen: 3d2m-weblog

Ich habe mir vor einiger Zeit überlegt, mein 2D-Mau-Mau-Spiel einfach dreidimensional mit Tisch, Stuhl und Kartenstapel etc. zu programmieren. Als Grundlage verwende ich OpenGL. Als nächstes habe ich mir überlegt, wie ich die Daten verwalte und verschiedene Objekte zeichne(rendere). Dann bin ich auf das erste Problem gestoßen: Text. Mit OpenGL ist es nicht möglich, einen einfachen Text anzeigen zu lassen.
Zum Glück gibt es für SDL eine Library namens SDL_ttf, die Schriftarten laden und auf verschiedene Weisen rendern kann. Die einfachste Möglichkeit ist, in jeder Frame den Text neu zu rendern, eine Textur zu generieren und diese auf ein Quad(Rechteck) zu bringen. Leider dauert es aber relativ lange, bis ein Text vollständig gerendert ist.
Hier ein Bild: Bild
Die Lösung ist, während des Ladevorgangs alle Buchstaben zu rendern und diese als Texturen zu speichern. Wenn ein Text angezeigt werden soll, zeichnet man für jeden Buchstaben ein Rechteck, das mit der jeweiligen Textur überzogen ist. Die Rechtecke müssen dann n * Breite + i verschoben werden, wobei n der Index des Buchstabens ist (z.B. der 3. Buchstabe), Breite die Breite eines Buchstabens und i der Abstand zwischen den Buchstaben. Natürlich muss man auch Neuzeilen (n) berücksichtigen.

Das nächste Problem ist die Bewegung von z.B. Karten oder der (imaginären) Kamera. Wenn man in jeder Frame ein Objekt um den Wert k verschiebt, bekommt man auf jedem Computer ein unterschiedliches Ergebnis. Das liegt daran, dass jeder Computer unterschiedlich schnelle Hardware hat. Wenn ich auf meinem Computer (AMD 3500+, X850XT)z.B. 30 Frames pro Sekunde bekomme und k = 2 Units ist, ist die Karte nach einer Sekunde (30 Frames) um
k * fps = 60 Units
verschoben. Bei einem anderen Computer, der z.B. nur 10 fps hat, wäre das Objekt um 20 Units verschoben. Es entsteht eine Abweichung von 40 Units.
Man muss sich also mit der Framerate und der Geschwindigkeit eine kleine Gleichung bauen:
frametime = Milisekunden, die für die letzte Frame benötigt wurden
s = Geschwindigkeit
Objekt.x = Objekt.x + s * (frametime / 1000)
s ist also die Anzahl der Units, die das Objekt in einer Sekunde (1000 Milisekunden) zurücklegt.

Diese beiden sind natürlich nicht die einzigen Probleme :D.


Betreff: Mills Mess geschafft
Geschrieben von J!0X, 01.04.2007 - 23:01 Keine Kommentare

Yeah, ich habe gerade den Mills-Mess-Pattern geschafft. Die Arme werden gekreuzt und werfen drei Bälle abwechselnd in die gleiche Richtung:


(Quelle: http://de.wikipedia.org/wiki/Mills_Mess)
Der Trick ist am Anfang echt schwierig, wird aber nach ein wenig Routine einfacher.


[1-10][11-20][21-30][40][50][52]

Apache Server at web.davlozone.de Port 80