Blender 2.8 is coming

Unbiased rendering? Check. Realtime rendering? Check. Unified shader model? Check. Class-leading user interface. Check. Free, open source, small? Check. Blender 2.8 offers everything you want in a 3d package and nothing you don’t (dongles, copy protection, ridiculous prices, massive hardware requirements).

There aren’t many pieces of open source software that have been under continuous active development that haven’t gone through a single “major version change” in twenty years. When I started using Blender 2.8 in the early 2000s, it was version 2.3-something. In the last year it’s been progressing from 2.79 to 2.8 (I think technically the current “release” version is 2.79b, b as in the third 2.79 release not beta).

What brought me to blender was a programming contract for an updated application which, in my opinion, needed an icon. I modeled a forklift for the icon in Silo 3D (which introduced me to “box-modeling”) but needed a renderer, and none of my very expensive 3d software (I owned licenses for 3ds max, ElectricImage, and Strata StudioPro among other thins) on my then current hardware. Blender’s renderer even supported motion blur (kind of).

The blender I started using had a capable renderer that was comparatively slow and hard to configure, deep but incomprehensible functionality, and a user interface that was so bad I ended up ranting about it on the blender forums and got so much hatred in response that I gave up being part of the community. I’ve also blogged pretty extensively about my issues with blender’s user interface over the years. Below is a sampling…

Blender now features not one, not two, but three renderers. (And it supports the addition of more renderers via a plugin architecture.) The original renderer (a ray-tracing engine now referred to as Workbench) is still there, somewhat refined, but it is now accompanied by a real-time game-engine style shader based renderer (Eevee) and a GPU-accelerated unbiased (physically-based) renderer (Cycles). All three are fully integrated into the editor view, meaning you can see the effects of lighting and procedural material changes interactively.

The PBR revolution has slowly brought us to a reasonably uniform conceptualization of what a 3d “shader” should look like. Blender manages to encapsulate all of this into one, extremely versatile shader (although it may not be the most efficient option, especially for realtime applications).

Eevee and Cycles also share the same shader architecture (Workbench does not) meaning that you can use the exact same shaders for both realtime purposes (such as games) and “hero renders”.

Blender 2.8 takes blender from — as of say Blender 2.4 — having one of the worst user interfaces of any general-purpose 3D suite, to having arguably the best.

The most obvious changes in Blender 2.8 are in the user-interface. The simplification, reorganization, and decluttering that has been underway for the last five or so years has culminated in a user interface that is bordering on elegant — e.g. providing a collection of reasonable simple views that are task-focused but yet not modal — while still having the ability to instantly find any tool by searching (now command-F for find instead of space by default; I kind of miss space). Left-click to select is now the default and is a first class citizen in the user interface (complaining about Blender’s right-click to select, left click to move the “cursor” and screw yourself is this literally got me chased off Blender’s forums in 2005).

Blender still uses custom file-requesters that are simply worse in every possible way than the ones the host OS provides. Similarly, but less annoyingly, Blender uses a custom-in-window-menubar that means it’s simply wasting a lot of screen real estate when not used in full screen mode.

OK so the “globe” means “world” and the other “globe” means “shader”…

Blender relies a lot on icons to reduce the space required for the — still — enormous numbers of tabs and options, and it’s pretty hard to figure out what is supposed to mean what (e.g. the “globe with a couple of dots” icon refers to scene settings while the nearly identical “globe” icon refers to materials — um, what?). The instant search tool is great but doesn’t have any support for obvious synonyms, so you need to know that it’s a “sphere” and not a “ball” and a “cube” and not a “box” but while you “snap” the cursor you “align” objects and cameras.

Finally, Blender can still be cluttered and confusing. Some parts of the UI are visually unstable (i.e. things disappear or appear based on settings picked elsewhere, and it may not be obvious why). Some of the tools have funky workflows (e.g. several common tools only spawn a helpful floating dialog AFTER you’ve done something with the mouse that you probably didn’t want to do) and a lot of keyboard shortcuts seem to be designed for Linux users (ctrl used where command would make more sense).

The blender 2.8 documentation is pretty good but also incomplete. E.g. I couldn’t find any documentation of particle systems in the new 2.8 documentation. There’s plenty of websites with documentation or tutorials on blender’s particle systems but which variant of the user interface they’ll pertain to is pretty much luck-of-the-draw (and blender’s UI is in constant evolution).

Expecting a 3D program with 20 years of development history and a ludicrously wide-and-deep set of functionality to be learnable by clicking around is pretty unreasonable. That said, blender 2.8 comes close, generally having excellent tooltips everywhere. “Find” will quickly find you the tool you want — most of the time — and tell you its keyboard shortcut — if any — but won’t tell you where to find it in the UI. I am pretty unreasonable, but even compared to Cheetah 3D, Silo, or 3ds max (the most usable 3D programs I have previously used) I now think Blender more than holds its own in terms of learnability and ease-of-use relative to functionality.

Performance-wise, Cycles produces pretty snappy previews despite, at least for the moment, not being able to utilize the Nvidia GPU on my MBP. If you use Cycles in previews expect your laptop to run pretty damn hot. (I can’t remember which if any versions of Blender did, and I haven’t tried it out on either the 2013 Mac Pro/D500 or the 2012 Mac Pro/1070 we have lying around the house because that would involve sitting at a desk…)

Cranked up, Eevee is able to render well-beyond the requirements for broadcast animated TV shows. This frame was rendered on my laptop at 1080p in about 15s. Literally no effort has been made to make the scene efficient (there’s a big box of volumetric fog containing the whole scene with a spotlight illuminating a bunch of high polygon models with subsurface scattering and screenspace reflections.

Perhaps the most delightful feature of blender 2.8 though is Eevee, the new OpenGL-based renderer, which spans the gamut from nearly-fast-enough-for-games to definitely-good-enough-for-Netflix TV show rendering, all in either real time or near realtime. Not only does it use the same shader model as Cycles (the PBR renderer) but, to my eye, for most purposes it produces nicer results and it does so much, much faster than Cycles does.

Blender 2.8, now in late beta, is a masterpiece. If you have any interest in 3d software, even or especially if you’ve tried blender in the past and hated it, you owe it to yourself to give it another chance. Blender has somehow gone from having a user interface that only someone with Stockholm Syndrome could love to an arguably class-leading user interface. The fact that it’s an open source project, largely built by volunteers, and competing in a field of competitors with, generally, poor or at best quirky user interfaces, makes this something of a software miracle.

Why People Click

My wife has her own blog on the Psychology Today website. (I think it took her about a day to overtake the traffic for all my websites put together — sigh.) The one thing I can claim credit for is the title (although I suggested it for something else — um, TBA).

Oh yeah, I also published a book about five weeks ago, it’s called Learn 3D with Cheetah 3D 6. It’s essentially “Cheetah 3D 6 The Missing Manual” except that I’m not famous enough to be commissioned to write a “Missing Manual”. I wrote Learn 3D in about six weeks of my spare time (mostly late at night) and it has outsold anything I’ve ever put on the market (which is amazing given Cheetah 3D 6 is an indie niche product, or depressing given the effort I’ve put into other things I’ve tried to sell).

Cheetah 3D 5.6 Mini-Review

Thanks to changes in Google’s pagerank algorithm designed to deal with content farms the pagerank of some of my web pages has risen dramatically. Suddenly, this website is likely to be one of the first places someone looking for information or a review of Cheetah 3D will come, so it occurs to me that I ought to update my reviews.

When I last reviewed Cheetah 3D it had just turned 5.0. The major change had been the addition of a powerful new node-based shader system. Since then we’ve had five more dot-releases (each of which has heralded significant new functionality; there was no 5.4), C3D has appeared in the Mac App Store, Martin’s been teasing us with screenshots of the 5.7 beta (I’m not privy to it, although I was a beta-tester for 5.0), and version 6 has been mentioned in dispatches.

 

Particle City created using a scripted particle emitter.
Particle City created using a scripted particle emitter.

Here are the highlights:

  • ParticlesCheetah 3d’s particle system is very competent (and fully scriptable) but is not very useful (yet) for typical “particle effects”  owing to C3D’s lack of volumetrics, sprites, and motion-blur. So while you can’t really do clouds of billowing smoke or explosions with it, in a few hours I was able to write a particle script that instantly creates cities from a set of buildings.
  • 64-bitCheetah 3D tends to choke when I get to around 10,000,000 triangles so I’m not sure how big a deal 64-bit support is. But it’s there.
  • Character Animation Refinements
    • Pose Tags can be assigned to individual objects (and their sub-hierarchies) allowing you to better manage multiple characters in a scene, but also to attach pose management to hands, weapons, faces, and so forth.
    • Keyframes can be copied-and-pasted, and keyframe hierarchies can be moved around with a single click, making fine-tuning of animations bearable.
    • Rigging is much improved thanks to the incorporation of a brilliant “bone-heat” skinning algorithm published by some MIT researchers. (I came across its implementation in Blender and after getting spectacular results with it with no effort I suggested it to Martin. He implemented it within two weeks.) I noted this feature when it first appeared in 5.1.
  • Multiple selections now — at last — work as expected. (You can select a bunch of objects and translate them together.)

Bone heat implementation allows meshes to be skinned very easily
Bone heat implementation allows meshes to be skinned very easily

Summing Up

Cheetah 3D improves steadily, but it still has significant shortcomings. There’s still no network rendering or AppleScript support (to allow us to fudge it). Character animation is still clunky (if you do want to try your hand at character animation with C3D, you may find my Pose Utilities script helpful). Motion blur is MIA. And there are no volumetrics (shafts of light, clouds). If you don’t need these things, or can work around their lack, it’s a lovely piece of software.

Cheetah 3d 5.1

I rigged the figure on the left by using C3d's old auto-weight and then spent hours tidying up by painting weights. The one on the right was heat-skinned in a few seconds by clicking a button.
I rigged the figure on the left by using C3d's old auto-weight and then spent hours tidying up by painting weights. The one on the right was heat-skinned in a few seconds by clicking a button.

Cheetah 3d 5.1 came out yesterday, a less than two months after 5.0 came out. While it doesn’t complete the planned 5.x feature set (normal maps, more up-to-date FBX support, and particles are among the promised outstanding features) it represents a substantial improvement over 5.0.

5.1's node-based shader system now lets you preview anything, which is a huge improvement.
5.1's node-based shader system now lets you preview anything, which is a huge improvement. Once volumetrics and sub-surface scattering are added, C3d will have one of the most capable and easy-to-use shader systems around.

In particular, the biggest single problem with the animation system (the inability to move keyframes on more than one object at a time) has been fixed (you can now move all keyframes down a hierarchy from the current selection), and automatic vertex weighting  has been updated to support heat-mapping (the same algorithm implemented in Blender 2.46), which is just ridiculously nice.

Review: Cheetah 3d v5

My proposed icon for Cheetah 3d
My proposed icon for Cheetah 3d 5.x

Cheetah 3d v5 finally “shipped” so I’m allowed to talk about it. This is the fifth installment of what is a pretty unique product — a user-friendly, Mac-native all-in-one 3D tool. If you have any experience of 3D software you’ll know that there are essentially “toy” programs with cute UIs that don’t let you do anything serious, “one-trick pony” programs that do one thing very well (some have a good UI, but most don’t), and incredibly, mind-bogglingly complicated programs with utterly incomprehensible UIs that seem to have been designed by aliens for different aliens.

I’ve been an avid user of C3D since v4 introduced rudimentary character animation features. I’d been interested since v3 (because C3D was the least expensive and most Mac-like program to have a seamless workflow with Unity), but v3 didn’t offer me any functionality I didn’t already know how to get from Blender and Silo. Once I started using C3D my Blender and Silo usage dropped to almost nil — until I ran into C3D’s fairly major shortcomings for character rigging and animation, which brought me back to Blender.

Cheetah 3d is a really interesting product. It’s a minimalist “all-in-one” 3d program that allows you to do pretty much everything, but it has a really slick, native UI, and the barest minimum of features.

The new node-based material editor is the single major addition to C3D v5.
The new node-based material editor is the single biggest addition to C3D v5.

You can see my hastily cobbled-together video tutorial for helping new users figure out C3D’s material system here.

What you get with C3D is:

  • Very good modeling tools with a non-destructive modifier chain, but your basic modeling tools are polygons and subdiv — no NURBS, no solids.
  • Solid UV unwrapping tools.
  • A node-based materials to rival vastly more expensive programs (this is new in v5).
  • Basic texture painting, but it’s very crude so mostly useful for marking up a material for fine-tuning elsewhere (e.g. Photoshop)
  • Solid but not deep animation tools.
  • A JavaScript scripting interface.
  • An excellent rendering engine (especially for arch viz and industrial design) with area lights, HDRI, radiosity, ambient occlusion, and “sun” lights.
  • Good support for foreign files, including fbx, obj, 3ds, sia import and export, and dae (Collada) export.

This seems like a fairly decent feature set — and it is. But depending on your project, you may run into some limitations sooner rather than later:

  • No particles (although this is promised for a 5.x update).
  • No volumetrics. You can’t fill a sphere with turbulent clouds or do “god ray” effects (light streaming through dust).
  • No SSS (so rendering milk, marble, vegetation, and human skin is difficult).
  • No motion blur. (I have developed a tool for faking motion blur from animation frames specifically to address this.)
  • Very weak character animation UI. No NLA tools (although I am told the underlying engine fully supports NLA). No instrumentation. For me, this is the single greatest flaw in  C3D.
  • Poor animation workflow support (e.g. you can’t tweak a mesh once it’s been rigged).
  • No network rendering. Indeed no good way to “hand off” rendering to a second box even via scripting.

As mentioned above, C3D v5 adds an amazingly powerful (and approachable) node-based material system (which adds significant new functionality, such as anisotropic material support and blurred transparency), and two features conspicuously absent from v4 — bevel and a bend modifier. (I say conspicuously absent because v4 had many features similar to — but less generally useful than — bevel and bend.) Yes, this isn’t a huge amount of new functionality.

It has to be said that one of C3D’s greatest strengths is its lack of clutter and approachability. I’ve learned a huge amount by playing with C3D, and often this results in knowledge of the underlying principles which I can then take to a more complex and cluttered tool (like Blender or Max). One user of v5 commented that he hoped to understand Lightwave’s node-based material system by learning C3D’s much more approachable version.

Like every version of Cheetah 3D I’ve used, v5 is stable, responsive, and attractive. I don’t much care for the new icon (it’s an improvement on the old icon insofar as it isn’t a grey blob), so I designed my own similar icon. (See above.) C3D is not without user interface quirks and shortcomings, unfortunately:

  • Multiple selections do not work as expected. If you select more than one object at a time and hit delete, they all disappear. But if you try to move them all at once, you only move the last object selected.
  • The Edit menu still lacks a duplicate function. For a long time C3D had two really annoying copy and paste bugs — first, if you copy and then paste (i.e. “ghetto duplicate”) the original object remains selected, and when you pasted something into a document it would get renamed (foo became foo.1) even if no other object with that name was in the scene. Each of these was annoying of itself, but in combination they were positively infuriating.
  • Orthographic views (e.g. in the 4-pane mode) suffer from z-clipping often making them useless for precise work.
  • You can’t preview orthographic camera views (so if you’re trying to do orthographic renderings you have no way to frame your shots).
  • Finally, in the new material system it’s very hard to get an idea of what you’re getting at different points in the flow (you constantly need to drag outputs to the shader’s diffuse input to see what’s going on and then unmangle your material). I believe this issue will be addressed fairly shortly.

This may sound pretty damning, but none of these is necessarily a showstopper, and every 3d program has numerous UI issues — but most of these long-standing issues, and it’s very frustrating to see them still around after several years.

A simple metal globe demonstrating several new features at once including shadow catchers (barely noticeable), anisotropic materials, and a fairly complex shader.
A simple metal globe demonstrating several new features at once including shadow catchers (barely noticeable), anisotropic materials, and a fairly complex shader.

So, should you buy Cheetah 3D v5? If you’re after a good all-in-one 3D program that’s very approachable and easy-to-use — assuming it’s not missing any features you can’t live without — then, at $149, C3D is a decent value ($149 is a lot for an indie software package). If you bought C3D v4 in the last year and a bit and you’re entitled to a free upgrade then v5 is a no-brainer. Get it. If you’re someone who’s owned C3D v4 for longer then it’s a question of whether bevel, bend, and the new shader system are worth the $69 upgrade price*. From my point of view, the new functionality does little for me and I’m not entitled to a free upgrade, but not having to make a round-trip to Silo to bevel (and Silo has unresolved compatibility issues with Snow Leopard) is almost worth the upgrade price on its own.

Other Options

If one were to do a quick SWOT analysis of C3D, the most obvious threat is Blender — lots of features and free, but not easy to learn — and the obvious weaknesses are C3D’s missing animation (particles, character animation tools) and rendering features (volumetrics, motion blur) while its strength is clearly its UI and its opportunity is the increasing interchangeability of 3d file formats (Autodesk’s .fbx and Collada .dae files). If C3D were to position itself as, essentially, a rendering package — its obvious threats are Luxrender (which is free and open source but hard to use), Indigo (not free but supposedly faster and not quite so hard to use), and Hypershot (expensive, but easy to use and it produces very nice renders more-or-less instantly).

Blender 2.5 is around the corner (the Project Durian team is working exclusively in 2.5 now, which is a great example of “eating your own dog food” and also shows that 2.5 is in a pretty advanced state — at least on Linux). Blender’s progress since they started this approach (doing one major project each year with a team of artists and programmers) has been nothing short of phenomenal. Blender’s usability has been improved markedly, its deficiencies have been acknowledged and documented, and it has a clear path forwards.

I use Blender, Luxrender, Cheetah 3d, Silo 3d, and MoI. Of the three, Cheetah 3d gets more use than all the others combined.Most projects can either be done in C3D entirely or mostly done in C3D, and it’s usually much quicker and easier to get 90% of the job done in C3D than anything else. But some things simply require a more capable tool (i.e. Blender) or a more specialized tool (e.g. Silo, MoI, or Luxrender).

Note: * Dr. Martin Wengenmayer — developer of C3D — released a free update for 4.x users to address some minor Snow Leopard compatibility issues — instead of using them as a way of forcing users to upgrade (like some other software developers), which is commendable.