Seite 28 von 66

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 12.07.2013, 06:17
von gdsWizard
Ich habe gestern festgestellt, das noch einige Bugs im Designer enthalten sind. Zwar stürzt das Programm nicht ab, aber einige Funktionen haben doch noch nicht das korrekte Verhalten. Wenn es mir zeitlich möglich ist werde ich also nachbessern.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 13.07.2013, 19:19
von RazorX
Ich habe in den letzten Tagen an einem neuen Logging-System gearbeitet, was neben der Erfassung von Datei/Funktion/Zeile auch in der Lage ist brauchbare Informationen im Falle einer Exception zu generieren. So gibt es zum einen eine Funktion, die SEH oder auch C++ Exceptions abfängt und entsprechend logt. Es kann aber auch ein Makro manuell genutzt werden, was ein loggen von zu schmeißenden Exceptions vornimmt. SEH Exceptions (Windows/MSVC++) sind Hardware-Exceptions wie z.B. Access Violation, Division by Zero, etc.).

Code: Alles auswählen

// Sichere Ausführung
Fate2::securedExecution(std::bind(&foo));

// Logging einer zu schmeißenden C++ Exception (wo ich das schreibe fällt mir auf, dass man das sogar noch vereinfachen könnte, sodass die Exception dem Makro übergeben wird und dieses die Typinformationen generiert)
FATE_LOG_FATAL(GetThreadContext(), "std::logic_error", "Exception Beschreibung", "Weitere Beschreibung mit __VA_ARGS__ erweiterbar", ...);
throw std::logic_error("Exception Beschreibung");
Wenn eine C++ Exception nicht durch einen catch-Block abgefangen wird, so landet diese im SEH-Filter und ich kann diese loggen. Der Typ wird dabei aus der EXCEPTION_POINTERS Struktur hergeleitet, dort befinden sich mehrere type_info Informationen, sodass man sogar relativ zuverlässig einen cast vornehmen kann um an die ursprüngliche C++ Exception zu kommen. Das ist leider auch alles etwas wage da es keine offizielle Dokumentation gibt, letztlich sind das alles Compiler-interne Typen, die zwar vorhanden sind aber von IntelliSense nicht erkannt werden. Nunja das explizite Loggen einer C++ Exception ist dann sinnvoll, wenn diese von einem catch-Block gefangen werden würde. Gemäß der Implementierung des try/catch lässt sich nämlich im catch nicht auf die ursprüngliche Position im Quelltext zurückfinden. Um einen Stack-Trace anzufertigen sind die Kontextinformationen aber wichtig, weswegen das Makro auch ein GetThreadContext() bekommt.

Gespeichert wird das ganze auf XML Basis, am Anfang Informationen über den Ausführungszeitpunkt sowie der Hardware des Computers, dann am Ende die ganzen Events. Als Front-End hab ich mir dafür ein HTML5 Seite gebaut, die mit Javascript/jQuery/XSLT/CSS das ganze in eine präsentable Form bringt, inklusive per Thread-Filterung und Eventtyp-Filterung.
callstack.PNG
filter.PNG
Für den Stack-Trace verwende ich die "StackWalker"-Bibliothek (http://stackwalker.codeplex.com/), hier wäre es sogar möglich noch Informationen über geladene Symbole und co zu generieren.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 16.07.2013, 14:42
von gdsWizard
Hallo, ich wollte mal eine kleine Kathedrale zeigen die ich mit meinem Softcube Designer 3.0 erstellt habe. Insgesamt geht das Modellieren ziemlich flüssig. Die Datei Kathedrale.scd ist 649 KByte groß und wird, wenn ich den Download wieder einstelle, mit dabei sein. 2 kleine Bugs habe ich korrigiert.
Kathedrale.jpg
Edit: Da sieht man ja die Labels in der ListvIew teilweise nicht mehr. Das tritt manchmal auf seit ich von DX9 auf DX11 umgestellt habe. Wenn man Drag&Drop Technique bei den Pane(-s, -pages ) macht. Hat jemand eine Idee woran das liegen könnte ? In den nächsten Tagen werde ich wieder alles auf meiner Seite anbieten.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 20.07.2013, 14:38
von gdsWizard
Ich habe auf meiner Homepage http://www.gamedevstudio.com eine neue Version als Demo eingestellt. Die obige Kathedrale ist mit dabei. Als Einschränkung hat die Demo nur das nicht alle Cubes als DirectX File gespeichert werden.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 20.07.2013, 16:53
von gdsWizard
Eben habe ich noch 2 Bugs behoben. "Align on grid" funktionierte nicht. Das Schliessen einer angedockten ProjectPage (beim Softcube Designer die Ansicht einer Texture) führte bis eben zum Absturz.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 20.07.2013, 16:56
von Schrompf
Magst Du nicht einen separaten Thread dazu aufmachen, wenn Du das hier wie ein Devlog führst? :-)

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 20.07.2013, 17:27
von gdsWizard
Mache ich doch gerne . Aber erst Morgen. :)

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 27.07.2013, 21:54
von Krishty
Das New York-Level aus Driver von 1999 – einfach aus Jux und Dollerei.
nyc wireframe.png

Mal sehen, wie ich die Texturen reinkriege.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 28.07.2013, 18:25
von Krishty
Schon besser:
13-07-28 NYC 1-2.png
13-07-28 NYC 2-2.png
13-07-28 NYC 3-2.png
Beängstigend, dass ich heute ohne Culling als nicht-indizierte Triangle List runterrendern kann, was vor 14 Jahren High-End-Rechner brauchte. Bei 200 fps. (Mein Rechner ist schon vier Jahre alt, also eher vor zehn Jahren.)

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 29.07.2013, 06:52
von gdsWizard
Beeindruckend ! Vielleicht könntest du schreiben wie die Daten bei Driver vorliegen ? Das würde mich wirklich interessieren.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 29.07.2013, 12:33
von Krishty
gdsWizard hat geschrieben:Beeindruckend ! Vielleicht könntest du schreiben wie die Daten bei Driver vorliegen ? Das würde mich wirklich interessieren.
Driver ist ursprünglich ein PlayStation-Spiel, und die Datenstruktur ist dementsprechend angehaucht. Ich habe mich damit beschäftigt, weil ich mit dem Entschlüsseln der Driver 2-Daten, die PlayStation-exklusiv sind, nicht weiterkomme.

Das meiste hiervon hat someone972 für seinen Driver Texture Editor benutzt, auf dem ich im Wesentlichen aufbaue:

Die Städte selber liegen als Sammlung von Blöcken vor (weil Speicher knapp ist und das Bewegen des CD-Lesekopfs langsam). Das New York-Level aus den Schnappschüssen ist z.B. 4×4 km groß, und besteht aus 8×8 Blöcken.

Jeder Block bedient sich aus einem globalen Modellverzeichnis. Das Verzeichnis umfasst für New York 1030 Modelle, die dann an beliebiger Stelle und mit optionaler Rotation um die Y-Achse, aber ohne Skalierung eingefügt werden.

Modelle, die mehr als einen Block bedecken, werden in einem zusätzlichen globalen Block gespeichert. Tatsächlich sind es also 65 Blöcke für New York.

Die Modelle sind immer mit Flächenbeschreibungen ausgestattet; aber nicht zwingend mit Punktbeschreibungen. Das kommt daher, dass sich viele Gebäude nur in Farbe und Textur unterscheiden, aber nicht in Geometrie. In diesem Fall verweisen Modelle auf die Vertices anderer Modelle. Sie haben außerdem Bounding Boxes und Clipping Planes. Außerdem liegen Motion Capture-Daten für Passantenanimation vor und Pfade für Verkehrssimulation.

Die Flächen liegen in einem alptraumhaften Format vor: Als Dreiecke oder Rechtecke; mit oder ohne Texturen; mit oder ohne Vertex-Farben; mit oder ohne Normalen. Davon je nach Shading-Art nur eine, drei, oder vier. Jede Kombination aus diesen Attributen hat ein eigenes Format und erfordert eigenen Code. Warum das gerade auf so schwachen Plattformen wie der PlayStation gemacht wurde, und ob es Obfuscation ist, weiß ich nicht. Es wurde aber für Driver 2 beibehalten.

Weil Driver oft bei Nacht spielt, sind die meisten Flächen mit Normalen ausgestattet. Im Spiel selber bewegt sich nachts eine Punktlichtquelle mit dem Spieler mit.

Die Vertices liegen in der PC-Version als float vor. Die Koordinaten sind aber absolut glatt und außerdem mit 256 vorskaliert. Ich gehe deshalb davon aus, dass in der PlayStation-Version 16- oder 24-Bit-Festkommazahlen zum Einsatz kommen. Winkel und Normalenvektoren sind in 13 vorzeichenbehafteten Bits gespeichert.

Texturen liegen in 8 oder 16 Bits pro Pixel vor. 8-Bit-Texturen sind palettiert, und haben je einen Satz von einer bis acht Paletten für unterschiedliche Tageszeiten und Einsatzzwecke – eine Baumtextur wird z.B. mit anderer, vollschwarzer Palette als Baumschatten wiederverwendet; Autos eines Typs sind gleich nur ihre Palette wird für unterschiedliche Farben durchgewechselt; usw. 16-Bit-Texturen sind RGB oder RGBA oder beides; ich weiß es noch nicht genau.

Alle Texturen sind PlayStation-typisch 256² Pixel groß, und als Sammlung einzelner Regionen (sogenannter Texture Windows) anzusehen. Die Hardware beschränkt beim Zeichnen jegliches Filtern auf diese Regionen, so dass benachbarte Regionen nicht ineinander überbluten. Das nachzubilden ist eine ziemliche Herausforderung und wird mich noch in Schach halten; darum sind die Texturen auf meinen Schnappschüssen auch noch so hässlich.

New York besteht aus ungefähr 70.000 Modellreferenzen mit insgesamt etwa 300.000 Dreiecken. Im Augenblick backe ich alle Flächen in eine 40 Megabyte große Vertex-Liste, in der ich außerdem den Texturindex jeder Fläche vermerke. Die 170 Texturen konvertiere ich zu 24-Bit-RGBX (Transparenz habe ich noch nicht im Griff) und stopfe sie in ein 256×256×170 großes Texture Array (ungefähr 30 MiB). Die Stadt wird als einzelner Draw Call gezeichnet; der Texturindex jeder Fläche wandert aus den Vertex-Daten über den Vertex Shader in den Pixel Shader und wird dort im Texture Array nachgeschlagen.

Die drei anderen Städte (Miami, Los Angeles, San Francisco) haben ähnliche Ausmaße und Datengrößen. Das Apartment aus den Zwischensequenzen ist deutlich kleiner. Das Trainingslevel konnte ich noch nicht laden; da ist irgendwas an dem Format anders.

Hier ist ein kleines Video. Dummerweise war meine Hardware zu langsam für die Aufnahme der hohen Auflösung; tatsächlich läuft es natürlich flüssig.
[youtube]7vJ88-tFQoA[/youtube]

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 29.07.2013, 14:21
von gdsWizard
@Krishty: Danke für deine sehr ausführliche Antwort. Der Driver Texture Editor hat dir sicher viel geholfen (ich habe ihn mal überflogen (den source)). Ich finde es gut das Du hier im Forum immer dein Wissen teilst. Nochmals Danke.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 29.07.2013, 20:58
von Krishty
gdsWizard hat geschrieben:Der Driver Texture Editor hat dir sicher viel geholfen (ich habe ihn mal überflogen (den source)).
Ja; vor allem die Flächenaufschlüsselung hat mir Tage an Arbeit erspart. Schade, dass ich das Tool nicht eher gefunden habe.
Ich finde es gut das Du hier im Forum immer dein Wissen teilst. Nochmals Danke.
Gern; zumal ich aus offensichtlichen Urheberrechtsproblemen nicht einfach alles zum Download stellen kann.

In der Zwischenzeit:

Ich habe das Transparenzproblem weitestgehend gelöst: palettierte Texturen sind immer deckend; bei 15-Bit-RGB-Texturen sorgt der Color Key (1, 1, 1) für Volltransparenz. Wozu das 16. Farbbit da ist, habe ich noch nicht begriffen. Vielleicht ist es einfach ein Bit Zusatzgenauigkeit für einen der Farbkanäle.

Außerdem führe ich wirklich banale Lichtberechnungen auf den Flächen durch. Die Wirkung ist aber massiv, denn das Shading im linearen Farbraum sorgt dafür, dass der Dunst erst vor schattigen Stellen so richtig zum Tragen kommt.
13-07-29 NYC 3.png

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 30.07.2013, 02:36
von Niki
Nette Arbeit, Krishty. Besonders die Sichtweite macht das schön.

Ist zwar nicht wirklich relevant, aber bin ich hier der einzige dem die Straßenmarkierungen mehr als merkwürdig vorkommen? Wo fangen denn da die Lanes an und wo hören sie auf? Auch wenn ich nach New York Bildern google, kann ich nichts in der Art finden. Irritierend :D

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 02.08.2013, 17:12
von BeRsErKeR
Krishty hat geschrieben:Ich habe das Transparenzproblem weitestgehend gelöst: palettierte Texturen sind immer deckend; bei 15-Bit-RGB-Texturen sorgt der Color Key (1, 1, 1) für Volltransparenz. Wozu das 16. Farbbit da ist, habe ich noch nicht begriffen. Vielleicht ist es einfach ein Bit Zusatzgenauigkeit für einen der Farbkanäle.
Verbreitet sind doch R5G6B5 und A1R5G5B5, aber du meintest ja dass es über nen ColorKey geht, daher würd ich die 1. Variante vermuten oder halt X1R5G5B5, also mit ungenutztem 16. Bit. Gibts ja öfters mal sowas.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 02.08.2013, 20:43
von Krishty
Es ist definitiv kein 6-Bit-Grün; das letzte Bit sieht aber auch nicht ungenutzt aus (sondern weist deutliche Muster auf). Ich kann nur mutmaßen, dass vielleicht eine Specular Map für Regen und Schnee im Spiel ist – oder irgendwas PlayStation-spezifisches …

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 12.08.2013, 15:44
von Jonathan
Ein paar Modelle für unser aktuelles Projekt:

[youtube]SyKY6s81N2o[/youtube]
[youtube]az6qFY_V3zo[/youtube]

(Die Azteken gehören nicht dazu)
[youtube]_eSTovjSdv0[/youtube]

Das ganze wir ein kleiner, netter Shooter werden. Spiellogik gibt es momentan noch nicht so viel, da ich noch viel an der 3D Engine machen muss.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 13.08.2013, 09:23
von Thoran
Sehr schöne Charaktere. Mich würde da mal interessieren wie du für Charaktere das UV-Unwrapping machst? Verwendest du da spezielle Tools die Dir die Problematik der Verzerrung in der 2D-Textur abnehmen?

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 18.08.2013, 14:03
von Jonathan
Ich habe da gar nix gemacht, das war alles Kai. Er benutzt eigentlich ausschließlich Blender zum modellieren, und dementsprechend dann auch Blenders Unwrapping-Tools.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 24.08.2013, 11:26
von shadow
[youtube]nwnTaGe8WCI[/youtube]

Außer dem Char sind alle Grafiken Platzhalter, auch die Schussanimation ist noch nicht final und muss überarbeitet werden.

[EDIT:] Wir freuen uns sehr über FB-likes: https://www.facebook.com/pages/AntZeit/ ... 98?fref=ts

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 28.08.2013, 16:04
von starcow
Sorry für's OT:
Thoran hat geschrieben:Sehr schöne Charaktere. Mich würde da mal interessieren wie du für Charaktere das UV-Unwrapping machst? Verwendest du da spezielle Tools die Dir die Problematik der Verzerrung in der 2D-Textur abnehmen?
Falls du nach einem guten UV-Layout only Tool suchst, kann ich dir UVLayout von headus empfehlen. Das Tool ist so gut, das es einige Anweder gibt, die trotz der integrierten UVLayout-Lösungen ihrer Main-Programme darauf setzen.

http://www.uvlayout.com/

UVLayout gibt dir zu dem Verzerrungsgrad ein Feedback in Form von Farbverläufen.
Meinem Wissen nach ist es so ziemlich das beste Tool, um ein UVLayout zu machen. Aber mit den "Inhouse" Lösungen der Grossen Modelling Programm gehts natürlich auch gut - so ists ja nicht. :-)

Gruss starcow

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 04.09.2013, 01:35
von Specialist
Und hier mal wieder von mir etwas, das ausnahmsweise nichts mit Grafikprogrammierung zu tun hat.
Ich habe mir ein einfaches Backup-Tool geschrieben, das auch zum Download bereit steht.
Das Tool kümmert sich eigentlich nur darum Dateien aus einem Verzeichnis in ein anderes zu kopieren und kopiert dabei nur geänderte oder neue Dateien.
Bei Backups, die mehrere GB groß sind, ist das durchaus praktisch, wie ich finde.
Eine Autostartfunktion gibt es ebenfalls, damit das Tool in Taskplaner o.ä. eingebunden werden kann.

Weitere Infos gibt es hier.

Bild

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 04.09.2013, 11:55
von Thoran
Jonathan hat geschrieben:Ich habe da gar nix gemacht, das war alles Kai. Er benutzt eigentlich ausschließlich Blender zum modellieren, und dementsprechend dann auch Blenders Unwrapping-Tools.
Eventuell mag er ja mal verraten, wie das Unwrapping und das prinzipielle Texturpainting bei ihm funktioniert. Wie gesagt ich hab da so meine Probleme mit den Verzerrungen, die beim Unwrappen entstehen. Dadurch wird ja das anschließende Texturpainting durchaus nicht einfach.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 05.09.2013, 10:29
von antisteo
Da mich das Thema Partnersuche gerade ziemlich beschäftigt, habe ich einfach mal eine Webseite aufgesetzt, die die Altersformel des Mathematikers Peter Eberhard umsetzt.
http://launix.de/partnerkalkulator/

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 05.09.2013, 14:18
von starcow
antisteo hat geschrieben:Da mich das Thema Partnersuche gerade ziemlich beschäftigt, habe ich einfach mal eine Webseite aufgesetzt, die die Altersformel des Mathematikers Peter Eberhard umsetzt.
http://launix.de/partnerkalkulator/
Was ist das den für ein unfreundlicher, selten dummer Einführungstext auf der Seite? Oder soll das vielleicht lustig sein?
Was ist den ein "nicht-alternativer Lebensstil". Da ich nicht weiss, wie man diesen definiert, weiss ich auch nicht, ob ich abzischen soll...
Ich hab trotzdem mal auf weiter geklickt :-/

Gruss

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 05.09.2013, 23:23
von Jonathan
Peter Eberhard habe ich noch nie gehört, dafür aber das hier:

http://xkcd.com/314/

(was die selbe Formel zu sein scheint).

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 06.09.2013, 22:50
von Aramis
Da mich das Thema Partnersuche gerade ziemlich beschäftigt, habe ich einfach mal eine Webseite aufgesetzt ...
Viel witziger finde ich persoenlich, dass du scheinbar davon ausgehst, dass alle relevanten Besucher maennlich sind. Ich persoenlich wuerde auf meiner Firmenhomepage ansonsten eher vermeiden, potentiell diskriminierende Sprueche zu verbreiten :-)

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 07.09.2013, 15:28
von Krishty
So. Bei meinem Driver-Kram ist das Antialiasing fertig implementiert, und Schatten sind isoliert um sie transparent darstellen zu können.
13-09-07 NYC with transparent shadows.png
Damit wäre ich vorerst fertig; für den ganzen Texturatlas-Kram habe ich nämlich keinen Nerv.

Original:
orig.png


… und Miami weil’s ein hübscher Kontrast ist:
13-09-08 Miami.png

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 05.10.2013, 16:27
von kristof
Yea! Ich hab Cascaded Shadow Maps ans Laufen bekommen. Sehen noch nicht perfekt aus und es gibt noch ein paar unschöne Artefakte, aber hey, es läuft :D
CSM1.png
Hier sieht man noch ein paar Artefakte.
CSM2.png
Und hier noch ein Bild, das verdeutlicht auf welche Shadow Map zugegriffen wird.
CSM3.png
Alle vier Tiefen-Texturen sind 1024x1024 Pixel groß und haben 16 bit Tiefe. Um die Kanten weich zu zeichnen nehme ich vier Samples pro Fragment. Da ich vorher noch nie Shadow Maps implementiert habe, habe ich mich an diesem Tutorial orientiert: http://www.opengl-tutorial.org/intermed ... w-mapping/ . Kann ich sehr empfehlen.

Re: Showroom - Aktuelle Arbeiten und Projekte

Verfasst: 06.10.2013, 21:19
von Jonathan
Jay! Mit Schatten werde ich mich demnächst auch wieder beschäftigen :)