...
Name | Type | Description |
---|---|---|
int | Number of hairs | |
int* | Number of points of each hair strand | |
float* | Hair guides points | |
float* | Hair guides points for motion blur | |
"Root Radius" | double | Radius at the root |
"Tip Radius" | double | Radius at the tip |
"HAIR_FLAG_ROOT_UVS" | byte | Root UV's available or not |
"HAIR_ROOT_UVS" | float* | Array of root UV's |
"HAIR_FLAG_VERTEX_COLORS" | byte | Vertex colors available or not |
"HAIR_VERTEX_COLORS" | float* | Array of vertex colors |
Custom UV Generators
Name | Index |
---|---|
"Lengthwise U" | 0 |
"Root UV" | 1 |
...
"HAIR_FLAG_ROOT_UVS_1" | byte | Root UV's 1 available or not |
"HAIR_ |
...
ROOT_UVS_ |
...
1" |
Number of hairs of the object.
Example:
Code Block | ||
---|---|---|
| ||
int numHairs = 2;
hairParams->setByteArray( "HAIR_GUIDES_COUNT", ( unsigned char* )&numHairs, sizeof( int ) ); |
"HAIR_GUIDES_POINT_COUNT"
...
float* | Array 1 of root UV's | |
"HAIR_FLAG_ROOT_UVS_2" | byte | Root UV's 2 available or not |
"HAIR_ROOT_UVS_2" | float* | Array 2 of root UV's |
"HAIR_FLAG_ROOT_UVS_3" | byte | Root UV's 3 available or not |
"HAIR_ROOT_UVS_3" | float* | Array 3 of root UV's |
"HAIR_FLAG_ROOT_UVS_4" | byte | Root UV's 4 available or not |
"HAIR_ROOT_UVS_4" | float* | Array 4 of root UV's |
"HAIR_FLAG_ROOT_UVS_5" | byte | Root UV's 5 available or not |
"HAIR_ROOT_UVS_5" | float* | Array 5 of root UV's |
"HAIR_FLAG_ROOT_UVS_6" | byte | Root UV's 6 available or not |
"HAIR_ROOT_UVS_6" | float* | Array 6 of root UV's |
"HAIR_FLAG_ROOT_UVS_7" | byte | Root UV's 7 available or not |
"HAIR_ROOT_UVS_7" | float* | Array 7 of root UV's |
"HAIR_FLAG_ROOT_UVS_8" | byte | Root UV's 8 available or not |
"HAIR_ROOT_UVS_8" | float* | Array 8 of root UV's |
"HAIR_FLAG_ROOT_UVS_9" | byte | Root UV's 9 available or not |
"HAIR_ROOT_UVS_9" | float* | Array 9 of root UV's |
"HAIR_FLAG_ROOT_UVS_10" | byte | Root UV's 10 available or not |
"HAIR_ROOT_UVS_10" | float* | Array 10 of root UV's |
Custom UV Generators
Name | Index |
---|---|
"lengthwise U" | 0 |
"hair root UV" | 1 |
"radial U" | 2 |
"HAIR_ROOT_UVS_1" | 3 |
"HAIR_ROOT_UVS_2" | 4 |
"HAIR_ROOT_UVS_3" | 5 |
"HAIR_ROOT_UVS_4" | 6 |
"HAIR_ROOT_UVS_5" | 7 |
"HAIR_ROOT_UVS_6" | 8 |
"HAIR_ROOT_UVS_7" | 9 |
"HAIR_ROOT_UVS_8" | 10 |
"HAIR_ROOT_UVS_9" | 11 |
"HAIR_ROOT_UVS_10" | 12 |
"HAIR_GUIDES_COUNT"
Number of hairs of the object.
Example:
Code Block | ||
---|---|---|
| ||
int numHairs = 2;
hairParams->setByteArray( "HAIR_GUIDES_COUNT", ( unsigned char* )&numHairs, sizeof( int ) ); |
"HAIR_GUIDES_POINT_COUNT"
Number of points of each hair. It is an integer array. If it has only one element, it is the number of points of all hairs. If it is an array of numHairs elements, each element is the number of points of the corresponding hair.
...
Code Block | ||
---|---|---|
| ||
int numHairs = 2; int numPointsPerHair = 3; float rgb[ 3*2*3 ]; rgb[ 0 ] = 0.1; rgb[ 1 ] = 0.6; rgb[ 2 ] = 0.1; rgb[ 3 ] = 0.5; rgb[ 4 ] = 0.2; rgb[ 5 ] = 0.4; rgb[ 6 ] = 0.0; rgb[ 7 ] = 0.6; rgb[ 8 ] = 0.9; rgb[ 9 ] = 0.8; rgb[ 10 ] = 0.3; rgb[ 11 ] = 0.0; rgb[ 12 ] = 0.2; rgb[ 1313 ] = 0.5; rgb[ 14 ] = 0.8; rgb[ 15 ] = 0.1; rgb[ 16 ] = 0.51; rgb[ 1417 ] = 0.86; rgb[ 15 ] = 0.1; rgb[ 16 ] = 0.1; rgb[ 17 ] = 0.6; extParam->setFloatArray( "HAIR_VERTEX_COLORS", rgb, 3*2*3 ); extParam->setFloatArray( "HAIR_VERTEX_COLORS", rgb, 3*2*3 ); |
"HAIR_FLAG_ROOT_UVS_1" to "HAIR_FLAG_ROOT_UVS_10"
Flag indicating whether root uvs arrays 1 to 10 are present or not. They are a byte array of length 1.
"HAIR_ROOT_UVS_1" to "HAIR_ROOT_UVS_10"
Linear arrays of uv coordinates at each hair root: u0 v0 u1 v1 u2 v2..., their length is 2*numberOfHairs.