• voxels

3D Pixels; Voxels

This part is most likely not the stuff most visitors came for, but it's still quite interesting.

A voxel is a volumetric pixel, or a three dimensional pixel.

There's a big gap between pixel art and voxel technology. Voxel technology involves a lot of mathematics, like most computer-generated imagery. It is used in medical or scientific computer graphics applications, and more recently in games.
With some adjustments, voxel technology can also be used to generate high-tech pixel art with a low-tech look. This can be done by hand, but would be tremendously time consuming and not duplicable.

Voxels can be used to encapsulate polygons in a 3D environment. An object or environment can be enclosed by one overall voxel. This overall voxel, which encapsulates the object or environment, is divided down into eight smaller voxels, and so forth. Just like the babushka doll: voxels inside voxels inside voxels, etc.
As soon as a polygon completely fits inside a voxel, the polygon is added to a list within the voxel information data. Along with data about the position and size, etc., the list contains all the polygons that can be found inside the voxel.

By dividing an object or environment into voxels, calculations needed for shadow and/or reflections can be reduced dramatically.
To calculate if a point on a polygon casts a shadow, the computer has to make sure no other polygon lies on the line between the light source and the point on the polygon. If an object has 1.000 polygons, the computer has to check if one of the 999 other polygons casts shadow... This is very computational.
By using voxels, the calculations can be done much faster. Instead of checking individual polygons, the voxels are checked. If a voxel (such as a cube) doesn't cast shadow, the content within the voxel (smaller voxels with polygons in it) can't either.

Although interesting, using voxels to speed up calculations is not relevant when creating pixel art.

By using a slightly different approach, an object can be divided into voxels/cubes. A voxel is relevant as soon as (part of) a polygon lies within the voxel. If a voxel is empty, it's not used.
The result of this approach is a number of cubes; see image.

3d voxel conversion

The 3D position of the cubes can be used to generate a 2D pixel art illustration.

pixel art voxel object

 

By writing some software which does the job, the whole process can be automated and fairly easily duplicated.

Besides making a static image, the data can also be used to create a pixel art animation in Adobe Flash.
Instead of using cubes, the fundamental minimum size of a Lego brick is used for the next Adobe Flash animation.

You need to upgrade your Flash Player
 

Besides making an animation, the data can also be used to build a real Lego object, the size of one meter.
Unfortunately I had to pay for every single Lego brick, which made it a quite expensive, but it still was a nice project.

lego object