Latest Entries »

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. 🙂

This is just a documentation of Maya 2014 and 3dsMax 2014 cross platform check on Camera and Geometry. At times, there are needs to transfer scene from one to the other application for certain purposes say like rendering.

Lets start with Geometry. Couple notes to take note of.

– Both Maya and 3dsMax Unit preferences. They need to be set to the same unit scale in order to work.

Maya – under preferences – settings – working units – linear

3dsMax – Customize – Units Setup – System Unit Setup

*In 3dsMax, whatever System Unit Scale is set, it will read the Unit Scale from there.



For geometry to work correctly, exporting Obj should do the trick. Below image displays a geometry created in Maya and exported out as Obj and works well in 3dsMax with the unit scale as Centimeters.



Theres a question where you will notice the X,Y,Z axis on both Maya and 3dsMax is not showing correctly. However the geometry is sitting correctly on the grid.


You can also simply create a cube in Maya with the measurement of 1cm x 1cm x 1cm,with unit preferences set as Centimeters, and bring it over to 3dsMax. If  3dsMax unit scale is also set to Centimeters, you will notice the cube is the same size. To double check,by going to command panel (Customize – Show UI – Show Command Panel), in 3dsmax, go to the last tab, Utilities and go to Measure, it displays 1.0 unit on X,Y and Z under Dimension.



Next is Camera. From Maya to 3dsMax, fbx works well at the moment.


First thing just create a camera in Maya and export it as fbx and import into 3dsMax. FBX Import window will pop out and theres couple of things to check, make sure Animation is checked if the camera has animation, Cameras is checked. And take note of Scale Factor is at 1.0 under Advanced Options – Unit.


Camera exported from Maya as fbx should be sitting correctly on 3dsMax even though the axis is still incorrect.


Another way to test is to try out with an Animated Camera. It is still the same method, by exporting the Animated Camera from Maya as fbx and import into 3dsMax with the settings mentioned above.

Below is a clip displaying Maya Camera exported as fbx and working fine in 3dsMax. First half Maya and Second half in 3dsmax.



*Apologize on the second half is too dark where the Geometry is not that visible. But the Animated Camera is working fine in 3dsmax.


This is another clip viewing from the Camera.


Will update once there are more solid technical proof on this topic 🙂



Its been busy lately but Hey~ Heres a small update on the Vray Surface Materials thats still on going!

Its the Rock Surface Material. Took quite awhile to get the look and demonstrate how a Rock Surface should look like in both lookdev and texturing.


The initial test done looks flat, more towards like a stone.


The identity of a Rock gives a sense of its a hard surface object that can be used a a weapon, caught a bruise when got scratched by it. Spent some time to analyze the look of it, the silhouette should give a sense of danger, sharp edges, pointy corners. These are some of the characteristics. Of course, you can argue there are some Rocks that are smooth. For example those you can find near seashore. The reason why its smooth is because the sea water ‘brushes’ the surface everytime it contacts the Rock surface.

The aim here is to achieve a Rock that has sharp features on it. This is a Displacement Map rendered image from Vray.



This was the settings for exporting Displacement Map from Zbrush for Vray purpose. And also the Cavity Map settings.


*Still exploring which is a better way to export DSP *Displacement*  Maps from Zbrush for Vray to render better.

This is the final look of the Rock Surface Material. The texturing process is also challenging to deal with. Its not just about slapping on Rock Textures on to the model. Because there is a certain texture look on a Rock base on the surface pattern on it, by exporting Cavity Map and use it as a guide line to place the texture and details in is a better way.


Will update a new one when its done. Enjoy!