HD video on iPhone 4S

You think shooting movies in 1080p on the iPhone 4s is impressive? Turns out, the sensor used by the iPhone 4S could do so much more.

According to the rumored spec, the OV8830 chip used in the 4S is capable of “full 8-megapixel (3264 x 2448) resolution @ 24fps, 6-megapixel (3264 x 1836) resolution at 30fps, and full HD at 30 or 60 fps.” [http://www.ovt.com/products/sensor.php?id=102]

Forget the tiny sensor, the mediocore lens, the massive amount of rolling-shutter, the hasty h264 encoding. Just imagine, for a second, Being able to shoot 4k on a camera-phone, or 1920×1080 at 60fps.

How long before we see hacks out in the wild that let us unleash their inner James Cameron?

Update: Maybe not that far off. Shots done on the iPhone already made it into The Avenger.

Notes on Blender Performance

Okay, compare to other 3D applications, Blender is compact, fast, and runs on almost any computer made in the last 20 years. But is it running as best as it could on your system? Below is a few of my own observations on how to optimize settings to get the most speed out of Blender 2.5/2.6.

Enable VBO: VBO is a way to speed up the viewport performance by caching geometry data on the graphic card so that they can be drawn faster than relying on the CPU to send the data every frame.  On scenes with large polycount, VBO can easily quadruple the viewport frame rate. I believe the only reason why it’s off by default is for compatibility with really old Intel graphics card.  All modern Radeon and Geforce graphics should support VBO.  VBO can be turned on from the Preference Panel.

Disable double-sided object: On some graphic cards (older generations circa 2006 or earlier, and the latest Nvidia Fermi),doubled sided lighting makes the video card work a lot harder than normal.  So, to speed up display of high polygon object, disable doubled sided in the object panel should help a bit.  This will make the ‘back’ side of a polygon black, which might not be acceptable in certain cases.  But it makes hunting for reversed-normals even easier.

Enable Only Render: Eventually a scene gets cluttered up with all the lamps, empties, constraints and various other ‘helper’ lines that distracts you from the final look of the image.  Turning on Only Render from the view property panel will hide all the non-renderable objects.  Not only can this give you a clean look at the scene, but also speeds up the viewport performance by quite a bit.

Go 64bit: Almost all the computers out today is 64bit capable.  Running a 64bit of Blender will automagically give you a 20-30% speed boost over the same 32bit binary.   x64 also enables Blender to use more than 2GB of RAM without crashing, which is kinda mandatory for complex scenes.

Use Multi-core CPU: First there is hyper-threading, then dual core, then quad core, and now we have eight-core CPUs WITH hyperthreading.  Luckily, Blender’s main rendering engine is very good at taking advantage of multiple cores.  It will scale up to as many cores as you can buy for rendering.

Special effects calculation like particles, fluid, and smoke is partially multi-threaded, but admittedly they don’t work as well. Having a dual-core helps, but don’t expect astronomical performance on an eight-core CPU.

Operating Systems: The never-ending debate is really not an issue at all. From my personal experience, Windows, Mac and Linux are equally fast when it comes to running Blender.

Optimized Builds: Optimized builds are Blender versions compiled with more agressive optimization for a particular CPU, generally they are 10-20% faster than the official Blender. My experience with them is very positive, they have proven to be as stable as the official release. Graphicall.org hosts many of these builds.

Texture Limit:  When working with large textures in complex sets, setting the texture limit to 256 or 512 can also help view-port performance as it scales every texture down from say 4096 to the chosen limit. This setting can be found in the Preference Window. (Suggested by Daniel via comment)

Shaped Bokeh in Cycles

It all started with the release of Cycles – a new GPU based path-tracing rendering engine for Blender. For people unfamiliar with the concept, a rendering engine is a software that turns a computer generated 3D scene into a final picture. A rendering engine has to calculates lights, shadows, surface materials and all the intricate details that make up a believable virtual world. Most rendering engines use all kind of tricks and shortcuts to simulate surfaces and lightings, whereas Cycles rendering is purely based on the physics of light, which means it is very easy to get photo-realistic renderings like this:

However, unlike a real camera, a virtual camera in the 3D world doesn’t use a compound set of lenses and film to capture the image. It relies on a set of equations to do the work. For example, to change the zoom of our virtual camera is a simple process of changing some variables in the perspective calculation equation.

How does this all tie in to photography? Well for a real camera, if you place a small opening in front of a camera lens, it will block off some light entering the lens, and we call this opening the “the aperture”.

Bokeh, as you probably know, refers to the out-of-focus highlights in a photograph as a result of shallow depth-of-field composition. With me so far? Turns out, the shape of the aperture dictates the shape of the bokeh. A typical bokeh of a wide open lens looks like little round disks because the lens aperture is round:

A “stopped-down” lens might produce bokeh that looks like hexagons(because the aperture is made up of distinct blades).

Here comes the coolest part, if you placed a custom shaped opening in front of the lens,

the bokeh will take the shape of that opening.

Back to computer graphics. I was curious to see if the Cycles is as robust as it is advertised. After all, a ‘physical-based’ rendering engine should be able to simulate light interactions just as they behave in the real world. So when I set up a simple scene and placed a heart shaped opening in front of my virtual camera, I expected to see the out-of-focus area being rendered into little heart shapes.

Neat eh?

What’s even more amazing is the bokeh shape is distorted near the frame edge, as if suffering from some kind of spherical abberation. Exactly how my 50mm F1.4 behaves when used wide-open.

This little experienment was nothing more than a test to see what can be accomplished with today’s cutting edge rendering technology, and bring together my two passions – computer graphics and photography.

This article was written by me, and first published at http://www.diyphotography.net/can-you-make-computerized-shaped-bokeh

2D designer needed for Siggraph

Your Mission, should you choose to accept it, is to create graphics for the Blender Foundation at Siggraph 2011.

Blender is a 3D software that will be shown at the 2011 ACM Siggraph in Vancouver. We are looking for someone to come up with a few designs for printed tees and posters.

Printed Tee: Will be printed in full color on both front and back. We are looking for something eye catching yet classy.

Poster: Will be 12ft by 6ft or larger, and used as the backdrop for the Blender booth.  Could contain notable Blender artwork, Blender logo, sponsorship badge, etc. Last year we used 4 posters side-by-side (see image below), it would be better to have one cohesive poster for this year.

We are pretty open to all kind of ideas. Perhaps something that has a Vancouver color scheme, with clean lines and a digital look? (See blow) Also consider incorporate the Orange Blender color identity into it.

Vancouver Watercolor

Blender Posters - Last year

Email me at mike.c.pan@gmail.com if you are interested.