Latest Entries »

Matchmove Reel 2012

Before I was working as a Generalist, I was a Matchmover…

Involved in camera tracking and facial tracking. Most camera tracking are for set extension as well as visual effects purpose. Part of the task involves object tracking as well.

Matchmove Artist on:
2011 – Captain America The First Avenger  (Credited)
– Layout for Set Extension (Approximately 7 shots)

2011 – Harry Potter and The Deathly Hallows Part 2  (Uncredited)
– Layout for Set Extension (Approximately 3 shots)

2012 – John Carter  (Uncredited)
– Facial matchmove of Tharks – Green Martian Clan (Approximately 14 shots)

2012 – Battleship  (Uncredited)
– Layout for Set Extension and Sky replacement (Approximately 10 shots)

2012 – Snow White and The Huntsman  (Uncredited)
– Layout for Set Extension and additional Creatures (Approximately 6 shots)

2012 – The Bourne Legacy (Credited)
– Layout for Set Extension and additional FX (Approximately 26 shots)

Matchmove Reel 2012


This was completed about a year ago. The task was to recreate a digital asset base from the real world, and the requirement is that it has to have more than four different surface quality. I chose razor as its more challenging in terms of surface shading. Below is a final render of the Razor.

Modelling was done in 3dsMax, and UV unwrap with Maya.




Some mask maps created in Photoshop for certain details.


Some of the materials created specifically for the razor. Rough and smooth metallic surface,rubber, plastic, matte surface.


Didnt really have a good HDR to use for environment reflecting on the razor. But the render was pretty descent with the details in it. If theres chance, would spend a little more on getting the metal surface looking more closer to the reference especially on the razor body.


And last final render with Vray without grading in nuke and photoshop.


Strange Magic

This will be an update on some of the shots done for Strange Magic as a Generalist. A variety of tasks covered such as 2D projection in nuke, Texturing, Digital Matte Painting and 2D animated elements.

This is the opening sequence. The task was to make sure the Clouds have proper lighting direction. And there was a moment where the sunlight was shining from above which there will be shadows cast beneath the clouds. It was pretty challenging as to know how much of shadow and direction it needs to be filled in.

And also taking care of the far background forest of trees.

These are few of the shots thats was also dealing with the sky and far background forest of trees. Most of these shots are 2D Projeciton in nuke.

As for this shot, the task was the fill in details, shadows and depth to the ground where the character is seated on. I had to get the details painted out in photoshop and 3D projection it, color grade it back in nuke.

For this shot, its more of a challenging task. The initial take was the tree bark texture were too low resolution and less detail. I had to get a higher resolution texture back on it, and also get the lighting direction correct in that shot. The texture was done in photoshop and later 3D projection back on the tree geometry in nuke.

As for this shot, it was just a 2D crack painted in photoshop and 3D projection back in nuke. And also animate and time how the crack reveal.

This is the final shot for Strange Magic. I was appointed to create a sunset like digital matte painting. It was pretty challenging task! First of is to get the mood to look correct, and next was how the lighting direction would be. Had to go through a number of sunset reference to understand how the clouds would sit in the sky and how would the sun would lit them from a certain angle.

*Will update with the final shot video soon!*

Will be updating the next project later this year! Heres a teaser of it:)

Will be sharing two projects that were completed over at Industrial Light and Magic (ILM) during 2014 under the Generalist  discipline. Majority of the work done were plate reconstruction, sky and clouds extension.

1st Project



Transformers 4 Age of Extinction ( Completed 3 shots )



This was the first plate reconstruct shot done over at ILM. It was challenging! In the original shot there was a pole and a crane,smoke,sparks and debris in front of the silos (as indicated in the reference image above in green). All of those elements have to be removed for additional FX as well as animation of Optimus Prime piercing through Lockdown with his sword. The plate reconstruct work were done in Photoshop, painting out the pole and crane. And nuke projection technique to project back onto the original plate for additional stuff.




The other two shots were just adding far background 2D extension of Hong Kong cityscape. Its just to help tie in the shots where the silos are to Hong Kong.


Unbroken ( Completed 4 shots )

There was a sequence filmed by the pool side with a blue screen behind. The tasks were to have clouds and skies digital matte painting to replace the blue screen (as indicated in the below images for reference). It was a big challenge for me as a new Digital Matte Painter! Ive to get the clouds to look like they are sitting on the horizon of the sea and also have the clouds to have details showing where the sunlight is coming from, the depth of the clouds that were sitting in the blue sky.










Next update will be Strange Magic which approximately 34 shots were completed 🙂

There were various tasks done for Strange Magic that includes texturing, lighting, sky and clouds extension, 2D gag animation, paint patch and set extension.

Couple weeks ago only I knew my work was featured at Photoshop777. Its a Japanese Blog or CG Blog that I wasnt aware of which until I notice it was showing under Top Url Embeds in Vimeo from Ken Texture Showreel 2013. They have featured three CG works in there, Sea Turtle, Samurai Helmet and Dilophosaurus.

Its encouraging how hard work paid off and appreciated by other people over the world. Very grateful and appreciate it Photoshop777 🙂

Heres a banner that was done long ago before AmazingBeggars WordPress was setup. 🙂

We often use tileable textures for Asset Texturing and will have to check the tilebale UVS in UV Texture Editor in Maya.

In Maya the default Grid display is only showing (0,1) UV space. In order to display more than just that, in UV Texture Editor, under the View Tab, click on the square box thats next to the Grid option.

By changing the values in the Size tab from the pop up menu, you’ll able to display 0 to 10 UV space.

Below is an image demonstrating how to setup.

Next up is Translating UVs Space.

At times we have to shift UVs from certain UV coordinate to another one without moving it manually. Thats because when a Texture Map is done and its shifted to different coordinate in UV space, the UV has to match the Texture Map accurately. Theres a way in Maya to do it, its actually pretty straight forward.

In the Script Editor, whenever the UVs are shifted it will print this message –

setAttr “polySurface1_polySurface17Shape.uvPivot” -type double2 0.932446 0.49605 ;
polyEditUV -u 0.428196 -v 0 ;

Notice the second line polyEditUV -u 0.428196 -v 0 ; , its actually showing the coordinates of where the UV are shifted in u and v space.

So by editing the values of u and v in the script you can maneuver the UV space accurately according to your preference.

Below are the commands that you can shift the UV in space by Left, Right, Up and Down. And make sure these commands are executed under the Mel Tab in Script Editor.

polyEditUV -u 1 -v 0 ;

polyEditUV -u -1 -v 0 ;

polyEditUV -u 0 -v 1 ;

polyEditUV -u 0 -v -1 ;

Alternatively these commands can be saved as shortcut buttons by highlighting the command and middle mouse drag and drop to your preferable Maya Shelf 🙂

Its been awhile since the last update. However there will be some updates on Generalist and Digital Matte Painting works coming very soon done at Industrial Light and Magic in 2014 and 2015.

A little teaser of the four shows thats done 🙂

Last update for the year 2014. Its a gold paint on cast iron kind of shader.

Searched through some reference and came upon this buddha statue reference. In the beginning it took quite awhile to figure out whats the base material like that is used to create the buddha. It looks like cast iron thats a little rusty on the surface. More likely to be oxidize for quite awhile. And from the reference, it looks like the buddha statue was coated in gold before. However some paint has been worn off and revealing the base material which is cast iron.

So first shader created was the cast iron shader. And followed by the gold paint shader.

And then blend this two shader together with a mask.

Theres two specular created for this shader. One was to control a more glossier specular on the gold paint area. Which is colored in orange as theres some of it in the reference. And another tighter specular on the material itself.

To achieve dual specular effect in Vray, i used vrayblendmtl and turning “Additive (shellac) mode” on. An error message will prompt saying that by doing so it will break the energy preservation law. Meaning it will go against the physical material law assuming. There was another spot light placed on screen left just to test the dual specular is working as seen in the final render.

Till then 🙂

Basic Scripting 001

This is an entirely new section on basic scripting in nuke script editor for personal reference only. There are couple of things to understand in scripting, which is Scripting Language.


“A scripting language or script language is a programming language that supports scripts, programs written for a special run-time environment that can interpret (rather than compile) and automate the execution of tasks that could alternatively be executed one-by-one by a human operator. – wikipedia”


Data types


variables = A variable in a shell script/script editor means of referencing a numeric or character value. Qoute –

However, programming is not limited only to printing simple texts on the screen. In order to go a little further on and to become able to write programs that perform useful tasks that really save us work, we need to introduce the concept of variable. Qoute –


string = An example of compound type is the string class. Variables of this type are able to store sequences of characters, such as words or sentences. A very useful feature!

A first difference with fundamental data types is that in order to declare and use objects (variables) of this type, the program needs to include the header where the type is defined within the standard library (header <string>) Qoute =

To recognize a string, there is always an open hyphen. There are also various hyphen and brackets in script that are like ” ” , (  ) , [   ] , {  }

On the above case, python cant recognize dog as a variable because there isnt an open close hyphen on it.

With the open close hyphen, python can recognize its a variable and will print – this is dog

For example “apple” , “doctor” , “dog” , “this is a string”


integer = integers are numbers,whole numbers that are not 11.5 , 5.5. They are  ( 56 , 23 , 5 ,11 ) In script editor it will be typed as int


float      = floating numbers. For example ( 1.0 , 5.1 , 88.5 )


print = to execute commands. For example: print(“Today is a good day”)


*The reason why there are data types in green or red is that python has reserved them for certain functions.

*There are times when script has an error that says – TypeError: cannot concatenate ‘str’ and ‘int’ objects

concatenate means combine, in this case it means a string cant be combined with an integer (number)

In order to solve this, we should tell python that the integer is a string in order to print out the result. By adding str + (  ) it should work, put the integer into the bracket.

Below are a couple of examples on how does these data types works with each other.

Python is able to add both same data type together. For example on the above case, it is able to combine two variables together without the open close hyphen.


On above example, because all variables are integers, python can add all of them.


python can also recognize integer and float together.


You can also create a variable to add two integers together.  Above is an example.

By printing the result of the variable it will add the integers.


As for this, we will need to tell python theres string and integer to be executed. So we have to put str(  ) for the integer in order to combine both info together.

Will continue with more information on the next post 🙂

An update on a new shader – Wood.
Initial approach was to start from sculpting out the details of wood on the geometry surface. And later extract cavity map as guide for texturing. However it didnt work that way. It looks almost like some kind of mud,rock surface. The displacement of the surface is probably too over.
So instead of jumping straight to sculpting, start off by doing a quick paint over and see how the final result would most likely be.
And then start off with texturing using photo reference to get the feel of it. Once thats done, i hopped over to lookdev just the sphere geometry itself and see whether the direction is right. It turns out pretty well. Starting to look like wood and also the characteristic is popping out.
One of the thing to take note was getting some bounce light on the surface itself. Because the reference image has such info, as well as some semi polished wood would catch some bounce light. Below is a couple of test on the different values keyed in primary bounce. The last one with a value of 100 is way too over, almost as if the wood is burning.
Heres the final result of the Wood Shader. Pretty much satisfy but would be great if ive some time to enhance its character a little more interesting. 🙂