Normal to Vertex Color

December 9th, 2006 by Patrick Boucher - Viewed 10436 times -




Buzz has been working for a little while on a show that required us to create quite a few shots of water surfaces. One of the guys here, Pierre-Simon Lebrun-Chaput, cooked up a really cool recipe for our water surfaces but to get the look to where he wanted it he was missing a critical piece of information for his shader tree: geometry normals.

Missing Normals?

The normals weren’t missing per say. His geometry had deformations, displacement and bump mapping. In the render tree, normals could be accessed after displacement and after bump but we couldn’t access them before displacement to save our lives.

This is when we decided to create an XSI Operator that would convert geometry normals prior to displacement into vertex colors that could then be used in the render tree through a Vertex_rgba node. It did the job quite nicely.

Results

Here is a screen grab from a slightly mushed sphere with the Operator applied:

XSI Screengrab of NormalToVertexColor Operator applied.

You can also view a quicktime movie (requires QT7) of a preliminary test of the sea recipe that uses this operator.

If you wish you can download the operator and dump it into your favorite Application/Plugins folder.

Get a poly geometry and apply the op through Render -> Get -> Property -> Normal Vertex Color

Cheers,
Patrick

4 Responses to “Normal to Vertex Color”

  1. Bullit says:

    thanks

  2. Marc-Andre says:

    Hello!

    I”d like to know why did he need this information? What does it drive or help with?
    Perhaps in another article? :)
    Thanks

  3. Mike says:

    This stuff is so cool~
    but how to use it to make de sea effects just like the mov shows ? is the discription in another article?
    :)

  4. JDex says:

    Patrick,

    Can you or Pierre-Simon share some insight on what you were calculating with the pre-rendered normals? Working on a project that is likely similar, and I’m drawing a blank on what you may have been calculating with this.

    Thanks!