Max von Tettenborn

Freelance 3D-Artist

SAG v2.0

Hi there,

first of all: I’ll write in english from now on since it is kind of the default language for all things CG and tech.

Secondly: I would like to present a rewrite of my Skyrim Alchemy Guide. Unlike the original, v2.0 was done mainly for practicing. During the last semester break I started learnig JavaScript, inspired by a fellow student, who rapidly implemented a prototype of a boardgame for a class, using html, css and JS. SAG v2.0 is my first project using the language. It runs in your browser (hopefully! at least it runs in my firefox…better not try IE), no istallation or download needed. And it saves its current state on your computer, which is important if you want to use it across multiple sessions. It also features a pretty weird sounding acronym, but that happens if you don’t think about that before naming your product. At some time in the future I will probably also add a feature for switching between different characters. I wrote a tiny user guide in my last post (in german – Google Translate is your friend), so refer to it if you have problems using it. The only thing new is the Reset-Button, which deletes all the links representing the knowledge of a character, leaving you with a clean state as if you visited the site for the first time.

So have fun with it, I hope it makes potion-brewing a bit more comfortable and leave a comment if you find a bug or just want to say thanks.

Happy Holidays!

Posted 1 year, 12 months ago at 10:35.

Add a comment

Skyrim Alchemy Guide

Nach dreisemestriger Pause hab ich mal wieder was anzubieten, diesmal weder Studien- noch CGI-Projekt. Als ich letztens Skyrim gespielt habe ist es mir ziemlich schnell auf die Nerven gegangen, wie unübersichlich das Alchemiemenü ist. Also habe ich ein kleines Tool programmiert, den Skyrim Alchemy Guide, welcher sowohl auf übersichtliche Weise die Effekte der Zutaten anzeigt, als auch die Möglichkeit bietet, gelernte Effekte zu speichern. So behält man leicht den Überblick über den Wissensstand des eigenen Charakters.

SAGDie zwei Listen beinhalten links die Effekte und rechts die Zutaten. Ein Klick auf ein Listenelement in einer Liste filtert die andere Liste entsprechend. Durch einen Rechtsklick auf ein Element in der gefilterten Liste lässt sich speichern, dass diese Verknüpfung vom Charakter gelernt wurde, was durch einen grünen Text dargestellt wird. Ein Beispiel: Mein Charakter hat gerade gelernt, dass Fly Amanita den Effekt Resist Fire beinhaltet. Also wähle ich rechts Fly Amanita aus, die linke Liste enthält nun nur noch die Effekte dieser Zutat. Ein Rechtsklick auf Resist Fire macht diesen Effekt grün, mein Charakter kennt diesen Zusammenhang. Genausogut hätte ich auch erst links Resist Fire auswählen können, rechts wären dann alle Zustaten, die diesen Effekt beinhalten aufgelistet. Ein Rechtsklick auf Fly Amanita wäre dann gleichbedeutend mit obigem Vorgehen.

In ungefilterten Listen haben die Farben leicht andere Bedeutung: Rote Elemnte zeigen an, dass noch keine Verknüpfung gelernt wurde, die dieses Element enthält. Orange bedeutet, dass manche, aber noch nicht alle Verknüpfungen gelernt wurden und über die grünen Elemente ist schließlich alles bekannt.

Die gelernten Verknüpfungen werden in der Datei SaveData.txt im selben Ordner wie der Guide gespeichert. EffectData.txt enthält alle möglichen Kombinationen und sollte eigentlich nicht verändert werden. Aber falls ein Mod oder Addon irgendwann mal neue Zutaten oder Effekte hinzufügt oder die Alten verändert, dann lassen sich die Änderungen über diese Datei im Guide umsetzen.

Das ganze Tool habe ich innerhalb eines Tages geschrieben, es könnte sein, dass es an manchen Ecken noch nicht ganz rund läuft. Aber eigentlich ist es so simpel, da kann gar nicht viel schief gehen. Wer trotzdem Bugs findet, kann mir gerne Bescheid sagen oder sie selber korrigieren, hier gibts noch den Quellcode.

Posted 2 years, 4 months ago at 12:57.

Add a comment

Java Raytracer

Nachdem das letzte Semester vorbei war wurde von der Uni noch ein Wettbewerb angeboten, für den ein sehr rudimentärer Raytracer mit möglichst vielen zusätzlichen Features erweitert werden sollte. Zusammen mit einem Kommilitonen habe ich daran teilgenommen und den zweiten Platz belegt. Das Ergebnis gibts hier zum Download. Unten stehen zwei Bilder, die wir damit gerendert haben.

Raytracer

Natürlich war das Projekt als Übung gedacht und ist nicht für den echten Einsatz ausgelegt, dafür kann es auch viel zu wenig. Da wir uns in der beschränkten Zeit, die zur Verfügung stand hauptsächlich aufs einfügen neuer Features konzentriert haben, ist das ausführliche Testen und Bugfixen natürlich auch etwas auf der Strecke geblieben. Also nicht wundern wenn sich das Programm hin und wieder mal aufhängt. Außerdem haben wir mit Java gearbeitet und entsprechend wenig performant ist das Rendern. Dennoch sind viele wichtige Features vorhanden und es war äußerst lehrreich diese Machanismen, die man ständig benutzt und denkt zu verstehen, mal selbst zu implementieren. Da merkt man nämlich wie viel unsichtbare Komplexität unter der Haube eines Raytracers steckt. Und es hilft ganz erheblich dem Verständnis auch im Ungang mit den echten Raytracern wie Mental Ray.

Wer den Raytracer ausprobieren will, sollte das Zip-Archiv komplett in einen Ordner entpacken und die Datei JavaRT.jar starten. Dazu muss ein Java RTE installiert sein. Als nächstes kann über die Option “Load Data” eine der mitgelieferten Szenen geladen werden. Die Ordner “Environment Maps” und “Textures” sollten dabei im selben Ordner, wie die Szenen liegen. Alternativ oder im Anschluss kann über das Feld darunter auch ein OBJ importiert werden. Weitere Einstellungen sind über die Reiter zugänglich. Diese werde ich hier nicht erklären, da sie für jeden, der auch schon mal mit anderen Raytracern gearbeitet hat ersichtlich sein sollten.

glossy_reflectionsshader_tests

Und so sieht das GUI aus: (draufklicken für Originalgröße)

Raytracer-GUI

Hier noch eine Liste der von uns implementierten Features:

– General –
GUI
sophisticated resolution changing widget
Full gui control over the camera
Saving and loading of scenes
Bucket Rendering
Image saving (PNG)
OBJ Import
Transform Matrices (Scaling, Rotation, Translation)
Triangle Intersections
Triangle Meshes
Several useful color math and vector math functions

– Render Optimization –
Adaptive and incremental Sampling / Anti-Aliasing
Subdivision of geometry via an octree

– Shading and Materials –
Modular node-based shader system
Transparency / Refraction
UV Support for Triangles and Spheres
Bilinear Texture Interpolation
Support for procedural textures, some already implemented
Bump Mapping, Normal Mapping
Spherical Environment Mapping

- implemented shader-nodes -
Brightness
Texture Reader
Blinn Phong
Lambert
Ambient Occlusion
Vector Math
Intersection Property
Bump Map
Normal Map
Glossy Reflections
Incidence
Rescale
ColorMean
ColorMultiply

Posted 3 years, 6 months ago at 15:27.

Add a comment

My work “in the Wild”

Wieder mal habe ich meinen Blog eine ganze Zeit lang vernachlässigt, aber mit gutem Grund. Ich habe nämlich, wie schon erähnt, noch ein Studium angefangen, Informatik diesmal. Das erste Semester ist bald zu Ende und dann kann ich Java-Programmierung, ein gutes Stück diskrete Mathematik und noch ein paar andere nette Sachen zu meinen Skills hinzufügen. Aber eigentlich will ich in diesem Post etwas ganz anderes mitteilen.

Und zwar habe ich vor etwas über einem Jahr an einem Plakat für die Stadtwerke München mitgarbeitet. Dieses Plakat habe ich nun vor einiger Zeit an ein paar Plakatwänden in München gesehen. Ziemlich cool, seine Arbeit so “zum Anfassen” vor sich zu haben. Ich habe natürlich gleich ein paar Fotos gemacht.

IMAG0063IMAG0064

Mein Job war hauptsächlich Shading und Rendering der Windkraft-Anlagen und ein gutes Stück Kunden-Kommunikation.

Posted 3 years, 10 months ago at 16:12.

Add a comment

Flyer x2: “Der Club” Hasenbergl

Letztens habe ich für das Kinderzentrum Hasenbergl zwei Flyer gestaltet. Beide wurden als reine Online-Flyer konzipiert also für eine Verbreitung z.B. über soziale Netzwerke. Deshalb sind sie einseitig. Software: natürlich Photoshop.

flyer_100625flyer_100702

Posted 4 years, 3 months ago at 13:03.

Add a comment