Art Gallery Image Border.

Sean Erik O'Connor - Portfolio

Here are some paintings I've done in acrylic, pastel and colored pencil and pen. Click on a painting to enlarge. All works are Copyright © 1986-2019 by Sean Erik O'Connor. All Rights Reserved.

Traditional Painting Techniques

I'm self-taught. On these pages, let me share some advice I've learned from experience and from various artists. There's surely a lot of terrible advice on how to draw and paint out there!

I paint in acrylics on canvas. Here's my outdoor easel and indoor studio with a white floodlight, a computer running Blender on Ubuntu and a Husky.

Artist's Easel Artist's Studio

I also paint in pastels, draw in colored pencils and graphite pencil.

I'm currently working on a painting of an orbital. I've calculated the wireframe model and perspective view in Mathematica using homogeneous coordinates and matrix algebra.


Good draftsmanship is the foundation of your artistic skill. Carry a sketchpad and pencil everywhere you go. Draw freehand from life and from imagination every day to train your hand and eye. Do lots of thumbnail sketches.

Absolute basics which you must master:


Brushwork Technique

You need to master the basics of brushwork technique, including washes, drybrush, etc. I've found this book to be good: Brushwork Essentials

Color Mixing

I found it best to make my own color chart from a limited palette of acrylic colors. The color chart has pure colors across the top. There are exercises in mixing various browns, greens and blues for landscapes. For flesh tones, I use a slight modification of Portrait Painter Howard Sanden's palette. After mixing the basic flesh tones, adjust the tint with the different primary colors.

Color Mixing Chart

Gallery (Digital)

I've done a test render of a kitchen for a remodel project. The layout is imagined, but the materials are from photographs. And here's a work in progress on female modelling.

Digital Art Techniques

I'm learning Blender, a powerful CGI program which can do practically anything from helping with perspective and lighting for traditional painting to creating a complete animated film or game! It's free software, and can be downloaded as executable or built from source.

Blender Example Quick Render Example

For digital painting, and doing quick studies for traditional painting, I use Gimp

Gimp example

Blender Worked Example

What follows is a worked example of a digital painting, created in Blender, using a female model I created and compositing her with a science fiction landscape backdrop.

Blender Introduction

Blender is super powerful and will take about a full year learn. You'll need to memorize a few dozen hotkey combinations and get familiar with the complex user inteface with its dozens of modes. As someone said, it's like learning how to pilot a spaceship.

The video tutorials on Blender Cookie - Introduction to Blender are really excellent, as are Andrew Price's tutorials on Blender Guru. Also view the tutorials on Blender's Web Site. When you get stuck, search the web with google, look into user forums such as Blender Stack Exchange and Blender Artists.

Mesh Modelling

First view the excellent Blender Cookie tutorial series by Jonathon Williamson, Modelling the Female Body where you'll learn about Blender's mesh modeling tools and how to keep the topology clean so it's easy to modify and animate.

Here's a sample mesh I did for a female figure,

Female figure mesh

The basic idea is to use edge loops which follow muscles and bones so we can easily select those areas of the mesh to move and resize which correspond to actual human movements.

Face Loops

Face loops for on my model's face following muscles around the eyes, lips, and jaw. I show the poles which are vertices with more than 5 edges where the edge loops meet:

Face Loops Face Loops
Mesh Tools
x Delete edges, faces or vertices
Ctrl R Subdivide mesh
F Generate faces
Alt Mouse Left button select edge loops
Ctrl E Slide edges
Alt M Merge vertices
Ctrl V Separate edges
Extruding From Face Loops

Start with the face loop for lips. Extrude several times to create the lips.

Lips Mesh
Dissolving Edges

Simplify the mesh by dissolving edges. Alt Select the edge, then Shift Dissolve Edges, after which you can do Ctrl-E Edge Slide to fix up,

Dissolve Mesh Edges Dissolve Mesh Edges Dissolve Mesh Edges
Hiding Portions of the Mesh

I want to work on the mesh behind the ears. Select the ears and hide them. Alt Select in Edge Mode thenCtrl E Select Inner Region then Alt H to hide the ear so we can work on the mesh behind it.

Ear Loop Ear Loop Ear Loop
Mirroring the Mesh

I created only half of the mesh as a shortcut since the human body has mirror symmetry Mirror the Mesh That's done by adding a mirror modifier (before the subsurf modifier). Select mirror in the x axis. The mirror plane must be the centered exactly, i.e. the local origin must be correctly positioned. See the Blender Manual: Accurately Positioning the Mirror Plane I'll repeat the method here. Select the left edge loop on the half figure using Alt Left Mouse Select. Then Shift S Cursor To Selection which puts the 3D cursor at the center of the edge. The Ctrl Alt Shift C Set Origin to 3D Cursor as the final step to position the object's true center. I set the merge limit to 5cm and enable clipping which causes vertices along the mirror line to snap together without a seam. Add Mirror Modifier

Select the body and hit m to move it to its own layer, Body Layer

Someday when you finish the model, you can apply the mirror modifier. This will convert the real half and the virtual half to a single real mesh. The mirror modifier goes away.

Duplicating Finger Mesh by Copying and Pasting Mesh Geometry Within the Same Object
Hand Mesh Select Hand Mesh Move Hand Mesh Join
Copying a Portion of the Mesh

After you've modelled one finger, you can simply duplicate the mesh geometry to create the other fingers. Select a portion of the finger mesh with B. Duplicate with Shift D Return. Move the duplicate out of the way of the original with the mouse, then move it into place at the new location and connect the edges. Note that all portions of the mesh are still connected to the same object.

Another way to do it: After you duplicate with Shift D Return, disconnect the mesh from hand with P Selection. Move the duplicate finger into place, then Shift Select the hand and do Ctrl-J to reconnect the duplicate finger to the hand as a single object.

Fixing Inconsistent Normals

To fix inconsistent normals which make odd looking holes in the object display, go to edit mode, select the mesh, then spacebar to search and select Make Normals Consistent

Inconsistent normals Fixing inconsistent
Fixing inconsistent normals
Grease Pencil

Grease pencil is useful to sketch on top of the mesh. You can toggle it on and off with the Eye icon in the T panel. Click on Draw to do freehand drawing and ESC to quit. Do Stroke Placement = Surface to make the lines stick to the surface. Turn off X-Ray, use Factor = 1.0 and set the Tint. Here I'm showing poles in the mesh. Grease Pencil

Coordinate Systems

Let's clean up our coordinate system prior to creating a really large object.

Set Blender units to metric in the scene. We'll use meters. Meter Units

To avoid clipping the object when zooming in close, in every viewport window, type N to bring up the transform pane and set the clipping minimum range to 1mm, Viewing Range

Make our female figure the origin and line her up with the coordinate axes. Do this by selecting the entire armature and lining up the figure with the axes. When she's in position, hit Ctrl-A to apply the coordinate transforms. Coordinate System

Centering an object's handle

If your object handle isn't in the center do Shift Control Alt C Set Origin to Geometry. Set Origin to Geometry The center will be the small yellow dot.

Body Proportions Guide

You can enclose the figure in a wire cage tagged with body proportions, by creating a cube, deleting faces, creating text, and parenting to the cage. We switch to orthogonal view 5 to get the proportions correct, Body Proportions Here's the list view showing we turn off rendering for the guide, Body Proportions You can adjust the proportions more easily in Orthographic Projection. But make sure Backface Culling is turned on in the tab toggled by N so the view isn't messed up:

Back Face Culling Off Back Face Culling On
Turn on Backface Culling When Using Ortho Mode

Torso Rigging

We'll want to create a skeleton for the figure and pose it by moving the bones. First view Complete Character Rigging by Lee Salvemini and also Jonathon Williamson's Blender Cookie tutorial, Introduction to Character Rigging

To create the rig, I first do Shift A to create a single root bone and move it between the feet. This will position the whole figure. Then selecting the root bone in edit mode, duplicate it using Shift D and move it up to the pelvis to be the first bone in the spine. Next use E to extrude the second bone in the spine, and so on for all the bones including the head bone. Extrude Bones For the left arm bones, duplicate the top spine bone with Shift D and move it into position to be the clavicle. Do similarly for the left leg bones, duplicating the bottom spine bone. Rename all the arm and leg bones on the left side, and add the suffix .L Copy the left side bones and move to the right. Now, selecting the right side bones, do W Flip Names to change all the names to the .R suffix. Character Rig Now we do a bit of clean up and parent the two clavicle bones to the thoracic upper spine bone. Go into Pose Mode, shift select both clavicle bones and finally the thoracic bone, then parent with Ctrl-P keeping the relative bone offset (so one bone doesn't automatically connect to the end of the other bone). parent both femurs to the lumbar spine bone, Parent the entire body armature to the root bone, For the root bone, we just want it to move the body rig, not deform the mesh, so we unset deform, The bones are chained in child/parent relationships, By duplicating bones with Shift-D, we keep all the bones as part of one single object even though they are not directly connected to each other.

Torso Skinning

Go into object mode, click on the mesh, then shift click on the armature, then Ctrl-P with automatic weights to tie the mesh to the armature. You'll see new vertex groups in the mesh controlled by the bones in the armature.

You'll now need to weight paint the vertex group on the mesh associated with each bone. In the List View window above, select the bone in the vertex group of the mesh. The name will be highlighted in white. Turning on the names of the bones will help. Go to Object View in the 3D view and select the mesh. Next go into Weight Painting mode and bring up the brushes with T, selecting the weight between 0 and 1 and selecting the Drawing brush. Weight paint the mesh in the neighborhood of the bone. Default is zero weight (blue) and full weight (red).

Now go into Pose Mode and move the hand bone. You'll see the mesh of the hand move also.

Be sure to weight paint all parts of the hand or you'll see this when moving the bone,

Torso Posing

Select the rig and hit m to move all the bones to their own layer,

You can adjust the pose in pose mode and keep the new pose as the resting pose,

You may need to reset the armature to its resting position,

You can position from inside the object if that's easier. Here I'm moving an eyeball using the eyebone from the inside of the head,

Here's an example of what you can do with the rigging. I switched to pose mode and moved the head bone with G to tilt the entire head, eyes, hair and all. Then did a test render.


I use a simplified model of skin material explained in Ben Simonds Three Layer SSS in Blender Demystified. See also the Blender manual for subsurface scattering

Skin Material Nodes

Here are all the material nodes we need for skin. I'm using different UV maps head and torso to get more fine detail control. I'll explain all the settings as we go along.

Use Shift A to create the nodes and link their inputs and outputs. Use N to bring up the node properties and change the names and colors of the nodes.

Mostly, I followed people's recommendations for the subsurface scattering radii needed for skin. We'll talk about the scale factor in a moment.

UV Maps for Skin

First mark seams along edge loops with Ctrl E Mark Seam on the figure so we will get a clean unwrap. I've separated out complicated facial parts such as the ears, nostrils, nipples and separated the head and the torso, marking extra seams to factor out the hands. Next, we'll create the UV map for the head by going into the mesh panel, hitting + to create a new mesh. Double click on the default name UVM to rename it to Head, In the 3D view, go into Edit mode, select face mode and also Keep UV and Edit Mode in Sync mode. Then select all vertices with A and clean up any lingering unwraps with U Reset Now unwrap the mesh with u Unwrap Mesh.

Go to the UV Editing Right Window. Select within the head mesh and use L to select the head portion of the mesh. Then select within the nostrils and ears with Shift Select then L and move these pieces of the mesh outside blank image square temporarily with G. If you go to the left window and use B Drag Select the mesh within the image square, you'll see that this is the torso. Move it outside the image square with g. Now select the head mesh pieces with L, enlarge them with s, move them inside the image square with g, rotate them with r, and move the head, ear and nostril meshes back into the image area. Now create a new UV image for the head mesh. We'll use the default resolution of 1024 pixels, The * on the Image button means we should remember to save this changed image. Let's rename the image name to Head then save it away in the /Textures directory,

In the left window which shows the UV map, bring up the brush tools with T. Select a brush type, color, radius, strength and use Mix. Paint it on the UV map image, Do a quick test render by hooking up only the head texture in the compositing window, then doing a viewport render in the 3D view window by selecting the Rendered option for Viewport Shading

NOTE: Keep the meshes away from the edges of the image. I noticed when my ear mesh was too close to the image edge, painting on it upper portion caused painting to appear on part of the torso.

In practice we'll be painting directly on the model in the right window using Texture Paint mode, I'm using the default Brush with radius of the brush adjusted to to the zoomed-in image size. I like to dial down the strength and make several passes to imitiate paintbrush texture. NOTE: If you have problems texture painting on the model, make sure everything is synchronized, i.e. select the model mesh, the model UV image, click on the model UV node to make it active, and mapping = texture, Here's what I'm using for skin color, by the way,

Reconnect the head UV texture only to the epidermal node and then to the output. Do a test render in the 3D view window by selecting the Rendered option in Viewport Shading. The head should render with the correct image texture out to the limits of the head UV map. The torso should stay black, i.e. no UV map and no texture. By hooking up nodes and doing a test render, we see that the alpha channel is 1 for the head UV texture map and zero (black) elsewhere (on the torso),

Do the exact same process with the UV map for the torso, starting by creating a new UV map for the torso. The alpha channel is 1 for the torso and 0 for the head.

Now we combine the colors of the two maps. Just adding them won't work: it will mix the colors of one UV map with the default black color outside the other UV map. So instead, hook up the alpha channel of the torso UV map to the mix node factor input. Recall the torso alpha channel will be 0 for the head and 1 for the torso. But that's what we want! We'll add 100% of the head color (fac = 0) with 100% of the torso color (fac = 1). Thus our colors add seamlessly without overlapping.

Texturing Skin

To make the skin more realistic, we can create skin pore texure on the flat color image using image processing filters in Gimp I've followed this method by Creating Skin Texture by Stephan Bollinger. Adding noise to the skin texture image, then use the emboss filter to create pore-like texture, then smooth it out, Here's a test render, This closeup shows before and after texture is applied to the skin texture image,

Normal Maps

Texture painting will not be enough for realistic skin. We need to create a high resolution surface and sculpt it with the fine skin detail. However, we are not going to use the high resolution surface directly (that would take forever to render). Instead, we'll cheat by mapping the high resolution surface normals to the low resolution mesh to perturb the light paths and make it appear as if we had the actual high res surface. The process is called normal baking, and while the realism breaks down at sharp viewing angles, it's still pretty good. Also see the tutorial normal baking with cycles

Instead of retopologizing a high resolution sculpted mesh to create a low resolution mesh, I went in the reverse direction by duplicating the low res mesh, and creating a hi res sculpted duplicate.

First Method

Select the head portion of the low resolution mesh. Duplicate with Shift D Return. Disconnect the selected mesh using P Selection Select the new object and unlink from the old object's armature with Alt-G then unlink from the old mesh with Alt-P

Second Method

I can't get the first method to work for this model so I did a workaround: Go into object mode, select the body and duplicate the whole thing using Shift D Return, then rename the duplicate, Go into edit mode, select edge mode, select the neck loop with Alt Select, the select the head with Ctrl E Select Loop Inner Region Now invert the selection with Ctrl I then remove the non-head mesh using x delete vertices, Go back to object mode where we see the duplicated object superimposed on the original, Move the hi res head to a different layer with m for convenience and turn off rendering for it.

Sculpting the Hi Res Mesh

We will only use this mesh for baking surface normals, so we don't need any materials, or armatures. Anchor it to the low res mesh by selecting the it, then selecting the low res mesh, the parenting it with P parent to object keep transform

In case you have problems later, try this Since the high and low resolution meshes must be aligned perfectly in order to map the normals, get rid of any local transforms by doing Ctrl A Select Rotation and Scale to both meshes.

Delete the modifiers, except mirror and delete the materials. The surface will be white now. When I added the multiresolution modifier on top of the mirror modifier, I was getting a thick seam down the middle of the head. As a workaround, I applied the mirror modifier, this eliminating it, then added the multiresolution modifier: no problems now. In the multiresolution modifier, subdivide 4 times to get fine enough resolution for the lips when sculpting. Now go to sculpt mode, select T to bring up texture brushes, then select a new texture, such as random noise, then dial down the strength, adjust the radius and sculpt the high res mesh for the head in the area of the lips,

Baking Normals

Add additional nodes for the normal map in the compositing window with Shift A. Select the low res head mesh for the UV map: normal baking needs to know the coordinate system. We'll create the image texture later. It's Non-color Data because it's color coded normal vectors components. Use Tangent Space. We will adjust the Strength later. Finally, don't connect the output yet --- this will avoid the mysterious circular reference warning when baking later.

Baking assumes we have a UV map for the low res mesh already in place, and we do. But since we have multiple UV maps, we will need to explicitly select the UV Map for head to be active. Do that in the mesh panel, Also you need to enable the layers containing both hi res and low res meshes (or you'll get a warning).

Now create a new hi res normal image texture, which is defaulted to black, and save it to the /textures folder, Back to compositing. Select the normal texture node and open the blank texture image you've just created,

The bake settings must be Tangent and Selected to Active. You must have Ray Distance greater than 0, or else the normal vectors come out weird. I've had them wrap around 180 degrees on the object.

Now we'll bake! First select the hi res head, then shift select the low res head (must be in that order!). Then hit the Bake button in the render panel. This will take a while. Then save the image away to /textures.

Back to the compositing window. Connect the normal output to the shader nodes inputs,

Note the artifacts, especially on the throat. It's because we have extraneous normals introduced by the multiresolution head geometry not quite fitting the low res mesh. For now, we only want the normals from from the sculpted lips. The workaround is to paint them out of the normal map image using the background color (zero normal) and resave the image.

Finally, adjust the normal strength while doing a render with Final Sampling and Full Global Illumination,

Further Work

I'm still researching this method of texturing skin: We can take shortcut to avoid hi-resolution sculpting and baking and instead convert a height image of skin-like pore texture to a normal map using a node group see also How NOT to Make Normal Maps from Photos or Images Then given we have normal maps from baking hi res sculpts of certain features, such as lips, we can combine the normal maps. using math node groups in Blender, such as Separate XYZ, Add, Combine XYZ and Normalize to give the sum of normal maps.


First view the excellent tutorials by Rico Cilliers, Blender Hair Styling Part 1 and Blender Hair Styling Part 2


I wanted to do hair directly on the female torso, but I couldn't figure out how to mirror the hair. Instead, I will create a separate mesh for a wig and lock it to the head.

First, we'll copy a portion of the head mesh. Go into edit mode and use B to select the hairline.

Duplicate the mesh with Shift D, then create it as a separate object using P,

The wig inherits the mirror modifier of the female model. Apply the mirror modifier to generate the complete mesh and remove the modifier so we can place the hair on the entire wig,

The wig is the same size as the head, so you'll have a duplicate render of cap and skull. The 3D view shows the overlap, Select the wig and add the Shrinkwrap modifier.

Now select the target as the head, Next, let's shrink the wig slightly smaller than the head so it doesn't render on top of the skull. Here's the fit. Use the Z key to see the wireframe mesh,

Now apply the shrinkwrap modifier. This will convert the wig into a separate rigid object not tied to the skull.

Now to make the wig move with the head, select the wig object, then select the head bone, then use Ctrl P Set Parent to Bone

Creating Hair

Hit Tab for edit mode and C to vertex paint. This will put the hair where you want it. Scroll to adjust the radius of the paintbrush. Escape gets you out.

Go to the mesh tab, add a new vertex group called hairline, and assign it. Click select and deselect to make sure it's really assigned.

If you look at the weight painting mode, you'll see red where you've selected the vertices, and blue otherwise. You can weight paint to fine tune the hairline.

Select the wig, add a particle system, select Hair, select advanced. Rename to Hair. Dial down the hair length and number of hairs. You get hair everywhere with the hue of the object.

Now make the vertex group control the hair density.

You can adjust the vertex groups hairline using weight painting. Get the paintbrush tools with t, adjust the brush radius and weight from 0 to 1 and paint over the mesh.

Hair Color and Texture

The wig mesh has skin as its default material. As it stands, the hair material, since it's emitted from the wig mesh, will inherit the skin color, which is wrong. So we need to add a new material for hair. These are the hair material nodes in the compositing window. Don't worry, I'll explain them all in the next section, Now go back to the particle system tab. Change the particle's material to Hair (instead of Skin). A test render in the viewport, shows the result is pretty good,

Fine Tuning the Hair Color and Texture

Now, let's see how did we develop the hair material settings,

First select the base color of the hair and a color ramp which makes it go from black at the roots to brown at the ends. Do an immediate high speed render in the viewport to test it out.

Next, mix in dark brown reflections and light brown transmission for the hair colors. Again, do an immediate high speed render in the viewport to test it out in real time as you adjust the factors in the nodes.

Add glossy highlights, tweak the strength of the highlights, and do an immediate high speed render in the viewport to test it out.

Hair Styling

You want to add very few evenly spaced parent hairs and comb them, letting the child hairs do all the work. Don't be alarmed if the child hairs explode all over the mesh at some distance away from the parent hairs: as we add more parent, the interpolation will get more stable. To add hairs, go into Particle Edit mode and bring up the toolbar with Ctrl-T.

Select Add then Count: 1 to add one hair at a time. Adjust the radius to something medium large. Leave Children unselected for now; just view the parent hairs.

Set Path Steps to 6 in Draw. You'll have to experiment with this. Too small and the hair paths are very polygonal; too high and the paths become unstable with lots of oscillations.

The Particle select and display mode buttons on the bottom let you view the steps in the hair as dots. To avoid seeing xray mode with hairs, click the Limit selection to visible button on the bottom.

When add new parent hairs next to older parent hairs, you can switch on Interpolate with 10 steps and 12 keys. This will cause new added hairs will follow the curve of the nearby existing hairs.

HairAddingInitial HairAddingSubsequent
Adding New Hairs With Interpolate Turned On

Comb the parent hairs into place using the Comb tool with medium large radius, say 70 pixels, and strength dialed down to 0.6.

I usually toggle off child hair display when combing by deselecting Children in the particle edit tools window. You can toggle children back on again for viewing. Here I've also selected all parent hairs with A, so you can see them,

Set deflect emitter to large enough value 0.3 so the hair does not fall through the mesh when you comb it, yet small enough that the mesh doesn't repel the hairs too much and prevent them from lying flat. You see with zero deflection, you can comb the hair inside the wig mesh, If you up the deflection number, it will prevent you from doing so,

You can also select parent hairs using C (when done hit ESCAPE), and move them as you would any other vertices.

Set the number of steps to get hair that looks smooth, and add interpolated child hairs. Choose Long Hair and dial up the Display: and Render: number of hairs.

Do a test render in the viewport to check the hair quality,

You may see a loss of hair resolution going from a preview render in the viewport to a full render. Here's a full render, In the hair settings, turn off Child Simplification. You'll see all the child hairs rendered,


To create eyebrows, create two objects eyebrow.L and eyebrow.R consisting of planar mesh.

Parent each eyebrow to the head bone by selecting it, then shift selecting the head bone as parent object and using Ctrl-P Set Parent to Bone. Now the wig and both eyebrows have the head bone as parent.

Add hair as above, adding a particle system, materials, combing and so on.

Position the eyebrows and move the vertices just below the skin surface so we render the hair only.

Toggle the wireframe mode with z to see the vertices below the skin more easily.

I cloned the material for the hair in the eyebrows, but modified to make it use finer hairs and different colors. The color of the object, I left as the default skin material. Assign the new eyebrow material in the hair particle system for the eyebrows,

Finally do a test render in the viewport:

Before Eyebrows After Eyebrows
Before and After Eyebrows
Hair Rigging

Now, when posing the figure, we want the wig to move with the head. So we'll need a new bone for the wig, tie it to the wig mesh (and its particle system, then tie it to the head bone in the skeleton.

Use Shift A to create new wig bone. Name it, and turn off deform and turn on xray. Now parent the wig mesh to the wig bone by selecting the wig, then shift selecting the bone, the Ctrl-P bone. You have to be in pose mode

Next, parent the wig bone to the head bone so it moves when you pose the head, Check the results in 3D view window by selecting the Rendered option in Viewport Shading

Select wig and hit m to move the hair and wig to their own layer,


I followed Blender Cookie - Creating an Eyeball to construct eyes from a ball containing the iris and a larger clear shell shaped like the cornea. We UV map to get the iris color of the inner eyeball, leave the cornea clear and turn on caustics to get good reflectons off the eyeball, parent inner eyeball to the cornea, and create eyebones and tie them to the headbone so the eyes move with the head when posing.

Parenting Inner and Outer Eyeballs

To get objects to move rigidly together, use parenting. I parent the inner eyeball to the outer eyeball, for example.

In Blender, select the child object first, then shift select the parent object, then do Ctrl-P to parent the child to the parent. The relationships show up hierarchically in the outline view:

Rigging Eyes

See the torso rigging example for the wig where we use a bone to control the position of the mesh object.

Create two new eye bones with Shift A. Go to bone properties and click deform off because we don't want the bone to change the eye shape. Then select the outer eyeball object, shift select the bone for the eye. Repeat for the other eye.

Tthen Ctrl-P to parent the eyeball to the bone. Select keep offset since we don't want to connect the bones directly to each other. Similarly parent both eyebones to the head bone.

UV Wrapping for Eyes

To get a decent unwrapping, partition the mesh at the cornea edge. In brief, select the eyeball, tab to go into edit mode, then alt on the cornea edge to select the edge loop, Ctrl-E Mark Seam.

Finally a to select the whole mesh spacebar Unwrap to unwrap the mesh onto the image.

The unwrapped meshes will be at "random" positions.

You'll have to select the meshes with g and the mouse or L to select a connected component, then move and scale them over the image with g s and the mouse. Select the bottom box which keeps the meshes synchronized.

This is the UV unwrapping for the inner eyeball for the iris and the rest of the eye,

The iris pattern was painted in Gimp,

The material nodes use UV mapping for the coordinates, select the image above to use for the texture color mapping through a diffuse BSDF and output to the surface.

The inner eyeball after rendering,

The outer eyeball is just the clear cornea,

Select eyes and hit m to move them to their own layer,

Rendering Eyes

Renders of inner eyeballs and outer cornea.

We have to turn on caustics in Render to get the effect of eyeball seen through the glassy cornea, but we will get fireflies.

So let's turn on clamp indirect slightly to suppress them.


Adjust the angle of the sun relative to the objects.

Adjust the sun intensity to lighten shadows. Adjust the sun size up from zero to give softer shadows. Searching around the web I found that the size of sun is $\tan( \alpha / 2 )$ where $\alpha$ is the radius angle of sun on the surface. Use multiple importance sampling to reduce noise.

Check the results in 3D view window by selecting the Rendered option in Viewport Shading


Basically, use the camera defaults. But here's a trick: you can make the camera track an object. Select the camera and add an object contraint of the type track to. If you move the camera around, it will stay pointing at your object.


Composition can superimpose rendered objects over a painted background image.

Background Image in 3D View

But before get to rendering the background, we'd like to position the background as an image plane behind the figure so you can see it during modelling.

Create a new empty image with Shift a

In the settings, tie it to an image file,

Select it and type m to move it to its own layer,

You can paint the image with the UV Editor tools (hit Ctrl-T),

Composition Nodes

Use an Image node for the background. Send it to a scale node and a translate node to position it relative to the render layers node. You must send the render layers node to the composite node or else the render won't enter the composition stream.

Send the scaled translated background image and the render layer to the Alpha Over node and then to the Viewer node to view the results on the screen.

Hit the n key to view the backdrop positioning and image zoom controls. You must have backdrop enabled.


High Quality Rendering

Enable Transparent in the Render options so the background will show through. Set the render to the highest quality settings.

After you hit the render button and rendering completes, the composite output will be saved to file.

Speeding Up Rendering

To speed up renders, see Andrew Price's tutorial 18 Ways to Speed Up Blender Cycles Rendering I'll mention a few,

Reduce light bounces. I've created a new preset called Fastrender: Use the optimal tile size for CPU or GPU compute (automatically set in the new blender). Reduce the number of samples. I've created a new preset called Fastrender: Select the Cycles to use the fastest compute device (on my MacBook Pro, CPU is faster!) Select GPU compute in render, Turn on denoising, which will improve the quality of your fast render substantially,

Copy Between Blend Files

You can copy objects from one Blend file to another, but make sure you have the entire object. First go to File Append in your current .blend file, Then go to the directory for the other .blend file. You must go to the folder Objects and Shift Select all the objects you need for the complete figure. The materials will be copied automatically. Very likely, you new object will be off somewhere in outer space. To locate it, do Spacebar View All Now make sure the whole object is selected, move the 3D cursor to where you want the object to appear and do Snap Selection to Cursor And here's the figure in the scene (it's too small!) Adjust its scale with S and position it with G and do a test render,

Large Objects: an Orbital

We are going to input a huge object: an orbital. It's a ring with radius r = 1.5 x 106 km Spin up the orbital to a 24 hour day/night cycle and check the acceleration, r ω2 = 0.808639 g, which is comfortable for us Terrans. The side walls are 500km up, the trees are 100km tall, and the base of the orbital is 400km wide. Create the orbital with Shift A select mesh torus. Rotate it 90 degrees. Apply the rotation factor to the object with Ctrl-A so the rotations return to 0 and the torus lines up with the coordinate axis in its rotated position. Finally, we want the torus origin to be it's center, not the bottom, so bring up the tools with T and select Origin to Geometry. The yellow object center dot will shift from bottom to middle.

Checking Backface culling will help you view the mesh better as you edit it to remove the inner rings. Also you can select the seam in the middle with Alt Shift Select and dissolve To see the orbital, you need to greatly extend the clipping end range Finally, enter in the dimensions of the orbital and translate it upwards in z by the orbital radius so that the female figure is positioned near the bottom inner surface. As you zoom out to see the huge orbital, you may lose the female figure. Select the figure and hit space bar view selected to find it. The same goes for zooming out to see the orbital, with the origin marked near the bottom,


Who doesn't like trees? Please see this three part tutorial series from Blender Smoothie: Blender Smoothie: How to Create a Realistic Trees I'll go through a worked example for a painting I'm working on. First you'll need to activate the Sapling add on by clicking the checkbox, Sapling is a python program which generates a tree model as a series of curves. It's located in the directory

# Mac OS: /Applications/blender-2.78c-OSX_10.6-x86_64/ # Ubuntu Linux (assuming you've downloaded and unpacked the Blender distribution into your home directory, ${HOME}/blender-2.78c-linux-glibc219-x86_64/2.78/scripts/addons/add_curve_sapling

To add the tree, do T to get the tool window, then do Shift A and select curve/sapling, You'll see the tree outline and the settings appear in the toolbar. I'm going to load the Callistemon preset tree type in the toolbar, In the tree settings in the toolbar, set the bevel to 4 so the trunk isn't square, There's lots of settings. Try adjusting the tree scale, the number of branch splits, branch lengths, random seed, leaf scale, etc. You can click a box to show the leaves, If you move the tree, the tree settings go away. As soon as you are done with your tree design, name your tree and save it in export presets, At this point the tree is all curves. You can move it around and scale it. The next step is convert curves to a mesh with Alt C. Be aware this will slow down viewing and rendering considerably. We will separate out the trunk. Shift select vertices on the trunk, then Ctrl L to select connected vertices, Then P choose separate by selection to separate the trunk mesh from the branches mesh. Obtain an image of tree bark, Now go into UV Editing, select the trunk, go into edit mode, Shift Alt Select a a few edge loops and mark them as seams with Ctrl-E Mark Seam. Select all the vertices with A, do u to UV unwrap. Load the tree bark image. Now resize and position the mesh on the image. You can let uv mesh extend beyond image, it will repeat. Go back to Compositing, select the trunk and create a new material. Use the tree bark as texture image in UV mode,

Now let's do leaves. I captured a photograph of a leaf, then used Gimp to erase the background: the foreground is the leaf and the background has alpha = 0. Also create an alpha mask by painting the leaf white and flood filling the transparent background with black, Go to UV Editing, select the leaves and go into edit mode and mask mode. Sapling has already unwrapped the leaves, so each leaf is mapped to the image with an orange mask. However the orientation of the image and leaf square don't match, so you'll have to rotate, translate and scale the mask, Here's the final mapping and how it looks on the leaves in both mask mode and image mode, Now go into Compositing and create new nodes with Shift A. The leaf image feeds into the diffuse BDSF shader and the leaf alpha mask feeds into the mix shader. One more thing, to avoid showing the leaf background as white in the viewport, dial down the alpha setting in the materials pane, Do a test render,


Now let's do a fence using the array modifier. First create a segment of the railing by adding a Nurbs curve with Shift A Go into Edit mode and shape it with the control points. The main properties we'll use for now are Bevel to add thickness and create a tube instead of wire, Clear the object's rotation and scale to defaults (zero angles, scale = 1) with Ctrl A Rotation and Scale This is because the array modifier uses offsets based on rotation and scale of the object.
 Set the object’s origin to the geometry using Shift Ctrl Alt C Geometry to Origin. The object’s (0,0,0) is the center of the object, bounding box center, I think? You'll see it marked with a small yellow dot. Now create an Empty object using Shift A Empty Plain Axes. Clear the empty's rotation and scale to defaults (zero angles, scale = 1) with Ctrl A Rotation and Scale Now some contortions to match the origins of both the empty and the curve. Select the railing and move the 3D cursor to railing’s origin with  Shift-S Cursor to Selected Finally move the empty's origin to the 3D cursor to make empty and curve share the same origin by selecting the empty and using Shift-S Cursor to Selected Let's rename the empty to Railing Control You should see something like this: Now select the railing again and add an Array modifier. For its settings, let's pick a Relative Offset of x = 0.5cm, a Fixed Count of 5 to begin with and for the Object Offset select the empty. Now rotate the empty in z and increase the array fixed count. You'll see that each copy of the railing object is offset by the empty's angle giving a circle, If you want to move this structure, remember to select both the curve and the empty simultaneously with Shift Select You can adjust the angle of the railing by selecting it, going into edit mode and rotating the base element in z,

Wine Glass

We'll render a wine glass (with wine) using the glass liquid interface method.

First we create a two coencentric cylinders connected at top and bottom then extrude and shape it into a wine glass. We also create a face for the liquid surface.

Bring up the settings with N and turn on the normal display, tweaking the normal vector lengths. Note that normal vectors all point outwards from the surface by default. Add a new Glass BSDF material with the color white, i.e. clear glass. The index of refraction (IOR) = 1.5 [glass] / 1.0 [air] = 1.5, assuming outward pointing normals. Give it a name WineGlass. Select all vertices for the glass to air interface which are those on the outside of the glass plus the inside of the glass above the liquid surface. Assign this material to the vertices.

Create a new material Wine with IOR = 1.33 [water] / 1.5 [glass]= 0.8. Select the vertices on the inside surface of the glass. Assign the vertices to this material.

Create the final material Wine Top with IOR = 1.33 [water] / 1.0 [air]. Select the top liquid surface. Verify the normals are pointing upwards. Assign the vertices to this material.

Do a test render,

Table Cloth

We'll do a simple table cloth.

First create a simple plane with an opaque material, Then add a Multiresolution Modifier, subdivide a few times, then go into Sculpt Mode, bring up a grab Brush, adjust its radius and strength settings and put wobblies into the cloth, Now we'll add a Cloth Modifier Adjust it in the Physics tab to do Self-intersection so the folds look right, The table cloth must not fall through the table! Add a Collision Modifier to the table top, Blender has gravity turned on by default in the -z direction. To engage the physics, and allow the table cloth to fall in folds across the table, Play in the Animation panel, Here's our test render in the viewport,


Let's do a lake! I slightly modified the ideas in The Stream by Sardi Pax

First create a large plane and subdivide it. Put a blue colored simple plane below it for the bottom of the lake.

Create a new material for the water surface. We'll start with glass BSDF for the basic water interface, then mix that with glossy BSDF to reflect more light from waves on the surface, and transparency so we can see the color from the bottom of the lake, along with a bit of roughness. Then we add wave texture displacement to the faces in the plane.

Play with the lighting angles and viewing angles also then do a test render.

User Settings

I like selecting with the left mouse button, so I have to give up selecting vertices with a lasso. Since I'm on a Mac, I emulate the numpad. Don't emulate the 3 button mouse -- it will disable Alt Click edge loop selection in edit mode!

These are the local directories.

Region overlap lets T and B superimpose their menus on the 3D View without shifting the view left or right. Viewport lighting can be adjusted to make the solid figure more realistic,

Use gradient backgrounds.

Building Blender from Source Code

Building Blender on Mac OS

I built Blender on my Mac OS X High Sierra Capitan 10.13.1 MacBook Pro (Retina, 15-inch, Mid 2015).

First of all, install CMake, then add the CMake binary to your path:

cat .bash_profile ... # CMake tool used for Blender. cmakebin="/Applications/" PATH="${HOME}:${cmakebin}:${py3bin}:${bins}:${PATH}" ...

Then follow instructions at Build Blender for Mac OS X from Source Code to build with make on the command line

seanoconnor:~/Desktop/Apps/AppleUtil/Part2Of2/Blender/blender-build/blender$ make Configuring Blender in "/Users/seanoconnor/Desktop/Apps/AppleUtil/Part2Of2/Blender/blender-build/build_darwin" ... -- The C compiler identification is AppleClang -- The CXX compiler identification is AppleClang -- Check for working C compiler: /Applications/ ... /Resources/2.79/scripts/addons/cycles/source/kernel/split/kernel_split_data_types.h -- Installing: /Users/seanoconnor/Desktop/Apps/AppleUtil/Part2Of2/Blender/blender-build/build_darwin/bin/ edit build configuration with: /Users/seanoconnor/Desktop/Apps/AppleUtil/Part2Of2/Blender/blender-build/build_darwin/CMakeCache.txt run make again to rebuild. Blender successfully built, run from: /Users/seanoconnor/Desktop/Apps/AppleUtil/Part2Of2/Blender/blender-build/build_darwin/bin/blender
or to build with XCode and do source level debugging!
Building Blender on Ubuntu Linux

Follow instructions at Building Blender in Ubuntu from Source Code

Art Online

Copyright © 1986-2019 by Sean Erik O'Connor. All Rights Reserved.     last updated 01 Jan 19.