Inception style perspective bending

So this all started when I was trying to block out a 3d version of my 2d concept art, but I couldn’t get the perspective to match the painting. The foreground angle and horizon line just wouldn’t match the painting, no matter what camera settings I tried.

So I had an idea to render each row of pixels at a slightly different camera angle, and to my surprise, the idea kind of works:

The setup is pretty hacky right now, but I thought I’d share how I did it.

  1. Set the render resolution to 512 x 4 pixels. (I would have done 512 x 1 pixel, but apparently 4 is the minimum for cycles)

  2. Since each ‘strip’ is 4 px tall, we’ll need 512px / 4 px per strip = 128 strips. So I set the animation timeline to be 128 frames long.

  3. Add keyframes to the camera’s loc/rot so that frame 1 has the perspective at the bottom looking correct, and frame 128 has the perspective at the top looking correct. Set the interpolation to linear.

  4. Animated the camera’s vertical shift. -0.5 on frame 1, and 0.5 on frame 128. Also set interpolation to linear

  5. Rendered out the animation (checked the little clock button under the sampling settings, so I didn’t get repeating noise patterns)

  6. Stacked all of the strips in imagemagick:

magick convert -append -flip strip*.png output.png

Since it’s all camera-based, the geometry doesn’t need to be bent, so there are no inconsistent shadows or anything:

2 Likes

Cool! Thanks for the tip! :smile: