Review: Blender 2.31a
Developer: The Blender Foundation
Requirements: Mac OS X, 8 MB of VRAM.
What would you say to a free, open-source 3D program that had almost everything you could find in those expensive professional applications that cost hundreds, even thousands of dollars? It may sound too good to be true, but Blender 3D delivers amazing power at an unbeatable price.
Blender combines 3D modeling, rendering, animation, video sequencing, and game development in one application. It is also available on every major platform, meaning Mac, Windows, and Linux users can all work and play together with exactly the same tools.
Blender may be open-source, but it is incredibly rich with features. As with professional commercial products like Final Cut Pro, Photoshop, and Dreamweaver, there is a learning curve with such powerful software. A new user should not expect to be creating his first feature-length animation without spending significant time developing skills. Fortunately for everyone, Blender has an active user community that creates tutorials and helps everyone with answers and troubleshooting. elYsiun and BlenderWars are two sites with active user forums, useful tutorials, and links to other practical information.
So why isn’t everyone using Blender for their 3D solutions? The most significant reason Mac users have been slow to adopt the program is the interface. The Blender interface is more reminiscent of PC-based CAD applications than either the old or new Mac interface standards. As with many CAD packages, Blender also relies heavily upon keyboard commands. Combined with the interface’s visual feel, at first glance Blender is something most Mac users run from like a disease. We do, after all, want our software to look and work like a Mac.
The Blender interface issue has a major drawback for traditional Mac users: to use Blender as easily and efficiently as possible, you need a three-button mouse. The programmers have made it possible to use the standard one-button Mac mouse, emulating three buttons requires the use of modifier keys (Control-Option-Shift while clicking for the middle button, Command while clicking for the right button). Using these modifier keys, the mouse, and Blender’s copious keyboard commands is a difficult task to get used to. It took about three days for me to get the hang of things until I realized that I could just use the three-button mouse that came with my Wacom tablet. Once I started using the three-button mouse, my abilities grew much more rapidly along with my speed at tasks.
With the recent (November 2003) release of the Blender 2.3x series, the interface has been made significantly more user-friendly. New menus offer many of the same tools that were previously only available as keyboard commands, which makes learning and using Blender much easier (the keyboard commands are still there as well). These recent developments also add interface customizing so button windows can be arranged more to the user’s liking. These are just a few of the changes that make Blender a more friendly application. But even with these improvements, a three-button mouse is highly recommended.
Another reason Mac users may be slow to adopt is that Blender does not have an Aqua interface. There is actually a decent reason for not going Aqua. If the application were to change drastically in appearance and use between different platforms, even to take better advantage of the Mac interface, it would then no longer work the same for all users. If the interface works exactly the same, regardless of the computers used, then the user focus can be on productivity instead of adapting to differences between platforms. This is the same strategy used by Avid and other cross-platform software developers of professional applications. Even so, I have to admit that I would love it if Blender were more like my pretty OS X Aqua interface. Fortunately, the interface’s somewhat plain, gray appearance is only skin deep.
The main Blender window can be divided into smaller frames of any configuration the user desires. Each frame can then be used for:
- 3D View (to view, edit, pose, and animate the model)
- File and Image Browsing
- Buttons (palettes with textures, object, and rendering options)
- OOPS Schematic (interesting, but haven’t found much use)
- User Preferences
- Text Editor (programming)
- Audio Timeline
- Video Sequencer
- UV/Image Editor (vertex color and texture)
- NLA (non-linear action) Editor
- Action (linear) Editor
- IPO (non-linear keyframe sequences) Curve Editor
For those used to Unix and open-source software, many interface conventions used by Blender are fairly standard and even above average compared to some other packages. Mac users who have not previously explored the world of open-source may have a few things to get used to.
Other than Quit and Minimize, there are no useful menu commands in the standard application menus at the top of the screen. Blender’s menus are located in a separate header bar in each window frame. The File Browsing features are functional, but unquestionably Unix-like and do not use standard Mac dialog conventions. There is no ability to create folders, and moving in and out of folders uses the special “.” and “..” Unix directory names. But nice features include a “recent locations” button, which gives a list of any folders used within the current session, and colored labels placed next to files that Blender recognizes as being in native or other readable formats.
Image Browsing, a variation of the File Browsing feature, is pleasant—especially for an open-source application. Large previews of all images within the current folder appear next to the file list, making it easy to find what you are looking for. This feature can also be turned off for those who find it unnecessary.
The 3D windows use OpenGL (hardware-based graphics acceleration) for viewing the model with bounded-box, wireframe, shaded, textured, and lighted options. This part of the interface offers the essentials that can be found in other 3D applications, so experienced users of other 3D products shouldn’t feel a feature loss. Mesh, Curves, NURBs, Metas, and Text objects can all be easily created, edited, and transformed within the 3D window. The OpenGL rendering in the modeling windows makes for seamless view changes for even more complex models. Twenty individual layers can be used for modeling and rendering, and lights can be assigned to affect only the objects in a layer. The layers can be turned on or off in any combination.
Because of video hardware acceleration, Blender requires a minimum of 8 MB of VRAM, so some older original iBooks and iMacs are left out. For systems with 16 MB VRAM, Quartz Extreme and Blender compete for video hardware resources, and the monitor must be set for Thousands instead of Millions for things to run smoothly. This is only an issue on systems with 16 MB VRAM. The Blender Foundation is aware of these issues.
One major flaw is the lack of Undo features. There are multiple Undo options when editing meshes, along with a useful history accessible from a menu, but this doesn’t extend to general object changes. The mesh editing undo features are new in the 2.3x series, so it is reasonable to expect the developers are in the process of adding more in later versions. The lack of a consistent method for reversing changes means that you should save changed versions of your model often, as different versions to go back to a given point in your modeling history.
Blender’s texture abilities are fairly standard and comparable to many other 3D applications. Material options range from simple color, alpha, and specularity settings to application of image maps to procedural texturing. Image maps and procedural textures can be applied to object color, mesh surface geometry, bumping, specularity, mirror color, reflectivity, hardness, alpha, and light emission. The standard procedural textures include clouds, stucci, noise, magic (“woven” sinusoidal), marble, wood, and blend (gradient). Environmental settings, including mist (fog, atmospheric perspective) and stars, are easily applied. As with many other 3D packages, Blender’s material abilities can be extended with plug-ins.
Blender uses Python (an open-source programming language) as one of multiple methods for adding new features. Blender users have enthusiastically welcomed this ability, and many excellent Python scripts can be found in the user community. Some extend Blender’s modeling abilities with features like anamorphic human figure modeling (Make Human); grass, hair, and fiber creation (Fiber); and cityscape and matrix creation (City Block). Other Python scripts can export Blender models and animation for use with other rendering software like POV, MacMegaPOV, and Renderman, as well as scripts for translating data to and from other 3D applications. Every week, the user community creates something unexpected that elevates Blender to new levels, making Python scripting one of Blender’s most powerful features.
The Achilles heel found with using Python and Blender on Macs is (for the moment) that the two only work reliably together if 1) Python is installed using Fink and Fink commander or 2) Blender is compiled on your machine by you. The first solution is by far the easiest for the average Mac user, and for those interested there are instructions available. For those of us who are not fluent enough with compiling to get anything useful from the source code, some more competent members of the user community have been kind enough to share their Panther-compiled versions of the software. Doing a search at one of the Blender community forums may turn up a recent binary optimized for your version of OS X that has full operability. None of these solutions is necessary to run Blender on Macs, just to run Blender with Python on Macs.
Blender’s built-in renderer uses scan-line rendering and generally produces excellent to acceptable results. Anti-aliasing is available in various levels, as well as automatic gamma adjustments. Images and animations can be rendered in any size with presets for NTSC, PAL, and even interlaced formats. The layers features used for modeling carry over to rendering, so layers can be used as needed or rendered separately for compositioning in Blender’s sequencer or other software.
Two incredible features for graphic artists and animators are Toon Shading and Edge Rendering. The combination of materials settings with object outlining can be used to create more traditional “hand-illustrated” effects when using Blender’s built-in renderer. Combined with layers, artists can render color cels and outlines together at the same time or separately. Users have been able to achieve a wide range varying from Disney-esque to animé-style results, and many have written useful tips and tutorials for using their techniques.
As it stands in version 2.31a, there are only two major weaknesses that I have found—both a result from Blender’s rendering engine. The first problem comes from the methods for casting shadows. While Blender has four types of lamps for lighting models, only spotlights can cast shadows in renderings. This creates problems for large, more complicated models (especially outdoor settings) where alternate methods with dozens of spotlights must be used for shadow casting. This lighting complexity decreases the otherwise speedy scan-line rendering to a snail’s pace. Tweaking these more complex lighting models to create decent results can be frustrating and time-consuming, perhaps more so because other 3D software packages have had easier-to-use and more predictable methods for years. The problem isn’t that great results can’t be achieved, but instead that it often takes a lot more work than expected to achieve them. Similar problems with reflection and refraction meant several steps were necessary that other software can achieve with the click of a button.
The second major rendering weakness is the lack of a true focal blur for camera settings. While many users may have no desire to use focal blur (and it is often overused by those who do use it), the current method involves attaching a camera to an ellipse, making the camera track (always aim at) the subject, moving the camera around the ellipse once per frame, and using motion blur to make objects further away from the subject “out of focus.” The method can duplicate some focal blur techniques, but not all field-of-depth requirements. Like the shadow issues, this focal blur solution is also tricky and time-consuming.
Neither of these rendering problems is insurmountable, but they detract from the application’s overall high quality. Amazingly, the shadow and reflection issues are literally being fixed and tested now, and should be available as a public release sometime in the upcoming weeks. The solution uses ray-tracing for shadows and reflections, combined with the speed of the scan-line renderer to create a hybrid rendering solution. Preliminary tests of the new software features by the user community show the shadow and reflection issues to be resolved.
Another rendering development expected later in the year is the integration of YafRay (open-source ray-tracing software) into Blender, giving users a full ray-tracing solution alongside the existing features.
Blender excels at animating models. Practically anything created can be animated, including geometry, cameras, materials, textures, and Particle Effects. Particle Effects allow users to create procedural effects in their models without the need for additional complex modeling changes. A wave effect can be applied to a flag or a body of water without having to manually create and animate geometric waves in the object. Fireworks, smoke, explosions, hair, or a school of fish are just some of the possibilities.
Models can be animated with multiple methods. Keyframes are easily created for model changes, and editable curve time line views are available to create and modify keys. Relative Vertex Keys allow for “instanced” mesh animations that can be used individually or together with others. For example, a model of a face can be keyframed for a smile, frown, and speech. By using the smile and speech keys together, the face smiles while speaking. Relative Vertex Keys can be used in many combinations and reused as necessary, meaning that repeated actions can be animated more efficiently.
Armatures are another welcome tool for creating realistic animations. A human figure can be animated by posing the armature, much the same way a skeleton moves within an object. Poses can be saved for repeated use.
Blender’s sequencer can be used to merge imported and rendered layers and apply basic compositioning effects. While it currently does not have the power of After Effects or Final Cut Pro, the sequencer does offer layering and composition features that are unavailable in iMovie. The sequencer can be used with imported stills and animations created in other software, so a 3D rendered aircraft can land in a scene with real photographic footage, or a character can “beam down” to a setting of your choice.
Blender has the ability to create multi-platform 3D games and interactive 3D applications. The complexities and possibilities of the game engine are too numerous for this review, but working examples can be found on sites around the Web. The game engine is currently not available in Blender versions later than 2.25. Models can still be created in the later versions (using interface improvements and newer features), but 2.25 must be used for the game programming. As with the new rendering features, the game engine is expected to be reintroduced into upcoming versions.
Blender has surprisingly few bugs for such a complex application, even fewer than some commercial products. The Blender Foundation pays attention to user forums and welcomes the development help of any who are interested. This open-source model responds rapidly to bug reports and overall development, evident by the release of three incremental versions in two months (2.30, 2.31, and 2.31a). For those interested in tinkering, helping out, or doing their own compiles Blender’s source code is available. Ton Roosendaal, the chairman of the Blender Foundation, encourages any who are interested to help. “We are still looking for more people developing on OS X to help maintain the Blender code—especially when it comes to low-level OS X stuff, like the VRAM issue and dual-screen support. Spread the word!”
How is all of this possible in a free application? Blender development is currently supported by donations and user purchases of the Official Blender Guide which is extremely useful for learning and reference. The book comes with a CD that includes tutorial files and useful Python scripts. Purchasing the Guide directly from the Blender Foundation will not only cost less than from a retail bookstore, but will ensure that the people responsible for this project can eat and continue development.
Other than helping support product development, the Official Blender Guide is better-than-average documentation with excellent tutorials and strongly recommended for even more experienced users. Using the documentation helps ease the learning associated with any new 3D application, but the Blender Guide is one of the best I have encountered.
As with all open-source software, please be kind when reporting bugs and making feature requests. Much of the development of open-source software, Blender included, is done by volunteers. A light touch in your correspondence will get you much further than a heavy hand.
Even if it cost several hundred dollars, as with many entry-level 3D packages, Blender offers a powerful and competitive solution with features that surpass many commercial products. Blender is not a perfect application—and after using 3D software for over a decade I have yet to find 3D utopia—but it is in the short list of applications that are close. Its powerful features, improved interface, strong continued development, and helpful and open user community make Blender an amazing tool for illustration, design, effects, and animation. And it’s free.