Reverse Engineering "Ultima VII" Isometrics: WIP

Reverse Engineering "Ultima VII" Isometrics: WIP

The weeks' Friday Challenge is "homage", and the first thing that came to my mind is the unique style of Ultima 7.  A few days ago, I chatted with Bart on IRC about generating 2D-sprites from 3D-model, and thought I'll put 1+1 together...

...adding up to a PITA.  The graphical style of Ultima 7 comes from both the perspective as well as the rendering.  The perspective is a -135 oblique projection (thanks to the folks at Exult... I fiddled fruitlessly to get isometric to work); turns out that no major 3D modelling software supports this (non-)perspective.  Oblique projections are used in the ol' days for design/architecture, and organic forms are pretty hard to draw accurately.  (In U7's case, the severe distortion make it very hard to see if things are drawn correctly...)  The workaround is to have a camera with proper perspective pointing at a far, far away object that is appropriately offset from the scene you wish to render and xy-shift the line-of-sight.  After major fiddling, you end up with more-or-less the right perspective (I got sick of it when I was ~2-3 degrees off).

The rendering itself is mostly lit from the NW (top-left) direction, except for external architecture, where the shading is even throughout.  All images are outlined in a 1px black stroke (there are exceptions).  It's also very pixelated, but I think we don't need to emulate that aspect :)

An example follows.  Apparently there is a group that is trying to recreate/extend the original U7, so if nothing else, this stuff could be of interest to them!