Thursday, August 3, 2017

Portfolio 03 Final

Research Project: Real time Hair

Relevant Readings: Tutorial .  Software

One of the biggests issues with real time is hair is our current inability (due to how substantial the engine cost would be) to create every single strand of hair on a character and have it render in real time. As an industry we've started making a push towards that direction (Nvidia Hairworks for example) but we're not quite there yet, so with that said this is our current solution to rendering real time hair! Smoke and mirrors through a very clever technical lens. Here are the results of my research:

The pipeline I utilized through my research starts with ZBrush, I figured the tools the software gave me gave better buffer zone than creating the card system (I'll explain this in more depth in a second) through a different 3D environment such as maya.

Now a card system much like the name suggests is just that, a series of cards placed in a very specific way to get a desired outcome, now for the purposes of this research the card systems behave like large clumps of hair, but what goes into creating them? The first step is to create an IMM (insert multi mesh) brush. This process is furthered outlined in the tutorial I linked at the top but for our purposes any hair IMM brush out there in the internet will do, I've placed the anatomy of the card below if you are so inclined to create your own!

Note: if you create your own IMM brush please follow the anatomy of the card depicted below, the card most be homogeneous through it's surface or you'll have problems later down the line

Anatomy of a card

A good way to test if your IMM Brush is working correctly is to check that when you weld points and auto group your card strands your polygroups end up as discreet units and isolate each card strand appropriately, much like the picture below

Good IMM Hair Brush should look like this after clicking WeldPoints--->Auto Groups

See? each "strand" is it's own color

 So with those steps done and over you should have a functioning IMM Brush to place your card strands down and be ready to start the actual process, so lets talk hair.

Much in the same way making draw overs and simplifying shapes is key to creating a good sculpt the same principles and process apply to hair as well, you need to be able to break down the flow and movement of the hair, as well separate each "section" in a way that will allow you to create variety and interest once UV's and textures come in. With the verbose explanation out of the way let me put some pictures to the theory:

Concept by Ruxing Gao
This concept above is the piece I worked through while creating this tutorial, so part of my process much in the way I explained previously was to go through her hair and creation "sections" I could discreetly isolate and maintain as a unit as I continue to move the model through the pipeline, let me show you some pictures and I'll explain it further after:

Add caption

See her rainbow colored hair? that is what I mean when I mention sections, each color represents an area of her hair I "grouped" into a section for the purposes of creating variety and visual interest when UVing and texturing later down the pipeline.

Note: See how her card strands taper towards the end? remember how I mentioned to keep the card strands the same width through it's length? there's a reason for that! and we're getting close to why I made a mistake tapering mine.

But moving right along!

Once you have your card system laid out and you're happy with the shape and volume of your hair you're ready for the next step! A good mindset to keep in mind is your hair will have to go through several iterations so think of every step coming up as an iterative process that may require you to return to this "laying card stands" stage to get the result you're looking for.

With the card system created you can start the UV process and setting up some proxy textures to start getting a look and feel for your card system, this is a very exciting step because while laying the cards will give you a feel for the volume and shape of the hair this stage essentially gives you a rough snapshot of the hair cards in all their glory.

setting some test textures

Now remember how we made our character have rainbow colored (polygroups!)  hair? this is the stage we did that for, a good card system will have variety and volume, the best way to achieve that is to build up your hair through layers and make sure you have enough strands to be able to add break up and variety as you move through the system, below you'll see all my different card clusters and how the final UV map looked for it, I broke it down as each hair cluster being assigned two stacked UV shells but there are many tutorials and methods people use to break up their UV map, I suggest you do further research and find a method that works for your specific piece.

Card clusters and their UV shells
 You'll notice I have UV snapshot open on the previous image, this is due to my choice of hand painting my cards, there's multiple ways of texturing hair out there though so continuing to echo my advice from the previous paragraph I suggest you do more research and find something that works for you! Below is in an image of how some of my tests with the card system textured turned out:

starting to take shape!
Now remember the two notes I made through this tutorial? they were about the width of the card strands in my model, see as I started texturing I came to the conclusion that one of the most relevant and important parts of the card systems; and what truly sells them as realistic hair, is the ability to use transparency at the end of the cards to heavily suggest to the viewer the notion of individual hair strands and fake volume to the hair. Since my cards taper almost to a point  I ran into the problem of not having enough space to play with transparency and sell the illusion. Below is a show of were the piece concluded at the end of my research:

My work didn't end with the turn in though, and my goal of becoming a 3D hair stylist is very much alive, if you refer back to the top of this tutorial you'll see I've attached a software link. This tutorial highlights a relatively free (if we ignore the costs of Zbrush, Maya and Substance that FIEA takes care of) way of creating real time hair, however the most popular software out there for this type of work currently is Ornatrix, a $500 plug in for Maya; a price point I couldn't invest into at the time of this tutorial.

 However Thunder Cloud Studios came up with GMH2, a plug in for Maya much along the same vein of Ornatrix except the price point is $50 which is significantly more affordable and provides results of the same quality and fidelity you would expect from an industry card system. My early ventures with the software have been very pleasant and there's a broad support base for this type of work which make it easy to delve into as a topic of self study,

Closing Thoughts

Much like with sculpting there's multiple ways of creating a card system and arriving at the quality bar industry professionals would expect from the piece. How you get there is entirely up to you and which pipeline and process you ultimately decide to utilize; however the one thing that remains consistent regardless of the road one may chose to take to create the card system are the properties the hair needs to have at the end. Making sure to create enough density to sell the volume and shape, as well as the "minor details" in strands that don't conform to the flow of the hairstyle will make your project that much more stellar. 

If you have any questions feel free to contact me and I'd be more than happy to assist you and provide further information into this topic and the research I've done beyond this first venture!

To conclude this post here is one of my favorite "3D hair stylists" currently in industry. His name is Johan Lithvall and he's responsible for the hair of Aloy in Horizon Zero Dawn (artstation).

Wednesday, June 14, 2017

Semester Research Project

My research project will be based around creating real time hair to empower my process and pipeline, getting to create realistic looking hair systems for my characters : )