Inkscape Tutorial #1: Chrome Effect

Inkscape Tutorials:
Inkscape Tutorial #1: Chrome Effect
Inkscape Tutorial #2: Text and Simple Styling



Translations
This tutorial has been extremely successful and as such, there are more than a few translations floating around. If you have a translation of this tutorial, please drop me an email. I'll post the translations in this area to make it more accessible to a wider audience. Thank you all for your support and help.

Goal
The following tutorial will guide you step-by-step through the creation of a polished metallic chrome look. With minor adaptation, various looks should be possible. Throughout the text, explanations are offered on the technique to hopefully increase the versatility and applicability of the process.

Inkscape Version
45 + development. SVN as of November 2007. Lower versions should suffice, but your mileage may vary.

Optimal Audience
This tutorial assumes that you are an intermediate Inkscape user. A basic knowledge of Inkscape's functionality will be useful to speed through the tutorial. It is assumed that you are relatively familiar with Inkscape's various tool positions and how to use them.

Background
Chroming became extremely pervasive in the early 1950s. Later, the technique was used in the 'Boraxification" of all things, subject to a damning critique by Edgar Kaufmann in Architectural Review titled "Borax, or the Chromium Plated Calf"(1). The trend died towards the late 1950s. As with all things, that which is old becomes new again...

Chrome effects exhibit the following common characteristics:
  1. Specular highlights. Sharp curves result in steep changes in gradation. Flat surfaces often exhibit smooth gradients. We will utilize sharp edges and soft blurs to attain the complexity of a chromed object.
  2. Three dimensionality. Chrome exists in our 'real world'. We will apply a simple 3D techniques to sell the effect.
  3. Irregularity. Tightly bound with (1) above, the reflections generated on a chrome surface vary from angle to angle. Further along this path, the reflections are often somewhat randomly dictated by the surroundings. We will use a non-uniform gradient that is 'reflected' as the easiest way to accomplish this irregularity.

Variations
The following technique will be a 'studio' presentation of chrome. It is assumed that the light sources and surroundings are either entirely black or white, as they might be were you to photograph a chrome object under a studio setting. Variations on the following technique might include:
  1. Adjusting the colour values of the gradients to indicate sky or ground. This technique was used extensively in airbrushing renditions of chrome.
  2. Adjusting the width of blurs to change the feeling of the 3D underlying object. This may be used in conjunction with clip masks to control the spill.
  3. Adjusting the directionality of light / perspective. Move the 3D effect around to suit your needs.
Technique

Step 1: Choose your font / shape
.

Select a font. Our example uses "Impact" stretched to 158 points. To ease organization, locate the basic font shape on a separate layer called "Base Text".

Step 2: Add the primary 3D layer
.

To accomplish this, select your base text / shape from step #1 and choose "Linked Offset" from the path menu. This will immediately create a 'cloned' offset attached to our base text. Inkscape will locate the 'clone' below the basic shape. After selecting "Linked Offset", fill the offset with pure white and raise the object using "Page Up" via the menu or key. Cut this object and paste it into a new layer called "3D Extrusion". Create the three dimensionality by slightly shifting the white "Linked Offset" object up and to the left.

Step 3: Add a secondary 3D gradient shape layer
.

This will become our subtle gradient shape. We will create a "Linked Offset" from the "Base Text" object created above. Select the "Base Text" object and from the path menu again, select "Linked Offset". Set this objects fill to black, cut it, and paste it into a new layer above the other two called "Subtle Gradient". You will want to make this shape smaller than the white by a decent margin to accomodate blurring.

Step 4: Create a repeating gradient on the "Subtle Gradient" and create our "utility" gradient in the process
.

As with our note under "Background", we will use subtle gradients on our flat surface "Subtle Gradient" and sharper transitions on the steeper 3D edge of "Base Text". To do this, we must first create our multi-purpose gradient object. Select the "Linked Object" on our "Subtle Gradient" layer. Select the "Fill" tab from the "Fill and Stroke" options. Select "Radial Gradient" from the toolbox and set the "Repeat" combo box to "Reflected". Click the "Edit..." button to pull up the gradient editing tool dialog. Add two stops by clicking the "Add Stop" button in the dialog. Choose the "Create and Edit Gradients" tool from the toolbox on the left to bring up the interactive gradient editor.

At this point you will have the 'L' shaped interactive gradient gripper visible. The first stop at the centre will be black -- the base tone of our original fill. The following three stops will vary in opacity to transparent. Select the second stop from the centre, and choose pure white as the colour. Select our third stop, and choose pure black. Finally, select the fourth and last stop and choose pure black again.

Step 5: Stretch the gradient and fine tune the stops.

Using either the interactive gradient tool or the dialog, adjust the offset of the white intermediate stop to about 30% (0.30 in the dialog) and the offset of the intermediate black stop to about 90% (0.90 in the dialog). This is a rough guess, and as you become more adventurous, you will want to experiment with the values yourself. Using the interactive gradient tool, stretch the gradient out such that you achieve a homogeneous gradient across your object. This flat surface should exhibit subtle transitions, with a possible sharp transition to indicate a horizon if desired. Locate the source of our repeated gradient outside of the object for optimal results.

Step 6: Stretch the gradient on the "Base Text" object.

Select the "Base Text" object and from the "Fill and Stroke" dialog select "Radial Gradient" and adjust the "Repeat" to reflected as we did in Step 4. Tweak the radial gradient using the "Create and Edit Gradients" tool from the toolbox. Using your sensibilities, adjust the gradient such that the scale results in sharp transitions from white to black. You will also want to try and 'bury' the curves into the shape to prevent visual anomalies from cropping up.

Step 7: Blur the two layers to create the illusion of transition.

Select the "Subtle Gradient" layer and blur it. You will want the gradient to remain 'inside' of the white "3D Extrusion" object. In our scenario, an approximate value of 2.0 should suffice. Grab the object on the "3D Extrusion" layer and blur it as well. This value will be less to create a sharper transition between the flat surface and the angled edges. A value of approximately 0.8 should do.

Step 8: Adjust the opacity of the "Subtle Gradient" to make it subtle.

Using the layer opacity slider, make the "Subtle Gradient" layer subtle. Approximately 15% will suffice for this tutorial's purpose.

Step 9: Add specular highlights.

The falloff between our flat extrusion layer and the sharper inclines of the "Base Text" object will generate specular highlights. To accomplish this, select our "Base Text" object and once again create a "Linked Offset". Cut the object and paste it into a new layer above all of the other layers called "Specular Highlights". Scale the "Linked Offset" using the "Edit Paths by Nodes" tool from the toolbox. You will want a shape just slightly smaller than our blurred white flat surface.

Set the fill to nothing by middle clicking on the "Fill" swatch in the lower left. From the "Fill and Stroke" dialog, choose the "Stroke Paint" tab and select "Radial Gradient". Choose our chrome gradient created in Step 4. Select "Reflected" from the "Repeat" combo box.

Once again, the implied curvature is extremely sharp and, as such, our gradient needs to exhibit rapid transitions from black to white. Using the interactive "Create and Edit Gradients" tool, scale the gradient in the stroke to accomplish the look. Blur the resulting product to a minor value. A blur of 0.2 was used in the sample.

Step 10: Add specular highlights to the base.

The lowest part of our imaginary chrome object will exhibit similar specularity around the base as it curves under itself. We will apply a similar technique as Step 9 to accomplish this.

First take a "Linked Offset" of our base object, cut it, and paste it into a layer beneath all of our current layers called "Specular Base". From the "Stroke Paint" tab of the "Fill and Stroke" dialog once again choose "Radial Gradient" and toggle the repeat to "Reflected". Scale the gradient in a similar fashion as with Step 9 above. Locate the source in a different position to create a diversity of specularity on the object. Finally, blur it slightly. Again, 0.2 was used in the sample.

Step 11: Create a drop shadow to fully sell the three dimensionality.

As our final technique step, we will yet again create a "Linked Offset" of our original "Base Text". Cut it and paste it into a new layer called "Drop Shadow". Select pure black as a fill on our object and slide it down and right slightly. Blur it to a decent value and adjust the layer opacity in accordance with your taste. The example uses a blur value of 1.0 and a layer opacity of 55%.

Step 12: Possibly create a sense of "neato!".

Technically, Step 11 is the last step to recreating the technique. However, you may have wondered why I chose to achieve the chrome effect using "Linked Offsets" as opposed to simple copies of the initial object. The reason for this will become quite clear with this optional 12th step. Select your base object and choose the text tool. Backspace over the last few letters and change them. You will now see a dynamic chrome effect applied to your newly typed text. Nifty eh?

In Closing
Despite the outward appearance of the above steps, chroming an object is relatively easy to achieve with Inkscape. There are many variables that one can adjust within this simplified outline to achive a good degree of latitude in the final product. The source SVG for this tutorial is located here. The original work was created using Impact, but seeing as how it is difficult for some to get, I changed the face to Chrispy, which is far easier for people to obtain.

If you found the above tutorial at all useful, please drop a comment on the blog. Thanks for your time, and happy Inkscaping!

*** Update January 11 2009 ***

Fixed SVG link. Download a wide body face and change the typeface to it. Inkscape uses links to faces, so if you don't have them installed, the face will flip to a default. Sorry to all that had issues. Thanks to one astute reader that took the time, I have fixed it.


Creative Commons License


This work is licensed under a
Creative Commons Attribution-Share Alike 2.5 Canada License.

11 comments:

fcasco said...

Great tutorial, very well detailed and with really good explanations. I hope you write more like this.

MarcinK said...

Great tutorial!

Awesome effect!

At some points had to pay extra attention to get the right thing done, so maybe a tad more detail (perhaps bullet-point step list) would be helpful, but this in no way diminishes the great value of this tutorial.

Thank You!
Marcin

P.S. Is there a way to combine all the objects in all of the layers into a single grouped object, such that it can be easily duplicated and reused?

Troy James Sobotka said...

Thank you all for your comments, both on this blog and via email.

fcasco: Hopefully. If a tip or a trick comes out of my further ventures that might be useful, I'll try another. Ideas?

marcink: I would think you are able to combine the layers. It is a tad tricky alt-tabbing through objects in the context of a tutorial, so I chose the layer approach. I can see no reason why you couldn't group the objects into some easily reused 'container' and leave a single character or shape to keep the effects.

Michael said...

I'm not sure if Inkscape .45.1 is completely different (I don't recall many serious changes since Inkscape split from Sodipodi) or English is just not your native language. Regardless, this tutorial is completely unusable. In step #2, where you say "Select base font", do you mean if I previously used Arial Black, I should now change my default font to Arial, or do you actually mean I should select the text I created in in step one? The next step does not work either.

Troy James Sobotka said...

@michael:
If you read the tutorial, you will see that in step one we create a layer called "Base Text". This was the element to be referenced.

I have adjusted the tutorial to be a little clearer in this regard. Thanks for your feedback.

llogg said...

Excellent tutorial, thank you very much for your work on this. My only small critique is to ask that you add a line explaining how to scale the subtle gradient object in step 3. I used the inset function under the paths menu, but I'm wondering if you didn't use the edit path by nodes tool as mentioned a few steps later. Thanks again, really helpful.

Troy James Sobotka said...

@llogg:
The object you cut and paste will be a "Linked Offset" object, and as such will have a single node grasp point to adjust its size. The "Linked Offset" tool is critical to keep all of the clones attached to the basic text object.

In a larger object environment, utilizing the linked offsets will help to keep your work manageable. If you fail to do this, you will end up adjusting a copy of every single path you create.

I hope this helps. Thanks for the kind words.

Anonymous said...

Awesome! That would be awesome as a script so you can apply the effect to text with one click of a menu.

Relsi Ramone said...

Hi, I will like translate this post for the portuguese language, and post in the Inkscape Brazilian comunity. OK?!?!

=)

Troy James Sobotka said...

@Relsi Ramone:

As you can see from the license, you are free to do what you like with the tutorial with proper attribution.

Glad you found it useful. I hope that your translation will provide the agency for someone to harness the technique in an interesting way.

You can see a variation on the technique used in the new Mythbuntu 8.04 design at http://troy-sobotka.blogspot.com/2008/04/to-myth-to-myth-to-mythbuntu.html

Dries Desmet said...

Thanks,great tutorial