Sunday, August 25, 2013

Daily Updates (19th July)

Lesson 12 :
In the first part of this lesson, I learn how to add layers in the mantra also render float value like $AGE, $LIFE by creating a parameter in the material shader builder and name in the same name the attributes is being created.
To render different layers, extra image plane have to be create so we could choose which render layers we want to see.














In the material shader, I need to create parameter with the same name I named my attributes.















In the material shader, I need to create parameter with the same name I named my attributes.







Creating attributes and viewing them on a image plane.
$LIFE is a percentage from 0 (Birth) to 1 so the render below is representing the value of $LIFE of the particles showing by colors, 0 being black and 1 being white.

If i press I on the keyboard, I get a look up table where I get to see the color values.





















Toon Shader

In the next part of the lesson, I learn how to create a toon shader. A simple toon shader will be just using the the two tone node in the shop network













But we are also able to edit the parameters, for example, mixing it with textures.   In order for us to adjust how much color of texture we want, we add a parameter node and insert in to the bias amount of the color mix so we could control how much texture or color we want.














In order to get ready for compositing, we create another parameter inside the shader and label is obj id. This is to ensure that each geo is masked out seperately.
Under the mantra node, we create a new image plane and name the same name obj id in order for to render the mask in a seperate layer.





















So when you render and view the obj id layer at first you will get all white, you have to click "adapt to full pixel range" to see the seperate mask.















In the tutorial, wren node is used. It can be found in the out level and it is used to render wireframe of the geo. Apparently apprentice version houdini is disabled and i cannot use the node.














So since before compositing, we had a layer called obj id and in obj id my grid and teapot have different values and we can call the values back into compositing by using the limit node and mask out the geo seperately.



















The teapot was given a value of 5 in obj id. So by using the limit node, I can change the lower and upper limit to 5 and get the alpha of the teapot. But before that, I have to put a channelcopy node so i can extract the obj id layer. By doing this I can just edit the teapot itself without affecting the grid.














And by multiplying back to the original image, we are able to see the changes made. I am glad that the compositing side of houdini is not difficult to use as it is quite similar with compositing softwares like Nuke. I will definitely explore more on compositing.

Sunday, August 11, 2013

Day 5

Daily Report : 12th July 2013

Lesson 9 : custom shader

Vops - visual version of another language called vex (vector expression)
Vex - single instruction multiple data (one instruction applies to all the point)
vops :
-shader development
-manipulate points
vopsop - vop surface operation
In the first part of the lesson I learn how to use the vop sop. Instead of creating the terrain by using grid and mountain sop. I create my terrain in the vop sop node. The difference is I am manipulating points in the node, meaning if they are no points in on the geometry, it probably would not work. Vop sop is also more flexible and I can tweak more parameters and it does not slow down the machine since houdini will evaluate the vop network for each point in the input geo.





















under edit < preferences < network editor, nodes, and trees

I can edit and toggle whether I want to view the long or short version of the name of the variable and tick or untick the show full input and output names on VOP nodes.

















The color of the variable tells what type of variable they are.
light green represent a vector.
dark green represent floating vector
blue represent boolean (true or false)
brown represent string value

In the next part of the lesson, I am taught to use material shader builder, in school however, we use surface shader builder and displacement shader builder and create them in a seperate node and then select both and shift+c to create a material.
















I can do color, add pattern and displacement all in one shader which i find more efficient.
I am not sure though what is the difference between material shader builder and the method i do in school.
Inside the material shader, the node surface model is useful as its a digital assest and I can attach any node on the surface model.

BSDF - bidirectional lighting

there is no uv 
parametric s coordinate - u
parametric t coordinate - v
use s and t for uv
if I want to use uv I need to use shading layer parameter to import my uv.

Since uv are vector we need to convert the uv vector to float for parametric s and t 
To control my parameter inside the material shader i can promote parameter

when i promote parameter i can tweak at the shop context level
To promote parameter for all in a single node, i can click create input parameter and it will promote all parameter at the shop level except the ones which a wired to another node.

On the object level, i can click "create all local material parameters" and that will allow me to access the material and also instance it to another geo while sharing one geo.

under the mplay viewer, there an options called "adapt to full pixel range" and its help me to increase the gamma saw i cant see my render more clearly.


One of the most important part of the lesson is the displacement in vop sop.

































After adding the displacement and increasing the displacement bound, my renders look fine.

Lesson 10 : 
Particles SOP
I rarely used particle sop as we always use the pop network
There are 3 inputs on the particle sop
1st input - source emitter
2nd - collision

3rd – forces
















Adding a point sop and change add velocity will add a force to the particle sop
However the particle get slow down and accumulate in one area, why?
because it is set as initial velocity and will eventually slows down and react to the world gravity.
To randomize the particles :

1) add a scatter node and will randomly and emit points
2) add a sort node and change the point sort to random 
there is a lot of parameter i can adjust from the particle sop node itself.

-under the particles tab i can add force to the particles

-under the limits tab i can add collisions and adjust gain tangents and normals.

















For particles, I do not have to dive inside and more nodes likes source or collision node to drive the particles like how pop net is used.
However pop network is more flexible in terms of tweaking parameters and having more options in driving the particles.

However, what I liked most about the particle is the “modify source geo”. Instead of emitting particle, I could make the geometry itself act like the particle and deforming the geo to fall.


















There are also file examples about particles that I can refer to when I have doubts. I will definitely go through all the examples given.


Lesson 11 : Dynamics (RBD)

In this lesson I learn about the dynamics part of Houdini, specifically the RBD object. The first thing I notice is that in this lesson, he automatically click the rbd object in the shelf tab and it creates a autodop network. In school, we were taught on how to put the nodes manually, meaning dropping a dop net and adding rbd object and solver and manually create them.

Even though the auto dop network is easier, I am glad that the way complex node so I understand how its being made.
There are three types of rbd solver.

ODE, RBD, and bullet solver.
Bullet solver is very fast, but its not that accurate. Its good when your objects are in the mid or far field.

RBD has a better movement of the simulation.

ODE is a simple solver engine and mostly used for simple object like spheres and boxes.


















RBD Glue Object


















By making the table an rbd glue object, i am able to adjust how sticky the legs is to the table under the glue strength parameters whereas if I use the rbd fracture object it will take all the geo as a separate object.
















Pin contraint






















RBD pin constraint pin an object to a certain in a world space, so it will be hanging to the pin constraint.

















I can attach multiple object to the rbd pin constraint.

Day 4

Daily Report : 11th July 2013

Lesson 7 :
I am glad that now I have a better understanding of the copy stamping node.­

In lesson 7, I learn on how to copy attributes I create in the copy node and apply it to my geo for examples attributes like color.


By using the point on the grid, i can apply a geo to each point on the grid I can also apply random geo to be on each point by using the stamp function
stamp(where the attribute node is, name of the attribute, float value)

Camera handles
first handle is the look at handle
second handle is the eye view
The camera handles are really new to me and im really glad i came across this.
This will definitely help me in the long run when i need to render depth of field.
One thing houdini has an advantages is that I can interactively move the depth of field whereas maya i have to manually type values and keep rendering to see results.



right clicking to get more option like focus angle, frustum handle
under the camera parameters, in the sampling tab, I can adjust the focus distance and f stop
the frustum handle control the near and far clipping. (it is use to control how much area you want to render)
the switcher camera node is really useful camera, with this i am able to render multiple shots in one scene and do not have to separate the render.



Mantra will create micro polygon renderer (scanline renderer)
pbr is a global illumination render

something new that i never learned before is that I can actually have a parent child relationship and control which mantra you want to render.


Stereo camera
zero parallax settings :
where the screen you want the image to be sitting.
interaxial distance:
separation between 2 eyes.




Lights:
point light points the light to everywhere (pointing lights to all direction)

















Spot light and point light are similar, but a spot light has a cone shape to create the light.
cone angle - adjust the angle of the cone light
cone delta - the greater the value, the sharper the line.
cone roll off - intense to shallow

















Area light has a line, grid and sphere light type.
line light type is like a florescent tube light.
grid light type is a rectangular area that is emitting light.
disk - circular panel light.
sphere - 3d light. 















The render above is using the area light type grid. Notice point light and area light render is quite similar except that for the area light the chrome ball is reflecting the area light on its surface.
Area light type for line, disk has the similar effect.
under area light options tab
-normalize light intensity to area (takes all light, scale it in and normalize to a certain range.















The rendered image below is using a distance point light type.

















Cleaning shadow noise
under light, shading quality value : the lesser the value, the lesser noise when render.
increase pixel samples
increase noise ­­

Lesson 8 : UV and materials

shortcut keys
spacebar + 5 goes to on viewport to view uv
spacebar + n will make a viewport active
 .rat is a random access texture (houdini format)
vfx /animation .rat (highly optimize)
converting image to .rat file by opening houdini command tool and drag and drop the image i wanted to convert. It will ask for 2 argument, first is what is the file you want to convert and second is what format you want to convert the file to.
 uvproject
unwrapping uv
 uvpelt :
shift + L = select all loop edges
click an edge and press f, to select edges forward
uvbrush is used to relax the uv
if i right click, I can have more options to smooth drag and erase the changes I made to the uv.

**Something learn from Boon Eng:
Under edit, color settings, increase the gamma value and tick all the options below. This is for linear workflow.
It makes your rendered image wash off, but later in compositing, its easier to adjust and tweak the color correction etc.
Regarding the report yesterday about the expression $TX-point("../upvector",1,"P",0)

**Joel has already already explained what the expression means. Its just taking two point node and subtracting from each other.


The guys had been really helpful and patient :)



Report Day 3

Report Day 2 : 10th July 2013

Expression

trunc - convert number to integer
padzero - how many zeros, float values
$0S - operator string variable
Trouble faced.
I was having problems with the hose tutorial where an object is copy stamp to a grid with random scatter points.

The problem I faced was that the object does not follow the null when i start to move it on 3d space.














The part where he explains about the distance and normal minus point upvector, I do not quite understand
$TX-point("../upvector",1,"P",0)

Lesson 6 :
Attributes and Variable

Attributes is a named value store on vertices, primitive, etc.
It is a data attached to geo (build into the geo)
I can add more and delete attributes to the geo.
By default, a geo has a position attribute. (1 point attribute)

attributePromote
- it is use to promote or demote and attribute, eg) from point to primitive.
Details View is a shelf where I can see all the attributes that encompass the whole geometry.


I learn how to group geometry using attributes. I have done this before where I import a model inside houdini from maya and seperate the geo by using this partition node.










I modelled a geo in maya in houdini and rename the geo according. When i import the geo in houdini I can textures and call the geo easily by using the connectivity and partition node.

The most interesting part of this lesson is learning the attributes transfer from a sphere color point attributes and transfer it to a grid.









By using the attribute transfer node, i can transfer attributes to another geometry.