GFX::Monk Home

Posts tagged: 3d

Low-Poly Wren

Well, it’s been a little while (something like 10 years) since I’ve done any 3d rendering. After seeing a bunch of inspirational things recently (particularly caminandes 3 and browsing Fi Silva’s work), I thought I’d crack open Blender and have a go at some low-poly artwork.

Of course, I pretty much had to make a blue wren:

(click for huge wallpaper size)

In terms of picking up Blender after not touching 3D software for a decade, it was actually not too painful. Initially it was frustrating to know what I wanted to do but not remember how to achieve it, but there’s plenty of starter resources out there and after a few hours I was feeling relatively comfortable with the basics. An my faded muscle memory probably worked in my favour, because last time I used Blender I had strong 3DS Max knowledge, making Blender feel weird and alien. But coming at it (relatively) fresh, it’s actually quite easy to get used to, and such an amazing piece of software.

I’m particularly amazed in how straightforward certain highly complex things have become - e.g. the builtin cycles renderer does an excellent (and fast!) job of Global Illumination - I remember pining over Arnold and other specialized renderers while scripting complex dome-light rigs to emulate GI with the standard 3DS Max renderer.

Also physics: just for fun I’ve already made a bunch of “solid object turns into liquid and splats on the ground” animated gifs because it takes literally minutes to set this up and run the simulations in Blender. Last time I tried physics I don’t think I even had access to a liquid sim, the most exciting thing I could do was drape a square cloth over a sphere.

Of course, none of that makes animation or modeling any easier, as those are not something the computer can really help much with. But it’s really encouraging to be able to light a scene and have a pretty result in next to no time, especially as lighting is really not my strong suit. And if I ever need a wren to suddenly dissolve into liquid, I’m all set for that too!

Beach stereos

Here’s a few 3D photos from a recent trip beachwards, run through slowmoVideo for smooth transitions:


(stereo version)


(stereo version)


(stereo version)

Interpolating 3D Stereo Pairs

Presenting 3D stereoscopic images is a challenge. Personally I usually view them in cross-eyed free viewing mode (like so), but that takes training (and sometimes eye strain). The most accessible method of displaying them to untrained viewers is the “wiggly gif”. This conveys depth pretty well, but can be jarring:

For a while now I’ve had my eyes on Simon Eugster’s excellent slowmoVideo software. It uses Optical Flow analysis to determine motion between frames, and then synthesizes intermediate frames to allow slowing down regular video footage without making it jerky. Conveniently, the same technique works really well at generating smooth transitions between stereo pairs.

Until a few days ago it required an nvidia graphics card (which I don’t have), but the recent 0.2.6 release can make use of the OpenCV software library instead - so I was thrilled to finally be able to try generating a smoothly interpolated version of some stereo pairs. Here’s the earlier stereo pair with just a few intermediate frames synthesized:

It’s only a few extra frames, but the effect is quite amazing. It sadly didn’t work on all of the stereo pairs I tried - if there is too much motion between frames it can get confused and produce weird artifacts, but when it works it’s pretty damn magical.

It’s a bit of a manual process at the moment, but I’m hoping to automate the laborious bits and integrate it into my stereoscoper command-line tool to allow generating these with minimal effort.

Stereoscoper and the Depth of Awesomeness

A few days ago I got a shiny new toy: a 3d camera from thinkgeek (I’d link to it, but it seems to have disappeared from their catalogue). I’m a massive fan of 3d photos / video, so it’s pretty cool to have a device that allows me to take stereoscopic photo pairs simultaneously (you can do it manually with a static scene, but those get boring).

Sadly (although not surprisingly), the quality is not great. The limited resolution is not really an issue given how you’re likely to view them, but the pictures come out awkwardly stretched to half the expected horizontal resolution. They are also pre-combined in a single JPEG, they are the way around for cross-eyed viewing, and the colour balance is frequently off between the two sensors (which can be really jarring).

Seeing a lot of manual photo fixing in my future, I set out to automate it. And thus stereoscoper was born, as a way to bulk-convert stereo images to other formats. Aside from the obvious geometry changes (the horizontal resolution and image placement), I also learnt all about histogram matching in order to make the colour balance consistent across stereo pairs. And in order to make animated gifs that match up nicely, there’s even an interactive mode where you can fine-tune the alignment of the image pairs.

In the wiggly-animated spirit of 3ERD (note: some images there are NSFW), here’s some fun we had in the park with my new toy:

(click to toggle each animation. It’s off by default to save your brain from having a fit ;)

(stereo)

(stereo)

(stereo)

(stereo)

Update: Click the (stereo) link under each image for a cross-eyed viewing version.

Photo.17

A lego sculpture, composited into a photo of the carpark roof at the local shopping center.

Photo.16

A composition of a lego figure I created onto a photo of the side of a local hospital. This is a cross-eyed stereo render.

Photo.15

A 3D Photo composition I did for my school folio, using a photo of the art building and compositing the 3D dominoes into place.

Photo.14

A still I did for an IRTC competition in 2002, “Frozen Moments”. It turned out very well in my opinion, and is the first finished image that I’ve used Brazil to render.

Photo.10

One of my first stills, based off a photograph I took of a fire hydrant in the centre of Melbourne. This is a cross-eyed stereo render.