Mike Riley

Dr. Dobb's Bloggers

Blender: Three Book Reviews

April 14, 2010

Blender, the powerful open source 3-D rendering tool, offers designers and developers alike the power to script, program and generate vistas of the imagination. And while the tool has a steep learning curve, its riches await those who patiently invest the time to learn its intricacies. Blender is being used more and more in commercial applications, with the iPhone platform being a significant recipient of Blender-assisted visualization and entertainment titles.

Blender, the powerful open source 3-D rendering tool, offers designers and developers alike the power to script, program and generate vistas of the imagination. And while the tool has a steep learning curve, its riches await those who patiently invest the time to learn its intricacies. Blender is being used more and more in commercial applications, with the iPhone platform being a significant recipient of Blender-assisted visualization and entertainment titles.

This post reviews three Blender titles written by programmer, designer and Blender expert Tony Mullen. I review the first of these, 3D for iPhone Apps with Blender and SIO2. For those who have dabbled with Blender in the past and are ready to take the next step, Mastering Blender and Bounce, Tumble, and Splash! are reviewed by my artistically talented daughter Marielle who has become quite a Blender veteran in her own right. Indeed, it is my hope that one day we will collaborate on a data visualization application that will leverage my programming experience with my daughter's knack for geometric artistry. In the meantime, we both continue to learn new ideas from books such as these.

3D for iPhone Apps with Blender and SIO2
Reviewed by Mike Riley

Anyone who has attempted to create a sophisticated, 3D-intensive OpenGL iPhone application knows how difficult it is working within the general frameworks provided in Apple's iPhone SDK. Fortunately, iPhone developer Romaine Marucchi-Foino recognized this pain and created the open source SIO2 interactive toolkit. In addition to providing an easy interface to fast OpenGL-enabled animation, the SIO2 engine provides real-time physics, multimedia effects, lighting/shadows, texturing, scene management and more.

Even with its simplicity, learning the extensive capabilities of this powerful system via the useful yet terse online documentation and tutorials can be a challenge. Fortunately, author Tony Mullen rose above this challenge by writing this book. In it, the author patiently walks readers through the basics of setting up the development environment with the tools, libraries and optimal configuration. Next, walkthroughs are provided for simple SIO2-driven OpenGL rendering demos. Chapters 5 through 9 delve deeper into the details, such as working with text/fonts, using multi-touch functionality, camera movement, working with/detecting prop objects, character animation, SIO2 widgets along with the complete print outs of implementation source code for each project.

The book is not an Objective-C/iPhone SDK tutorial, nor is it a Blender tutorial for that matter. Readers are expected to be at least at an intermediate iPhone development level and somewhat familiar with how Blender works. The combination of working project files and book descriptions will help developers acclimate to the easy to understand yet complex versatility that SIO2 has to offer.

Like previous Blender books written by the author, 3D for iPhone Apps with Blender and SIO2 is presented in a beautiful, high-gloss paper presentation. The 8-page 4-color insert showcases some of the commercial iPhone apps built using SIO2, ranging from Celebrii's 3D Brain Atlas to iDev2's iPunch game. While the book's project files can be downloaded from its website, it's the worthwhile commentary and clear tutorials that make this book so valuable.

Blender is a powerful open source 3D graphics program with many uses beyond just animation. Mastering Blender is a book that enhances the skills of an already experienced Blender user; it is not a book for someone new to the program. As stated by the author, general knowledge of Blender is needed in order to stay on track with what the book has to offer.

Mastering Blender is generally positioned toward factors outside of the program's typical scenarios. For example, employing a green screen for animation that will be imported into Blender is a cool advanced topic. Another would be to use other open source programs such as GIMP and Audacity to create backgrounds and audio-visual textures for animation elements.

The Python programming language is also discussed frequently in this book, mostly towards the end. Generally, it puts emphasis in development areas not covered in other Blender books available in the market today.

Author Tony Mullen is easy to understand and informal, as if he were talking directly to the reader. Throughout the book, procedures and terms are written in list form that help keep the book's ideas well organized. It is far easier to identify key words in the book when they are written in dictionary form: the vocabulary in bold and the definition or explanation following the word or phrase. In some parts of the book, however, such a method would have been far more useful than the dense paragraphs with valuable information contained and buried there. Of course, the book would have been less informative if it were simply long lists of functional definitions. Compared to other Blender books, though, I prefer the same method that Essential Blender used, where terms and important notes were posted in shaded tabs along the open margins of the page. That way, readers easily spot the crucial takeaways. After all, Blender users know that time is a very important factor in the creation of 3D animations.

The actual content of the book is straightforward. Rarely would the reader find themselves dilly dallying on one subject for too long. Although Mastering Blender may only offer roughly nine tutorials, the secrets to improving one's Blender skills are revealed in each chapter. Tony Mullen also does a great job warning the reader of potential problems and how to avoid them; however, not every potential problem is covered in the chapters. For example, UV mapping tends to be one of my biggest problems. Whenever I attempted to load an image, it wouldn't show up in edit mode. Fortunately, these random issues can be discussed in IRC's suggested by the author (he recommends #Blender, but I prefer #blenderchat because I found it to be more active and it generated faster responses to my inquiries).

Unlike any of the other Blender books I have reviewed, Mastering Blender contains a section entitled "Gallery". It is more than twenty pages of images exemplifying topics and techniques covered in the chapters. Personally, I would have preferred that it be placed in the back of the book. Most of the pictures were redundant, so there really was no point to this filler.

Finally, the Python programming language is introduced about two thirds way into the book. Tony provides a quick primer to Python, several fun facts and an overview of its uses. I found this language introduction quite easy to follow. However, as more Python examples to automate Blender were shared, walking turned into running and I found it harder and harder to keep up with the terms and actions. I unsuccessfully attempted to find the one sentence that contained definitions to the terms I did not understand. This is why I suggested the "Post-It" notes" margins method earlier. Even though the introduction to the section on Python stated that no knowledge was needed before continuing on with the chapter, I suggest otherwise. The uses of Python in driving Blender demonstrated by the author are quite useful and intriguing to learn. I found it very useful for the manipulating the game engine portion of Blender instead of for simple animations that can be done repeatedly without Python's help.

Even though Mastering Blender is an excellent book for intermediate Blender users intent on improving the quality of their work, $59.99 is a little pricey for those on a budget. However, if one really wants to learn the secrets this book has to offer, they will not find the information shared in the book easily on the Internet. Therefore, I recommend this book mainly to devoted, experienced Blender users.

The universal goal of most modern day animators and 3D graphic artists is rendering what they imagine in their mind's eye into something as realistic as possible. Bringing that world into view can be done through the power of animation. With the help of Tony Mullen's book Bounce, Tumble, and Splash! Simulating the Physical World with Blender 3D, one can learn to make these creative elements come alive with the exciting 3D graphics program called Blender.

"Bounce, Tumble, and Splash!" is a book loaded with full-color pictures and page after page of useful tips, stories, and demonstrations. Barely any knowledge of the program is needed to get going, though I would recommend a general knowledge of Blender's "Editing Mode" and a comfortable orientation with Blender's environment before proceeding.

The book's seven chapters have a handful of tutorials that readers can follow along not only by reading, but also by experiencing the content being discussed with the graphic files included on the book's accompanying CD-ROM. Like Tony's other Blender books, the mood and cadence of his writing makes the reader feel like they are being taught by their own personal tutor.

The physics details discussed throughout the book are by far some of the most interesting Blender topics I have read so far. Subjects span the gamut from nodes to the game engine. The fun tutorials can be used for just about any animation style. However, just like "Mastering Blender", I would recommend future editions of the book to use a new strategy for organizing and highlighting important hot keys and tips so they are easier to find and reference.

Generally, this book stays within the boundaries of Blender. No other program except for GIMP (and Photoshop for the open-source challenged) is mentioned. Some concepts are easier to learn than others, but they all successfully relate to the physics of the real world. Among all the items mentioned in "Bounce, Tumble, and Splash!", texture was by far the most discussed in just about every chapter. Conversely, Python is barely mentioned in this book. I found this surprising, considering how Python is used physics calculations and simulations. Only a few pages mention Python with a few lines of code for the reader to type into Blender's Text window. For those unfamiliar with Python, this brief usage might not be enough to give the reader an understanding of what is really going on when the code is executed.

My favorite chapter in the book was on "Simulating Trees and Plants". Anyone who has tried to make a tree or shrub in Blender, they will agree that it's just plain difficult. The tips in this chapter have made it ten times easier, and now I can finally make a jungle scene with no problem. Some of the other tutorials, however, such as the hair particles on the mannequin head were just too much to render even for my quad-core Linux PC. It made me wonder if the book could have introduced perhaps another way which one can give their character hair without the worry of a long render time, similar to the card system for the animals fur developed by the animators who made the animations in the movie Ice Age.

The content of this book is so vast and useful that it is a matter of the reader who wants to learn more about Blender and the amount of money and investment in time that they are willing to invest for that knowledge. Personally, I previously learned snippets of suggestions found in this book through my own online research. Tutorials such as flowing hair and making a fire can be easily Google'd for, and they can even be found on the actual blender.org website. Before purchasing the book, potential readers should first see how much they can learn from other sources.

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Video

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!