“The secrets of Swimsuit babe ” by CGriders
As you would expect, the hairs within the same layer possess the same properties such as density, thickness, color, etc. So you can also separate patches in different ways based on their properties. The purpose of this separation is to reduce modeling effort and render time (which depends on number of hairs and hair passes) because hairs in front must be controlled more precisely as they’re easier to see while those at the back can largely be ignored.
Moreover, it should be noted that the U direction of the patches should be along the hair length and should start from the root while V direction should be normalized to range from 0 to 1. Details will be explained in next section.
I tried to use the same technique to create eyebrows and eyelashes. So their modeling is similar. The appearance is shown in the following figure:
Fig. 3.2.2 Eyebrows and eyelashes
As you can see, there’re a lot of small patches along the length of the brow and eye’s outline. Each one of them corresponds to one Shave mesh. If you use one Shave mesh for the brow, Shave will try to interpolate hairs which will be all over the place.
3.3 Hair Generation
After modeling is finished, profile curves are extracted from the patches. They are then converted into hair systems and paint effects. By adjusting the attributes of the hair system nodes, more paint effect strokes are generated based on the profile curves. The paint effects are converted into curves again which become the actual hair curves. For rendering purposes, the hair curves are converted into Shave meshes. The process is depicted in Fig. 3.2.1. The commands involved in this process are shown in the following table:
Input object, Output object, Command1 Isoparms on nurbs, Surface nurbs, Curve Edit Curves -> Duplicate Surface Curves2 nurbsCurve, hairSystem, Hair -> Make Selected Curves Dynamic3 hairSystem, pfxHair, Hair -> Assign Paint Effects Brush to Hair4 pfxHair, nurbsCurve, Modify -> Convert -> Paint Effects to Cruves5 nurbsCurve, mesh, Shave -> Create New Hair
The manual steps are written in another page of mine. Its URL is http://cgriders.googlepages.com/hair.html
Some mel procedures are written to automate the execution of these steps. They are contained in the file jcHair.mel (see section 6.3 for download URL). Before using the script, you should note the following assumptions:
?? Curves are generated along the U direction of the NURBS patch and the direction starts from the root of the hair.
?? V direction of the NURBS patch should be ranged from 0 to 1.
?? There is at least one existing preset for hair system and at least one for Shave as well.
?? Groups called hairCurvesN_1, hairSystemsN_1 and pfxCurvesN_1 are required to contain the profile curves, hair system nodes and hair curves respectively. If they are not present, they’ll be created by the script.
Ideally, a single procedure should create everything up to Shave meshes with the NURBS patches in your current selection list. This procedure is
jcCreateHairSystemsShaveNodes(string $HairSystemPreset, string $ShavePreset)
If your hair system and Shave presets are called longhair and redhair respectively, the command you should enter will be:
jcCreateHairSystemsShaveNodes(“longhair”, “redhair”);
Latest Comments