Friday, March 28, 2008

Combining two bump maps in Maya

Sometimes you want to combine two bump maps in Maya. How to do this isn't entierly clear, however. What you need to do is the following:

Let's say we have got two textures, textureA and textureB. We want to use them both as a bump map in maya.
  • Connect the two textures to a bump2d-node each
  • Connect one of the bump2d-nodes to the other.
    • bump2d1.outNormal -> bump2d2.normalCamera
  • Done!
The outNormal and normalCamera-attributes can be Hidden, and if you don't see them, check Left Display->Show Hidden and Right Display->ShowHidden in the connection editor.


Sunday, March 23, 2008

Interesting read

Pixar has published a lot of papers on their different techniques on they used in their movies. They can be a bit technical, but interesting nonetheless.

http://graphics.pixar.com/



Monday, March 03, 2008

File Formats

.. is not something to be taken easy. I did a little study today, and found out, among other things, the following.

  • Although Mental Ray supports the z-channel in OpenEXR, Mental Ray for Maya doesn't.
  • RLE is an 8-bit format, but makes for the smoothest workflow when you need a z-channel from Maya to Adobe After Effects.
  • iff can be used as a 16-bit format, but isn't widely supported
  • Maya has a very short range in it's z-channel (from 0 to 1 at the most)
More points to be added as they show up..

Tuesday, January 22, 2008

More alien abstracti-isms

Another work of abstract Maya-art. My aim is to rediscover the joy and experimentation of 3d-work.

Sunday, January 20, 2008

Experiment with abstract forms

This week I did some experimenting with abstract forms. I like the combination of organic irregular shapes and the contrasting regular sphere.

Wednesday, December 19, 2007

Workflow and tips on keeping the scene clean

This thread has some good advice about how to work with clean and organized scenes. Basically, it boils down to dividing your shot into multiple scenes, and then combining the rendered passes in compositing (among other things).

Saturday, November 10, 2007

L-Systems, part II

In the last post, we looked at L-Systems and the basic principles of an L-System. This time we will take a quick look at how to use that in computer graphics.

An L-System can based on a string of characters, as seen in the previous post. Now, consider the following statement:
Each letter in this string represents an action.

Lets say that the system consists of three letters, D,R and L. Each of these letters represent an action.

D: Draw a line 1 unit long
R: Turn 90 degrees right. Do nothing else
L: Turn 90 degrees left. Do nothing else

So, the combination DRD would mean "Draw a line, turn right, and then draw another line in the new direction."

DRDRDRD would mean Draw a line, turn right, draw a line, turn right, draw a line, turn right and draw a final line. This would result in a cube.

Now, let's say we use rules to transform a string of these commands.

Example:

Starting string: DRD

Rules: D = D
R = DRDLDRD
L = DLDRDLD

As a small excerscise, draw the shapes DRD and it's "child" DDRDLDRDD.

As you see, small corners are added to each corner. For each generation, more corners are getting "cut out".

This is a simple start on how to use L-Systems for drawing. There are more advanced examples, and we will get back to those in a later post.


Powered by ScribeFire.

Tuesday, November 06, 2007

L-Systems pt I

L-Systems are commonly used to create complex patterns and constructs.

This and following posts are my attempt to understand these L-Systems more.

First of all, what is an L-System?

An L-system consists of two parts (roughly speaking). A chain (or a text string) and rules.

The chain can consist of any pre-defined components. To demonstrate I will use a chain of letters. The string AABA could be such a chain.

The rules describe how this chain should change. For instance

A = A
B = AB

You let the chain grow or change by running it through the rules, one component at a time. Let's consider the example above:

Chain: AABA
Rules: A=A
B=AB

First run:
First letter: A, becomes an A
Second letter: A, becomes an A
Third letter: B, becomes AB
Fourth letter: A, becomes A

The result is A+A+AB+A = AAABA

Second run:
First letter: A, becomes an A
Second letter: A, becomes an A
Third letter: A, becomes an A
Fourth letter: B, becomes AB
Fifthletter: A, becomes A

The result is A+A+A+AB+A = AAAABA

In this example, the chain was put through the same set of rules twice. In theory an L-System could be run any number of times, applying the rules over and over again.

Which each iteration, the string evolves and changes according to the rules.

There are a couple of basic patterns that is worth mentioning.

The first one is where you add complexity in the middle of the string.
Example:
Chain: ABA
Rules A = AB, B = A

First run: AB+A+AB = ABAAB
Second run: AB+A+AB+AB+A = ABAABABA
Third run: AB+A+AB+AB+A+AB+A+AB = ABAABABAABAAB

and so on. As can be seen, the string grows longer, and more complex all the time.

Consider instead this string, and in this case, I'll use three letters. The basic principle is the same.

Chain ABX
Rules, A=A, B=B, X=ABX

First run A+B+ABX = ABABX
Second run: A+B+A+B+ABX = ABABABX
Third run: A+B+A+B+A+B+ABX = ABABABABX

In this example, the inner structure isn't changed, instead a tail is added to the end for each run. This is accomplished with a tail component that adds a string+the tail component for each run.

These L-systems can use an indefinite number of rules and components. I could have an L-System with all the letters of the alphabet and a multitude of rules, creating something very complex.

So, what can we do with this then?


Wednesday, August 15, 2007

Interactive Creation in Maya

One of the things Autodesk introduced in Maya was the interactive creation. In it's normal workmode, that means that you click and drag on the grid to place and scale your object. However, there are some extra little details that can be worth remembering.

First of all, remember that planes and cubes are created differently than other primitives. With the first click, the corner is placed and then you drag out the other corner. With the other primitives, you place the center with the first click, and then drag out the radius.

If you press the control-button when creating a cube or a plane, it is placed as above, but when you drag out the height, it grows so that it's center is at the ground plane (as compared to having it's base on the ground plane normally).

If you press the shift-button when dragging (regardless of object) it is created equally large in all directions, and it's base rests on the ground plane.

Finally, Ctrl+Shift makes a cube behave just like the other primitives in that it is created with the same dimensions in all directions, and it's center is on the ground plane.

You can also double-click instead of click-and-drag, and that creates a primitive with size (for cubes and planes) or radius (for spheres and similar) 1 in all directions, with it's center on the ground plane at the spot you double clicked.

Another little nice detail: In the menu Create -> XXXX Primitives there is an option Exit on completion. If this option is unchecked, you don't leave the creation mode when a primitive is created. This way, you can rapidly create a large number of primitives just by clicking and dragging.

From Maya 8.5 there is also a tool option that let's you adjust different parameters after creation. Create -> Polygon Primitives -> Cube (as an example) and click the square to open the options window. There should be a heading After Creation Settings. If you activate Adjust Subdivisions, you can set the number of subdivisions by click and drag when you have created your primitive.

Finally, you can activate the Snapping-funtions to snap your primitives to a grid or a live object, for instance.

Friday, July 13, 2007

Constraints in Blender

Using constraints in Blender can be a bit of a hassle, but here is a method I have found works quite nicely.

The setup: You have got two objects, A and B. You want B to follow A around, but with the following conditions.
  • The connection can be toggled on or off (that is: keyframed)
  • The connection should work like a parent-child-relationship. If A rotates, B should rotate with A as it's centre.
  • You want control over the offset between A and B
First of all, create A and B and center their center points. Place them exactly where you want them to be the moment the connection is created or released.
Select object B, that is, the "child" or "slave" object. Snap the 3d cursor to that object (shift-S).
Create an empty object at that place and give it an appropriate name. You may want to set it's rotation to the same as your object B.

Parent the empty object to object A. Finally, constraint B to the empty object (location, and rotation if needed). Voila!

The connection works like a parent-child-relationship, but where you can keyframe the weight. You can alter the offset by simply translating/rotating the empty object. And, since everything was set up at the "connection-point", there should be no sliding whatsoever when keyframing the weight-value.

With this setup it's also possible to make multiple connection, for instance, if you have an object handed over from one hand to another. Just make the setup twice, and keyframe the weight-values of each locRot-constraint-pair.

Easy and quite powerful.

Wednesday, September 13, 2006

Just a short quote I read today..

We should be taught not to wait for inspiration to start a thing. Action always generates inspiration. Inspiration seldom generates action.// Frank Tibolt

This applies to me a lot. I'm not always the most focused or persevering guy, and sometimes I have to reminde myself that real progress is done with hard work through tough times. Not easy always, but that's my aim

/McW

Tuesday, August 08, 2006

Short tip on "double constraining"

Posted by tfall on cgtalk regarding rigging an object so that two objects can control it independently of each other:

pointConstrain control A to control B. Then connect control C's translateX, translateY, and translateZ to the pointConstraint's offsetX, offsetY, and offsetZ respectively. Control B and control C will have independent control over the position of control A.

Tuesday, June 06, 2006

Speed Modelling

A picture I made for a speed modelling session on www.grafisktforum.org.

3½ hours. Modelling done in Wings3d, posing and rendering done in Maya.

Thursday, May 25, 2006

Maya and shading

This guy http://www.digitalartform.com/has some interesting thoughts on shading like a painter.
Well worth a read.

Sunday, May 21, 2006

Fisherman's head

My latest little work. Modelled in Wings3d and rendered etc in Maya.

Bump maps are used for details in the skin. A specularity map is used to make sure that only some parts of the modell is shiny. All maps ar made using the Paint Tool in Maya.


A single Fur Description is used for all hair, with the attributes painted in (Length and Baldness).

The eyes are made with Nurbs spheres with one of the poles pointing forward. The texture is a combination of ramps. The first one is the basic eye structure, going from black to blue, dark blue and then white. The blue part (the iris) is then made into a new ramp that basically is several bands going from darker to lighter blue. This ramp goes in the other direction compared to the first ramp.
Samt goes for the third ramp, which is mostly white with a couple of red/ white-red stripes going from the iris outward. Adding a slight level of noise gives makes for simple veins in the eye.

Tuesday, December 13, 2005

About collaborative work

Another quote, this time from Alchemist101, on the subject of collaborative works over the internet.


I've spent the last year getting involved in as many web based team projects as I can for experience.....

The best web collaboration projects that I have been involved in have all had a solid foundation. There has been someone firmly in charge, with a clear vision, a strong concept commited to paper, and of course, a lot of drive and determination.

The worst ones are always the ones where you get little direction and no concept work to start from. It sounds good if a project leader gives you artistic freedom to design and build a character, but it just doesnt work when you bring all the seperate elements together.

I dont want to sound like an ass here but when you are involved in a collaboration you can tell quite quickly whether its going to last the course or not. I have started models for team projects only to find out that the team leader is a 16 year old in his bedroom who thought it might be cool to do an animated movie - then realise that he had gone off the idea.

I think that if you wish to lead a collaborative project that involves other people then you should have completed an animated short by yourself, so that you know what your getting yourself into

Some tips about joint orientation

This is a direct quote from seventy6ty on cgtalk.com, where he explains a little about joint orientations. I put it here for reference.



Well, different people have different preferences. The method I've adopted, after seeing the pipeline at R+H and Sony, is to have X pointed down the joint's axis, to be used for the twisting attribute. There is a general method that is even used in physical injury specialists, of having X being the twisting attribute of any joint. Then, using the Z-axis as the most commonly bending axis. So, on a knee, the Z-axis would be the one you use to bend it. On the shoulder, the Z-axis would be used to elevate the arm, etc. Then Y is used as the secondary rotation axis.

So on an abdomin, X would twist, Z would be front to back, and Y would be side to side twisting.

I still have yet to fully understand the xyz rotational axes evaluation. I usually just play with them a bit for each joint until I get it evaluating correctly, with the IK for that joint chain. The way I understand it, it actually goes backward, the z, in this case, being evaluated first, then the y which is it's parent, then the x which is the top parent of all these rotations.

Hope that helps a bit.


Thursday, December 01, 2005

Simpler version of the below



This is the same shader as below, just without the noise texture multiplied in. I do prefer the more irregular version, but even without that the effect is fairly good. Posted by Picasa