Sunday, June 3, 2012

DX11 Displaced Icicle material

Showing off something that I'm doing with my current environment WIP.

When I started this environment, I was thinking a lot about tessellation and displacement...how its starting to be used more commonly in UDK, and how I think its likely that well see more of this in the next generation of games.  Early into the environment I picked myself up a DX11 card and started toying around with the new features.

Ive seen displacement mostly used to add blobby details to rocks and things like that, so I wanted to try something a little different.  I had the idea in the back of my head from the beginning of the environment...I thought it would be pretty cool to create Icicles with displacement and be able to paint them wherever I wanted with vertex colors.

Here is what I came up with:
Displaced Icicles painted on a chain



Displacement happens in World Space, so the orientation of the object doesn't matter, Icicles always displace downwards towards the ground.  Also, I'm using the Up-Vector to only allow bottom facing geometry to displace, so the top of the object doesn't sink inwards.

Being able to us vertex painting is really nice.  It allows you to break up the repeating patterns that you would otherwise get with several instances of an object in close proximity.  


Here is an example of me painting icicles on the chain in UDK:

Vertex Painting Icicles onto a Mesh

Already had several people ask how I set this up.  Its actually pretty easy.  I painted a height map for the icicles by hand real quick...just made circles that got whiter towards the center.  I set up the min and max displacement using a Lerp node with  height map as the Alpha.  I Lerp between this and having no displacement based on the Up-Vector, then I Lerp between the Icicle Displacement and No Displacement using vertex color.

Here is the snipped from the shader network that deals with the displacement:
Icicle Displacement Material in UDK

I had a lot of fun setting this up.  I haven't seen any other examples of displacement being used to paint details onto objects yet.....so maybe this will be of use to somebody who has a similar idea..or just wants to improve upon the idea.  I'm looking forward to seeing what kinds of things other people do with it.


No comments:

Post a Comment