March 2, 2005

Review: Blender 3D

Author: Rui Campos

Imagine yourself making a Pixar movie and not paying a dime for the software needed to do
it. That's the premise behind Blender
3D
, a free fully
featured
3D content creation suite. Open sourced under the GNU GPL since 2002, Blender has grown a lot since then. The current version, 2.36, is a real winner.

You can download Blender for all supported platforms (Microsoft Windows, Linux (i386), Mac OS X, FreeBSD 5.3 (i386), SGI Irix 6.5, and Sun Solaris 2.8 (SPARC), as well as the source code and several plug-ins. Bleeding edge users can download a Blender CVS compilation from the Blender Testing Builds forum. You can also grab the source from CVS and build it yourself.

For Windows users, Blender provides an installer program. If you have a *nix box you just have to unpack the contents of the install download to a folder of your choice.

Blender comprises two applications -- Blender (or blender.exe), the main application, and BlenderPlayer (or blenderplayer.exe), which in addition to their other functions you can use to play games made with the Blender Game Engine.

The interface

Compared to other 3D applications, Blender has a non-standard user interface, yet this UI improves user workflow in Blender. The flexibility of the UI allows users to clone other applications' UIs or create a personalized one.

Previous versions of Blender were shortcut-centric in operation; they relied heavily on the mouse and keyboard. While this remains the fastest
way to use the app, beginners will appreciate that most functions are now available via menus or pop-up toolboxes. Rotating, scaling, and moving commands are also available as mouse gestures. There is also a brand-new complete undo/redo system that works for every change the user makes.

Modeling

On the modeling side, we find a huge set of 3D objects like polygons and NURBS, beziers and B-splines, metaballs and vector fonts. Even the Blender mascot, the monkey Suzanne, is provided as a 3D primitive!

Modeling in Blender is quite fun, especially if you're doing organic modeling and using Blender's Subdivision Surface option. You can use optimal iso-lines for mesh editing, which makes it easy on the eye. Add to this the option to model meshes using vertex, edge or face, selection mode, and many tools such as extrude, bevel, cut and spin, screw and warp, noise and smooth, subdivision, and much more, and you have a complete modeling toolkit.

Not every function is as good as the mesh modeling tools. Boolean
functions in the meshes are still a bit clumsy compared to some other
(commercial) packages.

Sub Surface Scattering would be a bonus for those wanting to achieve hyper-realistic skin, but this is only available as a set of Python scripts that fake the effect.

Beside the built-in tools, there is a huge range of extra tools to
help you in modeling. Tools written in Python can be loaded
in the built-in scripts window. A Python API for the Blender core
provides enough functionality to build an infinite set of tools. Some of the best-known tools are MakeHuman for human body modeling, L-System for tree
generation, World Forge for fractal terrain generation, and the
aforementioned subsurf-scattering fake scripts.

The animation system

The animation system is also very capable. It sports a powerful
constraints system. For bones you have an armature object, which provides forward and inverse kinematics. You can add the armature and
enter pose mode for animation poses.

The current implementation of the character animation tools lacks a bit in refinement and speed. While they are capable of creating quite complex animations, they can be sluggish and daunting to use, even for intermediate users. The developers plan a total rewrite of the character animation tools for the next new version.

Lattice and curve deformations are also available.

One of the most used windows for the animation will probably be the function editor window. In it you can edit motion curves and key frames. You can also edit and mix animations in the action editor window, and the non-linear animation mixer, that can perform such miracles as editing, mixing and reusing animations as if they were video clips, and automating walkcycles along paths, with perfect non-slipping footsteps.

You can also mix audio inside Blender, and synchronize audio playback. Blender supports only WAV format; it would be nice to be able to use MP3 or OGG too.

The video sequencer reminds me of those audio editing applications with blocks to visualize the strips where you can add effects. It would be better to have something similar to most video editors, with image thumbnails and video pre-visualization on the sequencer itself to make it easier to know what is being edited.

Again you have a whole bunch of Python scripts that can help you with your animation. One of the best-known is Walk.O.Matic, a script for building 3D animation walkcycles. There are also non-Python plug-ins available to extend the sequence editor's capabilities, with effects such as depth blurring, selective glow, and interlaced scanlines similar to robocop vision.

The renderers

The built-in scanline/ray-tracer hybrid renderer is one of the fastest I have tested. It has oversampling, motion blur, radiosity, and ambient occlusion, and supports environment maps, halos, lens flare, and fog. One of the greatest features is edge rendering for toon shading.

Not quite satisfied with the end result of the built-in ray-tracer? There is also full support for one of the best open source ray-tracers around, the Yafray global illumination renderer. Enabling the Yafray render adds several new options on the whole interface, including a new light source for Photon lights.

The Game Engine

The provided Game Engine is great for small games with few models and small textures, but it becomes really slow if you push it a lot. OGRE 3D engine is a nice open source engine, and in this author's opinion it would probably be better to use it instead of coding a new one from scratch.

Still, the Game Engine is nicely done. It features enhanced support for OpenGL, providing all OGL
lighting modes. It has collision detection and dynamics simulation, as well
as an advanced game logic module. You can use Python for AI (Artificial Intelligence) and
control through a powerful API. Users don't need compilation or pre-processing to play games.

Room for improvement

Blender has several areas where it can improve. It lacks support
for MP3 and OGG audio formats. A "Modifiers Stack" a la 3D Studio Max, for each 3D object would also be a nice improvement when modeling.

On the other hand, it is very stable, has one of the fastest ray-tracers I've seen and a really flexible user interface. Once you learn most of its shortcuts it becomes one of the fastest working tools around.

One of the best things about it is that it has great support; it might even be better than what most commercial applications have. For example, the Blender Web site features a bug tracker any user can post in. Most of the submitted bugs usually fixed within days, and new testing builds are available almost every week. There is also a great development forum where developers and users discuss ideas for new versions and questions related to specific development issues.

For new users, the Elysiun Forum
should provide one of the best resources, along with the online
documentation
. New users should also drop by Blender's e-shop, where you will find a printed book on the product.

There are also numerous sites that provide tutorials for Blender,
such as RealFxStudios Academy and a growing tutorials Web site.

Blender is a great 3D suite with a huge set of tools. Although it still lacks several features and needs some improvement, it is a powerful application that should appeal to animation designers.

Author's note: Special thanks to Bassam Kurdali and Ton Roosendaal for their help with this article.

Click Here!