Duplicating SimCity perspective in MagicaVoxel

I’m building the original SimCity (open-sourced) icons in MagicaVoxel such that rendering them closely resembles the original. However, I’m having trouble understanding exactly what I’m building.

The original graphics have a kind of overhead view, but it isn’t quite isometric. I’m not sure what to call this perspective. And, more importantly, I’m unclear how to achieve it in MagicaVoxel with ease.

The best I’ve been able to do is create the voxel object at the same “resolution” as the original bitmaps. Then, when it comes time to render, I position the voxel space with perspective camera positioned around x:87 y:80 z:105. Isometric and orthographic resist my attempts to make them mimic the source perspective.
MagicaVoxel and the original SimCity tile

Rendering this results in a GIANT image with my graphic occupying a tiny portion of the upper corner, and in the spirit of pixel-perfection this is only approximating the perspective of the original artwork. I feel there must be some better way to achieve what I’m looking for.

The render by MagicaVoxel using a wildly-offset camera approach

The big problem with this approach is that different tiles have different resolutions and keeping everything proportional to one another using a “eyeball it until the angles look right” approach is too hard to maintain consistency from image to image. I should be able to draw any tile and get consistent, uniform render results. But maybe I’m expecting too much?

In strict perspective mode, perspective lines converge to the center.
perspective mode sample

In isometric and orthographic mode, the buildings flatten out and show no depth
isometric mode sample

I am not opposed to exporting models into Blender for rendering, if there is a better solution in that application

Update: Using orthographic camera set as shown achieves something approximating the original tile art, but needs to be skewed back into correct square proportions (trying to unskew it in Photoshop resulted in a blurry mess)
enter image description here

Answer

You’re not getting correct results because the original SimCity uses a Cabinet projection — a subtype of Oblique projection and I doubt MagicaVoxel supports it.

enter image description here

Personally I don’t know any software that could render in that projection but I found a tutorial of rendering an oblique projection in the free Blender.

In the tutorial author creates a specific camera setup and a UV-map to distort the orthographic render to cabinet projection. What’s happening in the tutorial could be not very straightforward if you don’t know Blender but it’s easy to follow. Here’s the scene with the UV-file included and camera set up for top-down projection instead of side projection like in the tutorial if you want to play with it.

I used the scene it to recreate this reference:

enter image description here

My result (don’t mind the geometry/materials, the goal was a proof of concept):

enter image description here

Here’s how the scene looks inside the Blender:

enter image description here

Attribution
Source : Link , Question Author : christopherdrum , Answer Author : Sergey Kritskiy

Leave a Comment