Contact Information

Email - Duylinh.Nguyen@gmail.com
Google Voice - 415-613-2177

Saturday, August 30, 2008

FBIK and Muscle Systems

This was suppose to be for yesterdays post, but it totally slipped my mind. I learned how to create the FBIK setup that was found in Maya versions 7 and higher and decided to apply the muscle systems knowledge I had gained from the previous day. I attempted to learn nCloth, but it seems my Maya crashes every time I try using it. I'll try uninstalling and reinstalling Maya to see if that fixes the problem.





Thursday, August 28, 2008

Maya Muscle Systems

Today I learned a lot about the new Maya 2008 muscle system. It's pretty neat and easy to use too. I learned about the capsules, bone objects and muscles. There were some very interesting things you could do with it. It will just take a good while to build a character fully rigged with a complete muscle system though. I think it will be great to have it though. I exaggerated the effect in the second video to make it easier to see what is happening.


video
video

Stretchy IK in Max

I just followed a tutorial on Autodesk's The Area and made this stretchy IK. I'll probably try applying it to the max biped and try seeing if the same theories work in Maya so I don't have to do the whole 3 sets of bone setup to get the stretchy IK in Maya.

The script used on the joints that would stretch was:

if (IKLength.distance <= (Length of bone02 + Length of bone04) then
(
Original Length of selected bone
) else
(
(Length of selected bone/(Length of bone 02 + Length of bone04))*IKLength.distance
)
video

Wednesday, August 27, 2008

rims!!

This was suppose to be for yesterday's post, but I fell asleep while it rendered. hahaha... Anyways... These are a set of rims from the Nissan Skyline I had modeled in Maya and rendered with VRay in 3ds Max. I'm slowly getting the hang of VRay so far. I'm still getting used to it's shader system. It shouldn't take too long before I get the whole thing down. I'll probably model the rest of the skyline eventually, being I've never done a complete car model before.

Monday, August 25, 2008

VRay and GI

Soo.... I spent most of my day napping.. I have a fever sooo that kind of sucks... Anyways.. during my waking hours I decided to do a very quick model of a corner section cover I had found on the ikea website so I could use for global illumination tests. I modeled the object in Maya and ported it over to 3ds max to play with VRay. After a good amount of test renders, playing with lights and their values. Some shader tweaking, this was the result.

Sunday, August 24, 2008

Jaw and Teeth!!

I just finished adding the jaw and teeth to the skull. I modeled each individual tooth for the skull. haha. I hope you like it. I'll finalize everything eventually via zbrush for the fine little details and the harden edges.


Saturday, August 23, 2008

The Skull

On Friday, one of the guys at gearbox had asked me to have xsi fix a skeleton model he had found online due to how messy the mesh was. So I did just that. It was pretty amazing how much if fixed it. I was originally planning to just clean up the mesh afterwards, but then changed my mind. I figured modeling a skeleton myself would be very useful and help me understand the human anatomy much better. Sooo... I just started modeling one today. Here's the skull I have so far. Hopefully I'll be able to get much more done tomorrow. haha.




Friday, August 22, 2008

She is no longer blind

After some serious eye surgery, she can finally see!!! poor girl.. she's been blind this entire time. Anyways... I touched up the texture a bit more so the colors match better in certain areas. All in all, I was pretty busy at work today so I wasn't able to do much to her. Luckily, work is finally done for the day. I should be having more updates today. Maybe modeling or more hair. I'm not really sure just yet.

eyes!!

Soo... this is how my eye shader is looking currently. For the outer eye, I just have a blinn shader with sss going into the base shader slot for the mix8layer shader and a mia_material on a layer above that used for reflectivity. I'll tweak it more once I implement it in the character I'm making.


Thursday, August 21, 2008

Skin and hair

This is taking a pretty long time to do. haha.. I guess after I get much more used to it, I'll be able to create hair much much faster. I'm doing it this method, because I feel I get a lot more control this way and also allows me to create multiple types of hair systems with tweaked parameters. Currently I'm up to 5 different hair systems to get the look I am currently going for.

*Edit

Well, here's my edited post. I decided to do a rough texture for the head and alter it in zbrush also. I got tired at looking at the poor girl with no special skin tone. haha.. Well I'm going to work on an eye shader now too, so she doesn't look soo freaky with those white eyes.


Wednesday, August 20, 2008

Finally Styling the hair

I got the hair to get the general look and feel I was going for. Soo.. now it is time to style it. Here is what I have so far and a close up. I'm trying not to put too many strands so it doesn't slow down my render time. I'll upload a dynamics test later too, so you guys can see how it's working.
*edit





Monday, August 18, 2008

GLSL SHADER!! WOO HOO!!

Sooo.. I just finished with this OpenGL Shader tutorial from Digital Tutors. It was pretty neat!!

Here is the shader in the XSI viewport


and here was the code.

Vertex Program:

varying vec4 mat_diffuse; // the material's diffuse color
varying vec4 mat_ambient; // the material's ambientcolor
varying vec4 xsi_ambience; // the XSI scene ambient color (called ambience)
varying vec3 vtx_normal; // output the transformed normal
varying vec3 vtx_light_direction; // output the light direction (from the vertex to the light)
varying vec3 vtx_half_vector; // output the half vector
varying float vtx_dist_from_light; // output the distance from vertex to light (for attenuation)

varying vec4 eyeDir;
vec4 sieyepos;

void main()
{
// transform vertex and normal
gl_Position = ftransform();
vtx_normal = normalize(gl_NormalMatrix * gl_Normal);

// Calculate the light direction from this vertex to the light source
vec4 eyePosition = gl_ModelViewMatrix * gl_Vertex;
vec3 lightDirection = vec3(gl_LightSource[0].position-eyePosition);
eyeDir = normalize(sieyepos - eyePosition);
vtx_light_direction = normalize(lightDirection);
vtx_dist_from_light = length(lightDirection);
vtx_half_vector = normalize(gl_LightSource[0].halfVector.xyz);

// Blend light and material color and output to fragment
mat_diffuse = gl_FrontMaterial.diffuse * gl_LightSource[0].diffuse;
mat_ambient = gl_FrontMaterial.ambient * gl_LightSource[0].ambient;
xsi_ambience = gl_LightModel.ambient * gl_FrontMaterial.ambient;
}


Fragment Program:


varying vec4 mat_diffuse; // the material's diffuse color
varying vec4 mat_ambient; // the material's ambientcolor
varying vec4 xsi_ambience; // the XSI scene ambient color (called ambience)

varying vec3 vtx_normal; // the interpolated normal
varying vec3 vtx_light_direction; // the interpolated light direction
varying vec3 vtx_half_vector; // the interpolated half vector

varying float vtx_dist_from_light; // the interpolated distance from the light source
varying vec4 eyeDir;

sampler2D refMap;

void main()
{
vec3 viewV,ldir;

vec4 finalColor = xsi_ambience;
vec3 interpolatedNormal = normalize(vtx_normal);

float NdotL = max(dot(interpolatedNormal,normalize(vtx_light_direction)),0.0);
if (NdotL > 0.0)
{
// calculate diffuse
finalColor += (NdotL * mat_diffuse + mat_ambient);

// calculate attenutation factor.
// NOTE. XSI does not change default OpenGL values for constant, linear and quadratic attenuation.
float att = 1.0 / (gl_LightSource[0].constantAttenuation +
gl_LightSource[0].linearAttenuation * vtx_dist_from_light +
gl_LightSource[0].quadraticAttenuation * vtx_dist_from_light * vtx_dist_from_light);

finalColor *= att;

// calculate (attenuated) specular term
vec3 halfV = normalize(vtx_half_vector);
float NdotHV = max(dot(interpolatedNormal,halfV),0.0);
finalColor += att * gl_FrontMaterial.specular * gl_LightSource[0].specular *
pow(NdotHV,gl_FrontMaterial.shininess);
}
vec4 incidence = 1-abs( dot( interpolatedNormal, eyeDir ) );
vec3 refVec = reflect(interpolatedNormal, eyeDir);
vec4 envColor = texture2D(refMap, refVec.xy);
gl_FragColor = finalColor * (incidence*3) * envColor;
}

Learning XSI

Well.. I decided to try to learn XSI today. So far so good. From what I can tell at this point, this application seems to have a lot of the things I've seen in both 3ds Max and Maya. The only real thing I have to get used to are the shortcut keys and location of everything. I'll place the notes I've taken so far.

XSI Shortcuts

Spacebar-Select
X-Scale
C-Rotate
V-Translate

E-Edge
T-Vertex/Point
Y-Polygon (marquee around the entire polygon to select)
U-Kind of like paint selection

O-Orbit
L-Loop

Shift+LMB-Add to selection
Ctrl+LMB-Toggle selection
Ctrl+Shift+LMB - Remove from selection

H-hide object toggle

I'm currently using a custom preset for navigation. This way it's almost like Maya, but it doesn't override the original XSI sets of shortcuts.

*Edit

Oh my goodness!! XSI's polygon reduction tool is the greatest!! I brought in a model from zbrush that was 1.5 million polys or so and I tried out the polygon reduction from XSI. I applied a relax deformer to it with only 3 out of 100 for it's strength.


Sunday, August 17, 2008

helping a fellow artist out.

I was on cyworld and decided to give some pointers and tips to an amature artist. He's still pretty new to this stuff, so I figured I should help out. well.. I basically did some sketches. One in photoshop and the other on paper. These were very very fast simple sketches. haha.. sorry if they don't look too great!


Friday, August 15, 2008

Rigging - The Shoulder

The shoulder area tends to be most riggers nightmares. Especially if you want the muscles to move correctly and have the muscles deform right too. Here is rig I made today using Maya. I kept the rig very simple with no special muscles systems or influence objects. The goal was to get a generally realistic looking rig without the complexity. The reason the shoulder is so challenging is due to it being a ball and socket joint. Meaning it can move in just about any direction. The trick is to get a nice balance between the head, neck, clavicle, shoulder and upper chest joints. You have to constantly move the shoulder around and the areas around it to see if all parts are deforming correctly. Knowledge of anatomy and muscle deformation is a must along with a lot of patience. haha.. well I hope you like the results!!















Tuesday, August 12, 2008

I'm Angry!! ROAR!!!!

Haha.. I decided to go for a much more stylized piece this time around. It was great fun making this bust. I think I'll probably veer more towards a stylized theme for my future sculpts too!

Monday, August 11, 2008

Yet another sculpt!

Well, here we are with another bust sculpt. I'm trying to veer more and more away from the ideal human types of sculpts. I started working on this earlier today and decided to post this up. Let's hope I'm able to pull off a new art piece everyday. Hope you like it!

Sunday, August 10, 2008

A new bust!

I decided to work on a new Zbrush bust sculpt today and attempted to veer away from the ideal human type of sculpt. I mainly used the standard, clay tubes, move and pinch brush to create this character. I hope you all like it!

Saturday, August 9, 2008

New Portrait

Here's a new portrait I just did for someone on CyWorld. I was asking around if anyone wanted a portrait to be done for practice and portfolio sake. She volunteered so I decided to do the painting this morning.