Saturday, 9 May 2015

Blender: Introduction to My Beginner Level Tutorials and an Overview of Blender Primitives

Having now covered most of the key novice-level Blender subjects, I intend to begin my next series of tutorials which will approach a variety of subjects that I think of as being "beginner" level and would be typical in the workflow for creating many of the items you're likely to work on as an Opensim content creator.

Today's "tutorial" is more of a quick overview of what I'll expect you to know before doing one of these new tutorials as well as an overview of the basic classes of Blender Objects.


To save myself from endless repetition of basic instructions which would interrupt the flow of the tutorials and make them excessively lengthy (to prepare and read), each of the tutorials at this level will assume that you've either read through my novice level tutorials or are reasonably familiar with their content, and that you've subsequently done a little bit of experimentation on your own to learn the most basic modeling techniques (transformations and extrusions).

Specifically, they'll assume that you're somewhat familiar with the Blender interface and have a grasp of the basic core selection and modeling techniques used to build and manipulate mesh geometry:
  • know where to find each of the key panes that content creators typically use (Info (main menu bar) pane, 3D View pane, Properties pane, UV/Image Editor pane)
  • know a little bit about the primary modes (Object, Edit, and perhaps you've played a bit with Sculpting mode too)
  • know how to add mesh objects to the scene (plane, cube, etc)
  • know how to do basic transforming of objects in Object mode (move, scale, rotate)
  • know how to select and transform parts of objects in Edit mode (faces, edges, vertices)
  • know how to extrude one or more faces,edges, or vertices
  • know how to make a loop cut
  • know how to subdivide a mesh in Edit mode
  • know how to create a material (using Cycles Render engine) and apply it to specific faces of a mesh
  • have a very basic understanding of what UV-mapping is and a bit of novice-level experience with marking seams and unwrapping an object using the "Unwrap" method.
I'm not expecting you to be expert at any of the above, simply that I can include those as part of these tutorials' content without needing to give step-by-step instructions or explanations that detail them.
 That will make it considerably less time-consuming for me to prepare the tutorials, and make them shorter and easier for you to subsequently read.

Primitives (as a Blender Term)

You're undoubtedly familiar with the word "primitive" from your Opensim building experience and you might be unsurprised to find the word used in Blender, too, since it's a common term used in the 3D modeling world. It carries a similar meaning but with a broader scope than you've encountered in-world.

In Blender, there are a variety of "classes" of primitive and only one of those classes, "mesh," corresponds to your in-world experience. As a content creator these will be the ones of greatest interest to you since they're the only ones you can actually import in-world; but to take advantage of the full power of the software you will often need to use primitives from the other classes as part of your workflow. Some are aids to allow you to manipulate your mesh, others are converted into mesh after working with them in their non-mesh form, and still others are used (rarely) for other special applications.

The goal in today's tutorial is to briefly introduce you to the range of Blender primitives and give you a rough idea of what they're used for. Future tutorials will use objects from those classes so it's helpful to know a tiny bit about them first.

If you start Blender with a completely empty scene in Object mode and look at the 3D View Toolshelf's Create tab, you'll see buttons for many of Blender's primitives. There are a handful of additional ones that don't have buttons because their application doesn't make a button useful or they're used somewhat less commonly; but if you want to peruse the complete list simply click the "Add" menu option in the 3D View's menu bar since every single item in that menu and it sub-menus is a primitive.

When you look at either listing, you'll see Blender groups them into classes of primitives that share very similar characteristics. In fact even the classes are arranged into six overall groups which don't have official names but you'll see them separated that way in the menu. Here are my mental names for them, starting at the bottom of the menu:
  • Things: All of the classes in this, the largest group or primitives, are ones that are either meshes or are usually later converted into meshes. Of prime importance to the content creator are the first two: meshes and curves. We'll talk more about this group a little later.
  • Manipulators: The three classes in this group are generally used to manipulate the primitives from the Things group but can't be converted into meshes or imported. All three can be of critical importance to a content creator so we'll talk about them in a bit more depth later, too.
  • Speakers: This single-class group is of absolutely no interest to an Opensim content creator and can be completely ignored.
  • Visual: This group contains cameras and lamps which will be of increasing interest to content creators as they become somewhat more expert in Blender. They are an essential part of some texture-generation techniques that have a direct impact on the way objects appear in-world but are best left to a more advanced level of tutorial. You can get a taste for them as a component in +Chic Aeon 's recent set of Cycles tutorials.
  • Physics: Although this group only contains one class of primitive, Force Fields, it is the gateway to an entire element of Blender that can be of intense interest to more advanced content creators. Blender's core contains the Bullet physics engine with many (many!!!) more of its aspects full implemented. Force fields act on primitives from the Things classes to make them behave as their real-world counterparts would behave. Although intended primarily for uses that can't be exported to Opensim, they can be extremely useful as tools to improve the realism of a mesh. For example, I will usually run a gravity-based cloth simulation on mesh clothing to have it drape more naturally on my body, then apply those results to my mesh. That's a technique that I'll talk about in a different (advanced) tutorial sometime.
  • Grouped Stuff: Generally speaking this group isn't of much interest to content creators who are usually making one-of objects that will later be duplicated and positioned in-world, instead. If you were building entire scenes in Blender you might find this of more use, or if you purchase the Avastar add-on for Blender you'll find it listed in this group.
At our beginner level of tutorial, only the first two of the above groups are of much importance so let's spend a bit of time looking a little bit more closely at them and their classes.

These Are a Few of My Favourite Things

Gratuitous Sound of Music reference aside, the "Things" group of primitives is your go-to place when you're first starting out so it's certainly going to be your favourite (it probably already is). The Things group contains five classes and all but one leads to a sub-menu with a variety of primitives to chose between. All primitives of any class in this group can be converted into mesh (if they aren't already mesh) and exported to be brought in-world.
  • Mesh: the bread and butter objects you'll be working with all the time. This is the class that corresponds to the in-world "prim" you're used to but has a few more alternatives for you to choose from because in Blender we frequently begin modeling from a 2-dimentional starting point (plane, circle).
  • Curve: this class is the other very important one in the Things group and will probably become one you use quite often. Curves are easy-to-manipulate objects that can later be converted directly into meshes, saving a lot of time and trouble trying to model an equivalent object by hand.

    Curves have an additional, incredibly powerful use that would make them just at home if they'd been placed in the Manipulators group of classes instead, since they can be used to manipulate and modify a regular mesh object, usually using the "curve modifier."
  • Surfaces and Metaballs: these two classes are are curvy ways of making and manipulating mesh-type 2D and 3D objects that, for some projects, might be a more convenient starting point instead of their mesh equivalents. Once shaped as desired, you can convert them into mesh for further work. I don't use them very often for my own work but there are the occasional projects they're very useful for.
  • Text: this is a primitive that doesn't belong to one of the other four classes so it's listed by itself. If you need to model 3D text you'll usually want to use this. Be warned, though: mesh text usually has a very high poly count.
In almost all cases you will begin a project working with a Mesh or Curve (or combination). Later, you might add a primitive from the Manipulators group...


This second group of primitives are ones that you can't convert to into mesh so they'll never be making an appearance in-world; yet they're extremely useful and powerful and will likely become part of your workflow as you become more experienced. I call the primitives of these three classes "manipulators" because that's exactly what they're used for: manipulating the primitives from the Things group.

This manipulation is usually accomplished by adding one of these primitives to a scene that already contains an object from the Things group, then assigning a modifier to that thing which uses the manipulator primitive as the object that controls the way the modifier is applied. I'm sure that doesn't make a lot of sense when read in isolation and when you've never worked with them before, but as you work your way through my other existing (and forthcoming) beginner-level tutorials you'll fairly quickly come to understand what I mean.
  • Armature: it's unlikely that you'll ever add something from this class directly unless you become an extremely advanced user; but if you get into making mesh clothing or creating animations, you'll use a pre-made SL-based armature as an element for all of that work. The armature is a collection of  "bones" that make up the animation structure inside your avatar and "manipulate" it by moving it in-world.

    If you ever wanted to make an armature from scratch, the bone primitive found here what you'd use to build it. Then you'd use the "armature modifier" to link it to one or more primitives from the Things group and then subsequently manipulate them.
  • Lattice: this is an incredibly useful primitive that is used in conjunction with the matching "lattice modifier" to manipulate the shape of Things without having to do all of that modeling by hand. I use it extensively to help fit and adjust clothing, and for large-scale modeling and contouring or objects (usually non-geometric ones).
  • Empties: this is an oddly-named class that contains a variety of primitives. For the most part you'll only use "Plain Axes" one in conjunction with the "mirror modifier" or "array modifier" although there are other instances when it can be useful.

So What?

I've done a lot of "talking" but not any "showing" of these things we've been discussing, so you're probably wondering when I'm going to get around to that so you'll begin to have some idea of what the heck I'm going on about. I've already done that, without looking at it from this "overview" perspective, so armed with the above information you might now want to revisit a few of the very first tutorials I posted to this blog. Each of those is very simple and will take only a short time to complete, yet demonstrates the power and flexibility of controlling Things using Manipulators and modifiers:
  • Fun With Blender Arrays was my first blog post and will show you a "Thing" primitive that is then given an array modifier and, a bit later in the tutorial, a "Manipulator" Empty prim is added and used to make a very interesting and complex pattern from just a very basic torus.
  • In More Fun With Blender Arrays I again show how powerful the Empty manipulator prim can be when used as the controller for an array modifier applied to a simple cube to make a spiral staircase.
  • In the third post of that series I show how to take a very simple torus primitive, then use a curve primitive and an empty primitive to make a curved chain.
  • Chains Revisited shows the lattice primitive used with the lattice modifier on a simple torus, the shaped using a curve primitive into a necklace using the array and curve modifiers.
  • In the Screwing Around tutorial you'll see a curve used as a very easy way to rapidly shape an object which is then converted into a vase after applying a simple screw modifier.
Hopefully those will whet your appetite for the entire series of modifier tutorials I intend to prepare over the coming weeks to introduce modifiers in general, and then take some time looking at each of the ones I consider to be most useful for Opensim content creation.