Thursday, 31 March 2011

Day 19


Started testing lights in Bryan's terrain generated using height maps, begin using distantlight and arealights to act as bouncelights. No global illumination was used in this test. Will carry with this and see how far i can get.





























This time i am using sun/sky light to illuminate the scene.
The feature that really interest me was i am able to set the lighting condition by selecting "Location", "Date" and "Time of the year"
There were Latitude and Longitude parms which were terms used in HDRI.

Can also change the ground's (colour) and sky's (ramp) colour too, not sure if these contribute to the overall lighting. Will check it out.

More details can be seen compared to the scene only lit with distant/arealights. 01 and 02 only had sun/sky light, added a more arealights to act as bounce in 03. Artifacts appeared in the terrain when sun/sky lights.

These were all done using micropoly renderin, PBR produce a black image.

Wednesday, 30 March 2011

Day 18

Was back onto the pdf documentation on houdini lighting and rendering.
http://forums.odforce.net/index.php?/topic/12365-shading-documentation/

Had this link back in day 06 but failed to credit the person, so here it is, it was provided by Ben LaidlawFX. :)

I was following along up to page 03, felt it was a really good way to build up from.

Distantlight wasn't the only one which produces harsh shadows, Pointlight also does the same.

Shadows can be soften by increasing arealight's size.

There were too many specular highlights, the specular contribution checkbox is used to stop lights from contributing specular & still be able to emit diffuse light.

The projection map was a good method to find the size of the depth map size of our shadow maps. I use the default mandril image, it produced a cool mood for the overall lighting like tinted glass window.

The lights' attenuation (decay) were set to "Physically Correct" which i believe is Quadratic.



Sampling Quality is for area lights. If you see shadow noise, and for noise in projection maps it will clean this up. This number is multiplied by the Pixel Samples in the mantra rop, under the properties, sampling tabs.

All the test were done using PBR render engine.

Something to take note when setting up light rig is not to check "Keep position when parenting" under the light's Transform Tab.

After moving the null around (parent of light), i unparented them and tried to zero-out the transformation. The light ended up somewhere else in space.



Your light would had popped back to it's original coordinates upon unparenting if "Keep pos..." wasn't checked.

Tuesday, 29 March 2011

Day 17

Interview at NUS

Met Prof Wong and Prof Nakatsu, the atmosphere is the room was casual which was unexpected to me. Started with an introduction of myself, they wanted to know what i was currently doing and what i am looking to do in the future. Said i plan to apply for Lucasfilm's Jedi Master program after my polytechnic studies, Prof Nakatsu was questioning whether this program is happening locally.

My reply was yes, in singapore but felt a little embarrassed when I explained the company was in the states, wasn't certain if they were extremely knowledgeable on animation/visual effect firms so...
Lucasfilm is well-known of course he knew, silly me. We laughed it off and moved on.

Prof Wong asked if i had any work i could show them, didn't have a laptop of my own so i just dumped my demoreel into my iPhone the night before and fortunately they didn't mind watching it through the tiny display. Briefly explained to them what was happening in the reel.

Another question was whether i did any freelance work in the past, Rap and myself came across this lady who wanted animation/photo montage for her upcoming wedding. Shared with the 2 Profs that the animation was a short story of how they got to know one another and the video was completed using Photoshop and AfterEffects. I was really nervous actually had the video in the phone but failed to show them as i was blanking out occasionally.

Was really worried my jaw would be shivering like back in Interview#1, felt good about the entire thing. I was always bad at being interviewed even though i aren't young anymore, used to try to avoid interviews as much as i could.



- being strange lately, visiting forums almost everyday even though I'm at home. Don't do that often in the past, probably a "side effect" from doing FYP.

- Watched "Sucker Punch" yesterday, it's not a bad movie! Emily Browning looks better in it than she was back in "Uninvited".
Day 16

Setting up the camera's resolution, with a simple expression in yres. Can conveniently change the render resolution by changing xres, switch to a lower res for quick renders.













Sampling increases render time as usual.

Enabling "Adaptive Sampling" speeds up the render by calculating which part of the image requires more or less sampling.

"Background Colour" contributes light into your scene, the same way you add colours in Maya's environment tab and render with final gather.








Light/shadow linking.
When an object is unlinked from shadow mask, it's name will be added to the light's Shadow Tab > Shadow Mask. The same can be done by typing the object name in. The same applies to Light Mask.

I came across the usage of "^" when excluding an object from shadow mask previously while researching on HDRI.
Here's the thread, Mr TK happen to reply too.

http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&p=101916#101916

Monday, 28 March 2011

Day 15

Testing the 2 ways of achieving Global illumination with Image-based lighting.

First was done by creating environment light and applying an image in environment map.

This one had noise which can be resolved by increasing the "Pixel Samples".

Second was using Light Template and assigning a light shader called "gilight". Apply the environment map in it.




Researching on Global illumination purely from using Light template_gilight.

Tested it using micropoly rendering and physically-based rendering.

When rendering with PBR, the value of "Diffuse Limit" under PBR tab has to be above "0" to get the bounce light, 1 = 1 bounce and so on. (Like final gather's secondary diffuse bounce)








This is global illumination on a shader level. By adding "irradiance VOP" inside your shader, GI will be rendered on which ever geometry with that material.

The other gray torus has the exact same material which does not contain "irradiance VOP".


Another thing picked up today was the "Headlight Creation" checkbox in Mantra > Objects Tab. This switches on/off the default lights created, start with a completely black render when dealing with lighting.

Friday, 25 March 2011

Day 14

Second review with Mr Douglas

At one point both him and Mr Ron were talking the primitive state of up-ressing simulation, particles from POP_net were sampling velocity of the fluids. We're allowed to pour out a lot of particles without affecting the playback very badly.

http://vimeo.com/13977099 (up-res fire effects)



HDRI in Houdini

Looked up on tutorials, this is what i found.
http://nccasymposium.bmth.ac.uk/2008/ahsan_zohaib/tutorial.html

Did this numerous times on Maya, it seems fairly different in Houdini and i am unsure how Mantra does it without final gather. There were some differences in the interface as the person wasn't using Houdini11.

This is what was rendered out upon completion, it was far from what the tutorial person achieved, posted on forum & hope i get some guidance meanwhile i will try to figure it out.

Downloaded a free image from www.hdrlabs.com. This site provides awesome resources and information on HDRI!



Wednesday, 23 March 2011

Day 13













The AO file from forum (Jeff) I opened at home which wasn't rendering properly works when I opened it in school. Better don't condemn a file before trying it on 2 stations.


My version of AO didn't work despite following the same set-up. Mr Ron said to troubleshoot by removing 1 variable at a time. The problem was only solved when we copied his Mantra Surface Shader over to my file, which didn't make any sense.

Making different variations of the liquid shader, advice given by Mr Ron was to place a background with UVgrid behind to be able to better visualise the how the fluid look, had one with motion blur enabled as well.





















This FLIP fluid v004 was rendered with bL_murky_v003 material assigned to it.
FLIP fluid v003 started evaporating or bursting around at the end of the simulation, Mr Ron suspected that the Curl Noise in the POP_Solver was too high, at the same time the "Step Size" was increased and ticked "Ignore Mass" check box in "Curl Noise" & "Drag" POP.



It helped but the sink was right in front of the camera so the fluids disappeared as soon as they reached the camera.


Day 12


Downloaded a terrain OTL (http://www.sidefx.com/index.php?option=com_wrapper&Itemid=149) to build a simple terrain to play with around.
Changed the emitter to a grid from the pre-built one.




Writing out .sim files for flood_render_v003. Was confused with terms people are using (simulate, bake, cook and cache), got Mr Ron to explain a little.

Cook - Cooking in houdini but not saved to disk.
Bake - Files are saved out to disk.

Monday, 21 March 2011

Day 11

Turbulent Trails (Peter Quint)

While following this video, I picked up a new expression (frac). It converts any number to their decimal only, e.g. 2.8 to 0.8. It did make the new attribute numbers seems more neater but I wasn't able to group these numbers to make them emit particles. Maybe they were for viewing or other purposes.

VOPSOP was used again here to create "turbNoise VOP". Ramp parameter to control which part of the spline will have noise and another amplitude parameter. All multiplied together with the "turbNoise VOP".

I am still confused with the use of "AttributeCreate" and "AttributeTransfer".























AttributeTransfer SOP

Playing around with examples of AttributeTransfer SOP, was transferring colour information from a Line onto a Grid. I could control the "DistanceThreshold" & "Blending" after feeding the 2 inputs. Using "Cd" as we're transferring colours, used this quite often during the staircase bouncing particles practical.

Sunday, 20 March 2011

Day 10

Downloaded a terrain HDA from sidefx.com
Made it to have 2 hills on both sides, and tested emitting fluid from both sides.

The water were emitted in a very uniform manner, added "Curl Noise" and "Drag" in "Popsolver".
Carried on tweaking the step size and thickness of the liquid.
Stopped emitting particles after frame20 as test rendering was getting slower.




















Whitecaps and IFD format, more updates to come.

Day 09

Meeting the cilent, Mr Douglas

- Focusing on achieving large scale effects over photorealism
- Clearer/cleaner water from hydra's breath, dirtier water upon contact with terrain
- Voxel fluid to fill up most of the volume & FLIP fluid on the surface.
- Shader from Houdini Ocean Toolkit.

He shown us a test of FLIP which i think was rendered in AO. Haven't really checked out AO was rendered in Houdini, done it lots of times in Maya. :D

Method 01 (envLight)

- Applying "Clay" material to all the geometries.
- Create "envLight" > Light Tab > Render Options Tab > Rendering Mode: Ambient Occ.(Should also disable the light so its not contributing light to the scene)
- Create "Mantra" > Object Tab > the envLight was added under "Candidate Light", appears that this will render out the AO Pass but i felt it kinda made more sense it was done under "Solo Light".

































Method 02 (Occlusion VOP)

- Creating "Occlusion VOP" & "Parameter VOP" within "Mantra Surface".
- Promote the parameters you need in "Occlusion VOP" & setup the "Parameter VOP" like when you are exporting image plane. (Not necessary to feed into output)
- Create "Mantra" > add image plane.




















More details can be found in here:
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=21763
(by Jeff)

The file wasn't rendering the AO as expected, it turned out all white even after i looked through some of the possible settings that would caused it. Awaiting reply from forum.

Found another post relating to AO where the sample file works:

http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=21746&highlight=ambient+occlusion
(By Soothsayer)

Wednesday, 16 March 2011

Day 08






















Deep Shadow v.s Depth Map Shadow

Deep shadow are controlled by resolution like depth map shadow but unlike depth map shadows which are 2D, they are 3D.

Deep shadows collects colours from all the transparent surfaces until it hits an opaque surface, while depth map shadow hits the closest surface only.

  • Deep shadows have transparency shadow & anti-aliasing.
  • Deep shadows takes more disk space and more time to render.
  • To use deep shadow, turn on "transparent shadows" under Shadow Tab

From houdini doc, pasted them here to share & easy browsing

Tip: When rendering with physically based rendering, shadows are rendered automatically.

Note: When rendering with physically based rendering, shadows are rendered automatically.















I was introduced a few more parameters I could play with in the "Particle Fluid Surface".

Surface Tab
Step Size - Controls the polygon size.
Surface Distance - Thickness of the fluid.
Surface Tightness - Tightens the surface around the fluid particle.

Houdini doc

Tip: Adding the "Peak SOP" after this node, with a very low Distance value such as 0.01, will make your simulation appear less blobby. This is useful for simulating any organic fluid, such as splashing water.












Attribute Tab

You are able to transfer attribute (velocity, colour and normal) to the fluid.

Note: Without velocity (v), you will not be able to get motionblur.

Was in a situation where Mantra 11.0 cant be found in "Edit render parameters" and the shop context was completed replaced with mentalray stuff.

Wasn't familiar with Houdini's preferences but a forum dude helped me get it back by Edit > Prefs > Rendering > apply "Mantra".

















Forum:

http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=14223&highlight=water+shader

Following the thread provided by Mr Ron, it was said when working with liquid shader, we want to use attenuation instead of diffuse.

It was done by making "AttributeCreate SOP", to act as attenuation colour then play with the "Attenuation Intensity" & "Attenuation Colour".

Tuesday, 15 March 2011

Day 07

I encountered a problem where my primary and secondary colours were not updating in the Shader View. At first I assume Houdini's shop context was buggy similar to yesterday when I was tweaking the opacity parameter.

Mr Ron figured it was a silly connection between "Normalized Incident" fed into "Add" which was left after I deleted a node between them! The colours returned to normal and he moved on to showing me sprites following a post on odforce.

http://forums.odforce.net/index.php?/topic/12543-photorealistic-water/
(High pressured, fire hydrant which could be considered for the hydra's waterbreath)

http://www.youtube.com/watch?v=srgC6chysew
(Water Hydrant Spraying)













With an image with alpha channel like the one below,
we are able to use it as sprite and together with motion blur, they will look like high-speed water sprays. Mr Ron set up a simple test hoping to proof it works.

Here are the completed renders from last night:

Thursday, 10 March 2011

Day 06

Back to playing with the shader I was working on, looked at how some other users build their shaders. I learnt how to include an opacity parameter into mine, it was much simpler than expected.

Create "Parameter VOP" > feed it into "Output" Of input.

Initially thought it was too good to be true as the Shade View did not update the transparent result, rendering frame shows it works.





Test rendering of FLIP fluids with the fluidShader_v003 and Mantra Surface.

Forum:

Came across a real nice .pdf document on Shading & Rendering in Houdini over at odforce.

http://forums.odforce.net/index.php?/topic/12365-shading-documentation/

There were information on different rendering algorithms and what individual parameter in Mantra Surface Shader do.

The part that I really find useful would be this.



Understanding what you need

Well it is often best to think of what you are shading for, since as of h11 all the different shading networks have been combined into one working environment.

  1. Are you creating a displacement, surface, light, shadow, or fog shader?
  2. If you are doing a surface shader are you using PBR or non-PBR settings?
  3. Are you working with a normal hard surface object, hair, volumetrics, points clouds, i3d, etc.
  4. What type of components do you want in this object diffuse, reflections, sub-surface, alpha.
  5. What type of shading over area system do you plan on using such as UVs, Ptex, Point clouds, attributes from sops.

After asking yourself a bunch of these question you should create a list of the components you want and from here you can begin to select nodes that you can use.
Day 05

Got 2 variations of the fluid shaders so far.

Read houdini help on nodes like Refracted Light, Refract, Reflective and Reflect.
Experimenting with them didn't get me far, seems like the settings were way too high or I broke the shader. Here are some of the renders.


























Forum:

Hopefully somebody can give me could give some help on how I can go about setting up some parameters.

http://forums.odforce.net/index.php?/topic/12803-creating-a-liquid-shader/

Wednesday, 9 March 2011

Day 04

Googled on "Houdini's Material Shader Builder"
Here are the info from Houdini 11 Documentations.

New material workflow

  • A material is now a SHOP containing a VOP network with multiple output nodes for the different contexts. This lets you share parts of the network between different contexts.

    The old material-as-subnetwork workflow is still available as a SHOP subnetwork, however we recommend using the new Material shader builder SHOP since it is much more powerful and flexible.

  • New Properties VOP allows you to add properties inside of a Material shader builder SHOP to support the new material workflow.

  • New delayed load procedural VOP lets you to add render procedurals to support the revised material workflow.

  • New Collect VOP collects the results of the Output VOPs for the different contexts in the Material shader builder SHOP network.

  • New Switch VOP lets you switch between results of different Output VOPs in a Material shader builder SHOP network.

  • You can compile VOP shader networks into VEX SHOPs or digital assets.

New surface model VOP

  • The Surface model VOP provides advanced, ready-to-use, production-quality surface shading, with support for per-light exports, physically accurate subsurface scattering, energy conservation, reflections, refractions, fresnel, and more. The surface model VOP works with all Mantra render engines (raytrace, micropolygon, and PBR).

  • The new surface model is the basis for new, more flexible materials in the material gallery.

    Older materials have been removed, but can still be loaded from older versions of Houdini. Going forward we plan to replace the old gallery with new materials based on the surface model VOP.

I decided to start building my own using "Material Shader Builder" and "surfaceModel" as the main body which offered the parameters I wanted to incorporate in the fluid shader I am making.

Only added a "Specular" node but little confused between the specular in "surfaceModel" & "Specular". It seems to offer more parameters. Promoted the parameters I find useful such as Diffuse Colour, Reflection Intensity, Refraction Intensity, IOR and SSS.





















Forums:












Found people discussing about a displacement shader named "choppyWater", felt it could be useful. Mr Ron demonstrate on how it can be used for displacing and even animate the noise.

http://forums.odforce.net/index.php?/topic/12439-question-about-houdini-choppywater-displacement-shader/

While exploring odforce.net, I came across someone else's problem with exporting passes. I knew the solution after watching Peter Quint's videos on Surface Shader, wasn't expecting my first post to to be giving solution to someone, very nervous about giving a lousy or wrong information. Gave it a shot anyway.

http://forums.odforce.net/index.php?/topic/12792-reflection-and-diffuse-from-bg-geo-using-pbr/

Questions:

- "Surface Shader Builder" & "Material Shader Builder" in shop context, it was said on the forum they are PBR and non-PBR respectively. But "Material Shader Builder" actually has a BSDF output in it which is used for PBR, confused.

- Why are we normalising "Normal" and "Incident" vectors?

Normalised Normal means it's length is '1', like a unit vector. Makes all the normals on the model equals to '1'.

- How to preview my shader with different geometry and backgrounds?

Use "Shader View"

- Using "Float to Vector"

There are cases where you might want to feed a float output into a vector input, inorder to do that, you have to use "Float to Vector". There are a lot more of conversion in Tab Menu > Convert category.

Tips:

- Combining 2 shaders into a Subnetwork

Select them > Shift + C
This was done to "Surface Shader Builder" & "ChoppyWater" during the demonstration.

- Viewing thumbnails in open browsers

Edit > Pref > General UI > check "Show image for image files in browser"



Day 03

Basics: Surface Shader II














Creating and promoting parameters to be adjusted in the material level. Changing the height and width of the gaps.




Using of "If - Then Bock" (if statement) which executes commands inside the node when the condition is true else the current value will be fed to the "filterstep".





















The "random" was used to apply mandril image texture randomly among the checker pattern.




http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=20985&highlight=fluid+shader (Subsurface Scattering)

The person who posted the above thread encountered problems while using SSS/PBR in Houdini11. Bookmarked it when i start playing with SSS, may help solve my problems.

Thoughts:

The video lost me whe n it started explaining the float to vector & vector to float part.

Haven't see anything related to building a fluid shader, hopefully all basics will help with understanding more complex shaders.

Tuesday, 8 March 2011

Day 02

Peter Quint's Video Tutorials: Surface Shader I

Note from PQ: It's easier to build a shader from existing ones in material palette.

- The tutorial was done using Houdini9.5 which still had VEX/VOP operators which were used to build your own materials. Most of them are gone in Houdini11 as "Mantra Surface" Shader was added, most of the functions from the previous VEX/VOP were compiled into it.



Mantra Surface is energy-conserving, making it more physically correct just like mia_material from mentalray. In addition, Mantra Surface offers Subsurface Scattering (SSS) within it which mia_material does not.

Looking at shaders built by other artists on the forums, they consist of "surfaceModel" within their shop context. Same node found in Mantra Surface where you can find Diffuse, Specular, Reflection, Refraction, SSS, Index of Refraction (IOR), Fresnel and Bidirectional Scattering Distribution Function (BSDF).

Leaf Shader - http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=20988&highlight=shader

There was an explanation on micropolygons and the vectors in it such as s, t, normal vector, incident vector (believe to be the camera), L vector (Lightsource).






Also learnt about the output node at the end of every shader,
Cf = Colour
Of = Opacity
Af = Alpha
N = Normal
F = BSDF (used for Physical-Based Rendering, PBR)


Thought:

I want to build a water/liquid shader so it would be to start with surfaceModel node.
Definitely want diffuse, specular, reflection, refraction, SSS and IOR in my final shader.

Sunday, 6 March 2011

Day 01

Setting up our blogs (Dragonflood)

Downloading Linux OS from www.ubuntu.com.

Mr Ron was going through the storyboards with a flood spitting hydra.

Checking out sidefx.com and odforce.net forums.

There were some fluid effects where Percy encounters the multi-headed hydra and in pirates where they fell over a huge waterfall. Found the waterfall a good reference for the sh160 where the earth splits apart.






























Watching videos introducing volume, FLIP and SPH particles.

The more substeps performed, the longer it takes to simulate.

Thus. FLIP (1x substep, fastest) > Volume (10x substep) > SPH (100x, slowest)

Volume and FLIP Fluids offers Bounding box/object to kill off any particles that leaves the bounding area, that way your system is not spending computational power to simulate them which can't seen anymore.

Distribution section explains how the various liquids' simulation can be distributed to different machines. The word "High Speed" means Volume & FLIP are more suitable for fluids that are fast moving (e.g. Water gushing out of a broken dam) while SPH are more suitable for slow moving particles.

Thoughts:

- Why doesn't SPH have a bounding box when it's the slowest out of the 3, shouldn't killing the unnecessary particles help with the speed?

- What makes SPH so much slower than the rest?






Watched videos on stormy ocean waves, there are foams and sprays.

- Are they created a separate particle like particle sprays or can FLIP/SPH?Volume achieve the same result?