Project #3: Troubleshooting Alembic Files and UVs from Houdini to Maya

While working on the shading for my dancers in Maya, I noticed that I was unable to add textures, as my alembic files had no UVs when they were imported into Maya. After a little bit of research, I decided to do some tests to see if I could troubleshoot the problem and come up with a work around.

I went back into Houdini to revisit my sphere dancer file. The original node structure for the sphere dancer looked like this:

basic_chrome_sphere_structure

Spheres were copied onto the points of a particle system attached to the motion capture character rig. I knew that the geometry and animation worked when brought into Maya, but that the UVs were missing. I first added some Houdini UV nodes to the node tree, and opened up the UV Layout option into Houdini to study the results.

Below is my first attempt at adjusting the node tree structure:

uv_combo_001

At the UVTexture node level (before processing any sort of UV unwrapping or layout), all of the spheres on the dancer’s body were on top of each other in the UV view:

original_uvs.png

Once UVUnwrap and UVLayout nodes were added, the result looked something like this:

uv_layout_002.png

It was evident that the spheres were unwrapping in an unnatural way. I brought a test alembic of the dancer into Maya and put an aiStandard shader with a ramp in the diffuse color channel to study the results. In the image below, you can see how the colors in the ramp shader were read in pieces rather than in a smooth ramp.

The ramp that plugged into the diffuse channel of an aiStandard shader:

ramp_shader.png

The rendered result:

new_uvs_from_houdini_001

An additional test with some tweaking of the UV node parameters in Houdini:

side_by_side_comparison_uvs

The tweaking of values (left figure) resulted in a slight improvement, but it still wasn’t as smooth or responsive to the ramp as I liked. I revisited the Houdini file and adjusted the UV process. I moved the UV nodes higher up in the node hierarchy so that the UVs were established on the base sphere before it was copied to multiple points. With a bit of trial and error, I realized I did not need the UVunwrap node for this process, so I flagged it yellow to “bypass” it.

Adjusted node tree structure:

proper_uv_network.png

I also switched the UVtexture node “Texture Type” parameter from “Orthographic” to “Polar” which gave me a different result:

polar_parameters.png

Adjusted polar UVs for one sphere:

uv_texture_polar.png

Now all of the copied spheres should have the same polar UVs. I tested this in Maya with same ramp shader, using side by side comparisons to study exactly what changed.

The figure on the far right is the dancer with polar UV coordinates for each sphere. The linear ramp was noticeably smoother in this iteration. I also added noise to study how the UVs broke up the noise across the surface of the spheres.

 

After running these tests, I used the polar UV method and re-imported the alembic into my dance studio scene.

Advertisements

Author: kaitlinduchene

Lighting and Look Development Artist

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s