Nature Mort Doc

Post on 30-May-2018

221 views 0 download

transcript

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 1/29

-1

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 2/29

CHRISTIAN TJAHJONO

Documentation

 Nature Mort Project

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 3/29

Description

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 4/29

The objective is to create the illusion of decay and rotting written in RenderMan Shading

Language, to Maya scene. A combination of displacement and surface shade will used todemonstrate this decay process.

After collecting a sequence of picture reference, I began with creating the base mesh inMaya and unwrap the uv so that it’s not going to be a trouble later if I export the obj file

into Mudbox. Also it will give you more control if I want to apply fur or hair in Maya by

crank-up the uv’s.

I start sculpting inside Mudbox to create a believable shape of fresh strawberry. I use the

 photos reference to recreate the process of decaying. At the end I end up with 28 different

shape and texture of strawberry. After finish with the sculpting, bake all 28 displacementmaps and then bring all the alpha channel into Photoshop and compile everything in one

tiff file.

I use one of displacement maps to create the color maps in Photoshop by painting it from

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 5/29

scratch. Keep adding layers until you satisfied with the rotten maps as a final color maps.

I put all the color maps in one tiff file.

I use the texture channels from www.fundza.com to compile displacement and color 

maps into cutter to be able to create and have more controls of your texture later in Maya.

In Maya I stated to import all the different base mesh in obj’s file and create a blendshapes for the animation purposes.

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 6/29

After you created the blend shape, now it’s the fun part! Start to load all the shader that

you created in cutter into Maya Renderman node’s.

After I satisfied with the look of my strawberry I applied a fur on to my strawberry. Then

start to animate the color, displacement and fur.

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 7/29

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 8/29

STRAWBERRY DISPLACMENT

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 9/29

PARAMETERS

Km = 0.0001 Overall displacement scaling factor.

UseShadingNormal = 1 Smooth shading surface normals give the polygonal data a smooth.

Time = 1 Appearance through time.

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 10/29

Hump = 0 The value output of the surface shader.

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 11/29

STRAWBERRY SURFACE

PARAMETERS

Ks = 1 The percentage of specular light in the scene

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 12/29

reflected by this surface.

Specular Color = The color of the specular  illumination.

Time = 1 Appearance through time.

Hump = 0 The value output of the surface shader.

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 13/29

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 14/29

Displacement Shader Code

displacementStrawberry_Displace(float Km = .0001, /* displacement magnitute */

UseShadingNormals = 1, /* [0 or 1] */

time = 1; /* {0 1] */

string map = "";output varying float hump = 0)

{vector diff = normalize(N) - normalize(Ng);

normal n = normalize(N);

float tex;

if(map != "")

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 15/29

{

if(time <= 0.20) hump = mix(1, texture(map[0]), smoothstep(0,0.20,time)); else if(time >0.20 && time <= 0.4) hump = mix(texture(map[0]), texture(map[1]),

smoothstep(0.2,0.4,time)); else if(time > 0.4 && time <= 0.6) hump =

mix(texture(map[1]), texture(map[2]), smoothstep(0.4,0.6,time)); else if(time > 0.6 &&

time <= 0.8) hump = mix(texture(map[2]), 1 - texture(map[3]),smoothstep(0.6,0.8,time)); else if(time > 0.8)

hump = mix(texture(map[3]),

1 - texture(map[4]), smoothstep(0.8,1.0,time));

else if(time > 1.0)hump = mix(texture(map[4]),

1 - texture(map[5]), smoothstep(1.0,1.2,time));else if(time > 1.2)

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 16/29

hump = mix(texture(map[5]),

1 - texture(map[6]), smoothstep(1.2,1.4,time));

else if(time > 1.4)…………….

}

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 17/29

P = P - n * (hump - 0.5) * Km;

if(UseShadingNormals) N = normalize(calculatenormal(P)) + diff;

else

 N = calculatenormal(P);

}

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 18/29

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 19/29

The Shader Code

surface

Strawberry_Surface(float Ks = 1,

time = 0;color hilitecolor = color (0,1,0),

specularcolor = (0,0,0);

string map = "";color blotch_color = 0;)

{

color surfcolor = 1;normal n = normalize(N);

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 20/29

normal nf = faceforward(n, I);

float tex;

if(map != "")

{

if(time <= 0.20)

tex = mix(1, texture(map[0]), smoothstep(0,0.20,time));else if(time > 0.20 && time <= 0.4)

tex = mix(texture(map[0]),

texture(map[1]), smoothstep(0.2,0.4,time));

else if(time > 0.4 && time <= 0.6)tex = mix(texture(map[1]),

texture(map[2]), smoothstep(0.4,0.6,time));else if(time > 0.6 && time <= 0.8)

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 21/29

tex = mix(texture(map[2]),1 - texture(map[3]), smoothstep(0.6,0.8,time));

else if(time > 0.8)

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 22/29

tex = mix(texture(map[3]),

1 - texture(map[4]), smoothstep(0.8,1.0,time));

// composite the texture map color over the backgroundsurfcolor = mix(blotch_color, Cs, tex);

}

Oi = Os;

Ci = Oi * Cs * surfcolor * specularcolor * Ka * Kd * Ks * diffuse(nf);}

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 23/29

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 24/29

Maps Images

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 25/29

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 26/29

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 27/29

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 28/29

8/14/2019 Nature Mort Doc

http://slidepdf.com/reader/full/nature-mort-doc 29/29