Why I suspended my Artstation Pro account and then reactivated it.

Article / 16 April 2022

As you know there's a war in my home country and my parents, my beloved ones are not safe. My personal fight differs from the fight many Ukrainians are having right now on site. And I want to share some of my thoughts on Artstaion's apolitical position, hate towards people from Russia, art that speaks to our hearts in difficult times, and what we, as artists and members of such a big worldwide community can do to make a world a better place.

After a few cases of Artstation bringing down artworks depicting Russians as nazis I am, being emotional, suspended my Pro account and closed my Artstation store. Even my passive income from the store meant a lot to me.

I admit that I blamed everyone who was not emotional as me about all the horrible things that the Russian army did to my family and friends. Especially those who have a big platform and don't use it to speak to brainwashed people who support this war or didn't close their service to the Russian market.

I canceled Artstation. But after a month or so I received my latest payment and sent this money to the 280days fund who supports pregnant women and newborns in Ukraine. And after that I bought some models from an artist from besieged Kherson city, hoping it would help in some way.

All these things would not be possible without Artstation. I returned to their statement, and read it again. And it had more sense to me than the first time I read it. AS clearly stated that to abide by laws in Europe they can not allow swastikas other than in historical context. 

The beautiful work by Miguel Iglesias depicting svastika on Putin's head will be remembered as a historical piece that spoke to many during these hard times. And yet, we would have to wait for some time when international laws catch up to the reality of things today when Russian aggression towards Ukraine is clearly fascist.

AS also stated that they support Ukraine and they are part of Epic's family who donated money for humanitarian aid in Ukraine.

Why I decided to reactivate my Pro account and revive my AS Store?

Because I am not afraid to admit my mistakes.

Because I believe that there are better ways to stream my anger and hate than to blame platforms that support artists in Ukraine and all over the world.

Because I believe that hating Russians won't help the situation. I won't be having any business with them for sure, but I do not need to spend my time or time of AS moderators to talk shit in the comments. These people who justify war, any war, will not have a penny of my attention.

Because I believe that each thought full of hate can be converted into opposite action: supporting my Ukrainian fellow artists on Artstation. Or creating artwork and making money to be able to donate some.

Because I believe that raising awareness of what is really happening in Ukraine is not the same as talking shit about Russians on the platform. The latest is just escalates the situation. We can clearly see how it is easy to turn angry people into a destructive forces. The borderline is too thin.

And I encourage everyone to stop spending your time on any communication with brainwashed people. There's no point to flood the world with our hate. Humane values are not something you can teach in one comment. Believe me, I and my fellow Ukrainians tried to do in since 2014. No results as you can see.

Many of us are full of hate and anger. But it's our personal choice to spread it further or direct our energy to change the situation and help people who are in need.

Thank you for reading and thanks to all of you who purchased my Hair Asset "Save Lives". I already donated $300 to the fund (I had $100 in sales from my AS store and $30 from other platforms).


Report

Real-time Hair Creation Workflow

Article / 14 January 2022

When aiming for realistic-looking hair for games, there are two options: polygonal hair created of hair strips (cards) and strand-based hair (since UnrealEngine presented the new hair system – UE4 Real-time Hair Advances – fxguide. Even with the new tech advances, strand-based hair still is very taxing on the real-time rendering, so most of the game developers, both of AAA and indie scale, choose the hair cards workflow, and usually keep the hair model in a range of 4k to 20k triangles.

capture from Robin Taillandier & Jon Valdes – Every Strand Counts: Physics and Rendering Behind Frostbite’s Hair

Though there are a gazillion ways to make hair look good in the game, a few common workflows are currently used for real-time hair production. They vary depending on the desired rendering quality, polygon budget and the restrictions/options of the shader in the game engine of choice.

Hair for games is made by creating hair strips (so-called hair cards) to represent the hair strands and applying the alpha texture on them. Placing hair cards layer by layer simulates the mass of the hair. The higher amount of hair cards gives the hair a more realistic look but makes the hair model expensive. Thus artists try to achieve the best result by spending less on cards amount.

Example of the Hair model made of Hair Cards and Final Render in UnrealEngine4

Generally, the game hair production process includes these steps:

  • Creating hair textures
  • Placing hair cards
  • Rendering hair (shader setup)

Which software to use for creating game-ready hair?

Actually, you can use any 3D modeling software. Maya, 3dMax, Blender and Zbrush, each offer great tools to back you up with the texture creation and laying hair cards. The workflows differ, as you will read further in this post, but the basic concept is the same.

I would suggest using the 3D program you are already familiar with. If you have more than one under your belt, take a look at the numerous tools and plugins out there for creating hair. For example, being a Maya user I learned Blender just to be able to use this awesome Hair tool, which sped up my hair card placement process in times.

My workflow of creating hair for games

1. References and Planning

Placing hair cards is quite time-consuming and tedious, so it is crucial to plan the process ahead to save time.

Planning involves a profound understanding of the structure of the haircut you making. Gather references with the front, back, side, and top views of the hairstyle and answer these questions:

  • How does the hair flow? In what direction?
  • What is the shape of hair parting?
  • Curly or straight? What is the level of dispersion? Are there a lot of messy strands? Is it thick or thin?

Understanding every aspect of the hairstyle that you are creating allows you to choose the most effective workflow, save time, and achieve the best results.

Reference Board made with PurRef Application

2. Sculpted hair for reference

To answer these questions, I started with the sculpted mesh in ZBrush. I would further use it as a 3d reference in Maya to place cards.

The sculpted hair doesn’t need to be detailed, I kept it simple and low poly, I’ve spent 20 mins on it max. The main goal is to design the hairstyle shape (the silhouette), establish the hair strands’ flow, and estimate the width of the hair cards.

Sculpted hair for reference

3. Create the hair texture

Check out my post about 8 Ways to create the textures for real-time hair.

Reference images helped me understand what kind of hair strands fit this hairstyle best. Different game engines use different shaders (material properties) for real-time hair. Check with the technical artist/game programmer which texture maps are required. For example, UnrealEngine 4 uses these maps:

Alpha, Depth (or Height), Unique ID and Root (or Gradient Ramp). Diffuse (color) and Flow maps are optional.

Other shaders can require: Mask, Normal, Ambient Occlusion and sometimes, Depth Profile (when there’s no baked Height Map).

Textures for real-time hair

There are different ways to create the hair texture, the most common is to bake the generated xGen hair (in Maya), Hair Particles (in Blender), or FiberMesh Hair (in Zbrush), using the native application, Marmoset or xNormals. There are also a few tools that offer procedural generation of Hair Texture.

I created my textures using the HairTG Hair&Fur tool for Substance Designer.

Check out my post about 8 Ways to create the textures for real-time hair.

When creating the hair texture, I followed these principles:

  • Create hair strands variation – to avoid evident repetition in texture across the hair model.
  • Create clumps with different hair amount – density. I tend to use cards with a more dense texture as the base layer and place them closer to the hair scalp. On the top layer, I use the cards with lower density and some distinctive hair variations (like waves or gaps between strands). Here’s a great breakdown of which strands to use on which layers by Jansen Turk https://www.artstation.com/artwork/YaD6oP
  • Keep each strand the same width – or have few types of width. Make hair cards that are closer to the scalp wider, and others thinner – but the same width for each group (layer). This will help easily switch UV space for hair cards (to use texture variation where it is necessary) and keep the rendered hair thickness the same for all cards.

Some hairstyles, mostly short male hair require the creation of hair cap mesh and texture. Check out my video of how to create one.

5. Place the hair cards.

Check out my post about the 13 workflows to place hair cards for real-time hair.

The lower your polygon budget, the more precise you should be about placing hair cards. I found that manual hair card placement works best for me when trying to get the mesh done under 10k tris.

For meshes under 4k tris, I use the Quad Draw tool (in Maya) to create the Base (Cover) layer of cards over live sculpted mesh (sculpted in ZBrush). Then I manually put the other layers of cards. I also like to use Blender Hair Tool to lay down base layers – it’s super fast. I just convert the grid mesh (which has a form of a head) and the tool generated the hair cards cover layer. Check out this video.

Hair Cards Layering

Before placing cards, I considered the following:

  • When you work with low poly hair (under 6-8k) the best result give the manual placing of hair cards. For higher tricount, you can play with different tools and automated workflows, like generating hair curves with xGen in Maya and then converting them into ribbon meshes (hair cards).
  • Consider how close the player will see the character’s hair, from what angle (is it a top-down view, or a third person) To achieve the best result, make the hair look good from this particular angle/zoom. 
  • Setup the shader/hair material in the real-time engine and frequently check how the hair mesh. I usually place the first layer of cards and check the mesh in the engine. It allows me to spot the mistakes/see-throughs/gaps/texture repetitions and fix them before the card structure becomes complex.
  • If you are using a cap mesh, it is good to plan a transition between cap texture and cards using cards with low-density hair.

Thank you for reading and check out my Store page for Hair Models!

To get 30% discount use 30OFFHAIR coupon code.

Report

Real-time Hair Workflows

Article / 29 May 2020

--------------------------------------------------------

UPDATE:

Please check my newer version of the "Real-time Hair Workflows" article on my website Realtimehair.com

--------------------------------------------------------

For the last four months, I was making the real-time hair for an RPG, The Colony Ship by Iron Tower Studio. The hair meshes had to be really low poly (up to 4k tris), and I wanted them to still look realistic. During the first month, I had researched every (I believe) workflow is out there to make the real-time hair. Though there are a gazillion ways to do anything, making hair for games brings a few restrictions in choosing the workflow like the desired rendering quality, polygon budget and the restrictions/options of the shader in the game engine

I want to share my findings and the workflow I used in my particular case. Below you will find the list of the workflows with links on youtube and articles on how to make hair texture, place har cards, and make the hair cap.

The character hair for games is made with planes/ribbons with hair texture. There are a few steps of this process:

  1. Gathering references and planning
  2. Creating sculpted mesh for reference (optional)
  3. Creating hair texture maps
  4. Making the hair cap mesh and hair cap texture
  5. Placing the hair cards on the head model


1. References and Planning 

Creating hair for games involves a lot of steps, among which the most time consuming is placing the hair cards. In most cases, to achieve the best result, it is better to place hair cards manually. So it is crucial to plan the process ahead to save time.

Planning involves a profound understanding of the structure of the haircut you making. Gather references with the front, back, side, and top views of the hairstyle and answer these questions:

-       How the hair flows? In what direction?

-       What is the shape of hair parting?

-       What is the volume – the amount of hair?

-       Is it thick or thin?

-       Curly or straight? What is the level of dispersion? Are there a lot of messy strands?

Understanding every aspect of the hairstyle that you are creating allows you to choose the most effective workflow, save time, and achieve the best results.


2. Sculpted mesh for reference


To better answer the above questions, I started with the sculpted mesh in ZBrush. I would further use it as a 3d reference in Maya to place cards.

I didn't try to make the sculpt very detailed, kept it simple and low poly. The main goal is to design the hairstyle shape, establish the hair strands' flow, and estimate the width of the hair cards. 


3. Create the hair texture

Reference images helped me understand what kind of hair strands will fit this hairstyle best. Different game engines use different shaders (material properties) for the hair meshes. So it is necessary to check with technical artist/game programmer which texture maps required. Usually, they are:

ID, Depth, Normal, Alpha, Mask, Flow, Root (Gradient ramp), Color, Ambient occlusion. Some simpler shader uses only a few – Alpha, ID, Root, Normal.

There are different ways to create the hair texture, each method gives you different maps. But you can generate the Ambient occlusion from a Normal, for example, or ID map from Depth map using Photoshop or Substance Designer.


7 WAYS TO CREATE HAIR TEXTURES FOR REAL-TIME HAIR

When I was creating the hair strands, I followed these principles:

  • Hair strands variation – to avoid evident repetition in texture across the hair model.
  • Clumps with different hair amount - density. I tend to use cards with more dense texture as the base and place them closer to the hair scalp. On the top layer, I use the cards with lower density and some distinctive hair variations (like waves or gaps between strands). Here's a great breakdown of which strands to use on which level by Jansen Turk https://www.artstation.com/artwork/YaD6oP
  • Hair length variation – for strands with high density, I use the same length hair, for low-density hair, I create length variation and tapering towards tips.
  • It is better to keep each strand the same width – or have few types of width. Make hair cards which closer to the scalp wider, and others thinner – but the same width for each group (level). This will help switch UV space for hair cards (to use texture variation where it is necessary) and keep the rendered hair thickness the same for all cards.


A FEW WAYS TO CREATE THE HAIR CAP FOR REAL-TIME HAIR


5. Place hair cards

The lower your polygon budget, the more precise you should be about placing hair cards. I found that manual hair cards placing works best for me when trying to get the mesh done in 2-4k tris.


7 WAYS OF PLACING THE HAIR CARDS FOR REAL-TIME HAIR


I used the Quad Draw tool and placed the cards over live mesh (sculpted in ZBrush) in Maya to create the base form of the haircut and manually put the other layers of cards.

Before placing cards, I considered the following:

  • The lower polygon budget, the more precise you should be about putting hair cards. I found that manual hair cards placing works best for me when trying to get the mesh done in 2-4k tris.
  • How close the player will see the character's hair, from what angle (is it a top-down view, or a third person) To achieve the best result, make the hair look good from this particular angle/zoom. 
  • Setup the shader/hair material in the real-time engine and frequently check how the hair mesh with cards looks. I usually place first layer of cards and check the mesh in the engine. It allows me to spot the mistakes/see-throughs/gaps/texture repetitions and fix them before the card structure becomes complex.
  • If you are using cap mesh, it is good to plan a transition between cap texture and cards using cards with low-dense hair.
  • Be patient :)


Thanks for reading and let me know your thought in the comments.

Report