16
$\begingroup$

How can I get a camera to render with a cabinet projection?

I know it is possible to get a gaming isometric projection, but that's not really what I want.

I've tried positioning an orthographic camera in almost all possible ways but still can't get one. Actually an orthographic camera wouldn't work because as soon as you get the world x-axis parallel to the viewport x-axis, the world y-axis is always parallel to the viewport y-axis.

I think it is something like shearing, but I am not so sure.

Cabinet projection:

A table from Wikipedia
Image from Wikipedia

$\endgroup$
4
  • $\begingroup$ Shearing can be accomplished using the Shift camera setting. $\endgroup$
    – Aldrik
    Commented Jul 18, 2013 at 15:47
  • $\begingroup$ @Aldrik, that works with perspective, but doesn't affect anything in orthographic. $\endgroup$
    – CharlesL
    Commented Jul 18, 2013 at 16:02
  • 1
    $\begingroup$ You may use a FOV value below 1 degree, put the cam very far away (to the proper distance), and shivt the camera (with a value around the cams distance). Such low FOV will result a render that looks like isometric. (Actually nearing 0 with FOV will LIM the image to the isometric.) $\endgroup$ Commented Jul 23, 2013 at 10:47
  • $\begingroup$ @RóbertLászlóPáli yes but that introduces problems of its own: you'll need a huge range of camera depth, for one thing, which could lose precision as well as causing unnecessary BVH calculations. When Cycles gets volumetric rendering, that could result in an undesirable increase thereof (because you're going through a ton of fog just to get to those objects). It also might mess with emission, but I'm not sure. $\endgroup$
    – wchargin
    Commented Oct 22, 2013 at 3:21

2 Answers 2

15
$\begingroup$

Demonstrating in 2D what is going on:

Demonstration

Mathematically it should be correct to render with a orthographic camera and later transform the image. I think this is the easiest method when you have multiple objects (so you do not have to add modifiers to each). First you should shear in 2D (skewing) the rendered image then (if needed) stretch to get the correct aspect.

Original:

Original

Sheared:

Sheared

Streched:

Streched

Most raster graphics editors have the tools to preform the above transformations. This can also be done in the compositor using a Blend texture and the Displace node.

$\endgroup$
3
  • $\begingroup$ On the sheared image you can actually see some strange anti-aliasing effect, not perfect, unfortunately. Also, scaling will result in a lower quality. Though this is definitely a possible way... $\endgroup$
    – Alvin Wong
    Commented Jul 19, 2013 at 14:59
  • 1
    $\begingroup$ Yes, quality gets worse sadly, but you could render the image twice as big (for example) and then scale it down, this will smooth out the quality loss, but costs render time. $\endgroup$ Commented Jul 23, 2013 at 10:36
  • $\begingroup$ Thanks a lot Róbert for your response, it's been really helpful. I just wanted to complete it with an example of doing the shearing using blender compositor for those like me that are not that familiar with composition nodes: screenshot Grab it from here Again, thanks, wonderful answer. $\endgroup$
    – user3249
    Commented Apr 23, 2014 at 23:49
7
$\begingroup$

Could just deform the model

  1. Point your orthographic camera down the Y-axis.
  2. Create a lattice Shift+AL with the following number of points: U: 1, V: 2 W: 1
  3. Enter Edit Mode Tab, select all points A and perform the following rotations:
    • RZ-45Enter
    • RX45Enter
  4. Finally add a Lattice modifier to you model(s) with the Object set to our previously created lattice. 3D View with a cube with cabinet projection deformation.
$\endgroup$
1
  • $\begingroup$ Hmm… I tried your solution, but still getting isometric render $\endgroup$ Commented Mar 10, 2016 at 0:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .