6

In IronMan 3, Eve-Online, or Star Trek, 3D models render in a bluish fashion.

Examples:

enter image description here

enter image description here

Is there a simple way to achieve this result with my own models? I typically use Blender, but if it is easier in another software package, I'm pretty agnostic...

3
  • 2
    look up facing ratio. basically its a shader that has a color ramp connected to the angle between surface normal and camera look direction. Even the worst renderers can do this as lights use the same calculation sp placibg a light at camera will get you inverse of this effect. Also search for xray shader.
    – joojaa
    Commented May 25, 2014 at 9:30
  • @joojaa that looks like a good option to me. Thanks for the pointer!
    – Kheldar
    Commented May 26, 2014 at 11:04
  • Related: blender.stackexchange.com/q/15737/599
    – gandalf3
    Commented Sep 11, 2014 at 2:21

3 Answers 3

14

This is pretty easy in cycles, by mixing a transparent node with an emission shader based on how close the camera is to facing the normals head on.

You can get the "facing" value with a Layer wieght node or by taking the dot product of the normal and the incoming rays from the camera:

enter image description here

These methods are pretty much equivalent, though you have a handy blending factor if you use the layer weight node.

Plug this into a mix node:

enter image description here

And you get this:

enter image description here

To get rid of the geometry behind the rest of the model, you can use the Transparent depth output of the lightpath node (note that this output is only available in the latest development versions of blender, but it will be in 2.71)

This value goes up based on the number of "transparent bounces" (a transparent bounce refers to the sampling ray passing through a transparent layer/surface of the mesh). Since we only want to see the top layer, we can use a Less than math node and a mix shader node to make every bounce past the first bounce (bounce 0) will use only the completely transparent shader (Transparent Depth is never negative, so this is basically testing if it's equal to 0).

enter image description here

enter image description here

If you want more control, you can use a ColorRamp node to fine tune the blending as much as you like:

enter image description here

enter image description here

Here is an example .blend for you to play with.


Note that I hid some of the input/output sockets on the nodes with CtrlH to conserve screen real-estate. So they might look different.

3
  • 1
    Thanks for popping over here to answer this. I'm wondering if we should migrate this and maybe some of the other Blender questions over to your Blender Exchange. Want to drop by meta.graphicdesign.stackexchange.com/questions/1122/… and leave your thoughts on the subject
    – Ryan
    Commented May 30, 2014 at 13:14
  • Your example link seems to have gone dead. I edited out the line with it. Feel free to edit it back in with a working link. (Sorry @NarasimhaRaoChowdula for misplacing and thus deleting your comment)
    – Vincent
    Commented Sep 8, 2015 at 9:17
  • @Vincent Thanks for the heads up. For the time being I've re-uploaded to pasteall until I can find a convenient, more permanent host.
    – gandalf3
    Commented Sep 8, 2015 at 9:44
1

There's possibly at least 4 phases to creating this look.

  1. Reduce or adjust your models to their shapes as per visual recognition, not how the model is actually made. So instead of polygons or NURBS, find those delineations of shape and form that communicate the desired message of the shape. See IronMan's helmet for an instance of this. It's only the Outline and a Seam that's being shown, not the 3D geometry/topography.

  2. Give these "lines" a weight by way of light. It's actually white light that's being either transmitted or received on these "lines" that's given the effect of showing you the shape. I say "lines" because often they'll be geometry far more complex than mere lines to give these "lines" their weight as per their emittance or receiving of light.

  3. Render your objects as filled objects in whatever colour you like. Blue, as you're stating.

  4. Composite the different renders in something else and balance up their relationship to one another to get whatever look you consider to be ideal.

2
  • Thanks for the suggestions @Confused, though I believe the result obtained would be of a much higher level than the low requirements I have, and it doesn't exactly fit my definition of "simple way". Upvoted ^^
    – Kheldar
    Commented May 26, 2014 at 11:07
  • Sadly (perhaps a reflection on me) I think this is the simplest way. Try anything you like, but steps 1 and 2 are going to be much more crucial than you first realise or imagine. And much harder than you might first think because you didn't originally create your models for this intent. If you ignore them, and only do a "geometry = light" rendering and a body rendering, then composite, you'll fast see the problem with non-purposeful geometry. And it will be much simpler.
    – Confused
    Commented May 27, 2014 at 7:55
1

I think you need a Fresnel material. I don't know how it's achieved in Blender. It reflects 2 colors. One would be black for the normals pointing at your eye and blue for those who get perpendicular to your eye. If you don't know what I mean read this:

http://www.3drender.com/glossary/fresneleffect.htm

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.