Modelling 3D feather with blender

Browsing through the links found by google on the issue blender and feathers did not provide me with what I searched. For completeness sake let me list them here in the case it is what you are looking for:

Forum entries and other listings:

Ready made feather models:

Tutorials:

Setup

In this first part I will describe what we need in the way of setup. However I will not concern myself with lightning and camera positioning. The feather must be illuminated well enough and be within the focus of the camera. You will probably not be done with your model when completed this article. Well first of it is always good to have the real item at hand you want to model, so you can inspect from al sides. Then you will want to have an Image of a feather that you can use to draw on and for texturing the feather. I found my feather at CG Textures as you can see on the right. The reason I choose this feather is the nicely bent stem and the long unfeathered bottom, which will be an advantage because I want to use the feather as a quill. Note that the left-hand side of the feather is nicely straighten out but the on the right side the fringe is wavy and overlapping. We will see how we handle this later on.

The shaft has a nice bend as you can see in the image. What is not visible is that is it is also bent perpendicular to the image. This is important because that is the physical attribute that generates the lift, which allows a feather to fly. This also identifies the feather as a flight feather and not as plumage.

We want to use the feather as a background image and draw on it. For that we make the black the transparent color and add it as a background. How this is done is described in this YouTube video. We will place the background on the xz-plane (Numpad 1). Using a background image saves you the hassle to figure out the proportions.

 

 

Modelling the shaft

 

This is probably the easiest part (aside from placing the background image). The shaft is best done with Beveling along a path, as described in Neal Hirsig’s tutorial Bezier Curve and Circle -Loft Beveling along a Path. We shape a Bezier path along the middle axis of the shaft. Next we switch to the side view (Numpad 3) and bend the path slightly in the y direction. Check with your real object. Next we define a Bezier curve that has about the diameter of the shaft. In the Object data of the path we add the curve as the Bevel Object. Now we need a second path for the Taper object. Add a Bezier path of three contol points so it is vertically parallel to the shaft. Straighten the path out and place it along one of the blender unit guide lines. This position is the 0 diameter of the shaft which is at the top. Move the other two control point out a bit and apply the path to the shaft object as Taper, this enables you for better fine tuning.

I ended up the the objects to the left. The line on the right is the Taper and the small line under the shaft is the Bezier circle (in the YZ plane). Together with the shaft path they produce the pictured shaft.

The final step is to place the origin at its proper place (it is still where you created your first circle). This is done with Ctrl+Alt+Shift+C and then select Centre to Gemoetry. This should roughly still be the centre when we added the feather wings.

 

Adding the feather

The next step is bit time consuming but not that difficult. Back in our Front-Ortho view (Numpad 1) we tab out of edit mode and unselect the shaft and place the courser at the top of the shaft. Check from all views that the cursor is correctly placed. Now add a plane and rotate it 90 degrees along X (R,X, 90). You probably want to scale it down a bit. Tab back into edit mode and zoom in. Now select the single vertices and drag them to their proper position to form part of the feather. You will have to delete a vertex so the top most polygon is a triangle. No proceed down the feather with extruding vertices and adding faces (select 3 or 4 vertices that form a convex area and hit f).

I figured it a good idea to create the „horizontal“ edges along the strands of the feather. As these stands are not straight you will probably end up with enough „vertical“ edges. These edges are needed because now the feather is all in one plane that is not connected the the shaft. Therefore the plane must be bent, for this to result in a smooth transition we need some vertical edges (3-4 should suffice). Since we will use UV mapping for the texturing, make sure all your tries and quads are laid out nicely (once the texture is applied no more edges can be added or removed).

For the right side I chose a different feather for the background, which had about the same bent shaft. You probably will have to resize it so the feather stands are equal. remember the ratio of the size of the two images. It is important because we will need to resize the texture image for the right hand side by the same ratio. I aligned the tip if the feather image with my model and started on the right side.

As mentioned in the title this should be come a real feather. Therefore it is not sufficient that the feather is modelled as a plane. Therefore we must give the wing some body. Tab back into Object mode and make sure that the left and right half are on the same Y-plane (in the property panel). Then select both halfs, duplicate them and move them back in the Y direction. Im my case 0.01 Belender units did the job. Then select the top and bottom of a side and join them to one object (Ctrl+J). Tab in the Right Ortho Back view (Ctrl+ Numpad 3) into edit mode and rotate the view slightly and zoom in until you can distinguish the top and bottom. Connect the outside edge with faces.

Adding material

For the shaft we will not apply any texture but only a white greyish material with low specular intensity giving it a dull appearance. The feather wings will become a texture that will hide the colour. However let us define the material anyway (in case we were not careful enough with the UV mapping). The feathers become an not entirely white colour with a low specular intensity (lower than the shaft). An alternative would be to choose a completely different colour so you see immediately where a problem in the UV mapping lies.

Texturing the feather

I tried two apporoaches to texturing:

  1. Deform the wings so they are attached to the shaft and then apply the texture
  2. The other way round.

I found the second way easier and more intuitive because the polygons are not yet distorted. Using „Projection from View“ however there should not be any difference. But first we need to create an image, that we will use for texturing. Since the front and the back can never ever be seen at the same time (unless you have two feathers), we can mirror the feather to get the texture image for the back. For the texturing we use the images we already used as background. But first you must make sure that all the normals of the faces are pointing outward (The texture is only applied on the outside and you want all the textured faces on the same side left and right). To do this select everything in edit mode and adjust the normals (Ctrl+N) for the left and right feather side. You can display the normals in edit mode when checking them in the properties panel. I found no definition of how the normals are computed in blender. The ordinary way however is the „Right thumb rule“. When adding a face the vertices are added in an order (normally clockwise or counter clockwise).  Spread the thumb on your right hand so the thumb and forefinger have a 90° angle. Then bend the fingers  in the direction of the vertices adding. You thumb now points in the direction of the normals. If you add all your faces in the same order their normals should all point into the same direction.

Now you best split your view and switch in the right half over to the UV editor. Open the corresponding image in the UV editor. If you experience unexpected loading results (image not properly loaded) try again after you changed the view in the left half. Now in edit mode select all vertices and Unwrap (U) with Project from view, this retains the rotation of the object. Now you have to size it to match the size of the image. This is a bit tedious. The outer fringe of the feather is probably partially transparent. therefore do not place the outer vertices all the way out. There are two ways to check the result:

  1. Turn on the viewport shading in the 3D view to texture. This should be sufficient for quick checks.
  2. Render repeatedly and zoom in. This is necessary for the proper lighting.

Repeat the process with the other side of the feather. You should end up with something similar to the image to the right (in object mode).

Finetuning

There are two steps:

  1. Create the other side of the feather (so it becomes really 3D and has texture applied to both sides).
  2. „Glue“ the feather to the shaft

For the first step make sure that the objects origin is at its geometrical center (Ctrl+Alt+Shift+C). Then place the 3D-cursor at the origin (Shift+S Cursor to selected). In the property panel move the cursors Y position by 0.05 blender units the the „inside“. The inside is the side away from the normals (the untextured side). Tab into edit mode. Select all vertices. Change the Pivot point to 3D-cursor, and then mirror all vertices across the „Pivot Point“ (Shift+D,Esc, Ctrl+M+Y,Enter). Spelled out you are creating a copy of all vertices in the same place and then mirror them across the 3D-cursor in the Y direction. Now you connect the all the outer vertices to form the fringe. Repeat this process with the other side.

The glueing part is best done after bending the feather in the Y-direction (next step) but here is how it is done:

Grab the vertices pair at the shaft (make sure you get both top and bottom, best done with the side view in the second pane) and move it along the X-axis until they lie slightly within the shaft. There should be no holes between the shaft and the feather. The right side is a bit tricky because of the gap. Here you want to grab all vertices that lie on the same edge as the vertex at the shaft and move them together.

Bend the feather

The shaft is bent in the X direction. This bending is considered in our model since we modelled this after the background image. The bend in the Y-direction is not yet accosted for. Further more the right side shows a gap between the feather and the shaft. The inside of the feather should be attached to the shaft and the outside should be a bit more in the foreground (in the front view or more to the left side in the side view). The bend in the Y-direction should be easy, at least in theory, but I could not work it out as I imaged. Nevertheless here is the theorie:

We use the same approach as done with the shaft. First we copy the shaft path (once for each side) and subdivide and move the control points until we have an identical path with a control point where the feather rejoins the shaft. We do not need the bend in the X-direction so we adjust the path until we have a straight line in the front view. Now comes the tricky part where I failed: With placing the origins and objects and then add the path as the Bevel object to the curve modifier of the feather the bend should be achieved. The trick is that when done correctly in the front view no change can be noticed. Now the vertices at the shaft are placed where they should be but all other vertices (or more correctly vertices pairs (bottom and top)) must still be adjusted manually.

The way I have done this requires that I move all vertices pairs manually. With the above method I would have saved some of the work but not all of it. This is best done with two panes: In the right I have the front view slightly turned so the top and bottom vertices are distinct ( maybe you must disable the depth clipping to see through the top). Always starting with the vertex pair at the shaft I move it in the Y-direction to the shaft until it was centred and then work my way outward creating a bend in the Y-direction along the X-axis.

Rendering

Because the structures in the texture is very fine I rendered in a high resolution:


The blend file can be downloaded here.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Open issues

There are some points that are not done yet to make the feather perfect.

  • Real feathers have fluffy feather strings at the bottom. These cannot be modelled with the above technique because they are to fine. They should be generated with a particle system. The idea is to add a tube object that is hidden within the shaft. On this tube the strands are generated.
  • The outside of the feather have not texture but only the white material applied.
  • The feather appears a bit craggy in places since no Subdivision Surface modifier is applied. This is not done because we only want to smooth the front and back faces but not the fringe. I believe there is somewhere a switch where you can limit the effect (close lines should then not be affected)

2 Gedanken zu „Modelling 3D feather with blender“

  1. As one gets more experienced, one learns of different simplification.
    The „Finetuning“ can be done with a solidify modifier.
    The modelling can be greatly be simplified when adding a plane, shaping in the approximate form and then use subdivision and proportional editing to match the plane to the background image.

Schreibe einen Kommentar