Notes On Using Pref Or Position Reference Pass

V-Ray Limitations

At this time of writing, V-Ray GPU doesn’t render the Pref pass out using known techniques. So meanwhile, you’d have to use V-Ray CPU instead. Good thing, Pworld renders perfectly fine in V-Ray GPU.

Nuke Crashes When Using Pref Information

In Nuke, we can use the World Position Texture Projection node to project a texture onto a geometry using the Pref information.

The usage is simple:

  1. Feed in the Pref information into the “point position” handle and the desired texture in to the “src” handle
  2. Color pink the image to sample the vector information
  3. Click on “Bake Position” to store the information in to the node
  4. Viola! (hopefully)
  5. In my experience, Nuke crashes when I try to view the output. There’s no way around this unless we apply this following fix. In my case, V-Ray generated a value too large for Nuke to handle. The solution?
  6. Use a Clamp node to get rid of values you won’t use anyway, and you should be able to use this node with no problems.

Cheers! Happy comp-ing!

The World Position Toolkit I’m referring to is available at this link:

Wrap Deformer Test on Cloth Sim

A wrap deformer test on a terribly crude cloth simulation. The results look pretty decent for such a crude simulation. This concept when applied on a real animated project can possibly save a ton of computational time.

Another great advantage is that it overcomes the problem of simulation a clothing with thickness which tend to penetrate itself and gets pretty difficult to tweak. In this solution, the 0 thickness geometry drives a geometry with considerable thickness but because it was simulated at 0 thickness, it omits the problem of self-colliding geometry walls.

It’s difficult to explain in words, but perhaps some of you will get what I mean.

CG Water Simulation

Testing a new water simulation technique. I think the results are pretty fast and good. I’m excited to implement this new technique to upcoming projects.

CG Water Simulation

Brewing Storm Digital Matte Painting

Brewing Storm Matte Painting

3D Compositing using NukeX. The rough breakdown is in the video from the initial concept sketch till the final matte painting.

The Incredible Hulk

Here’s the break down of the lighting, rendering and compositing of The Incredible Hulk. I’d love to show the breakdown for the skin shading but it will take too long to edit and present those passes in such a video. But in any case, for those who are interested, here’s the Advanced SSS technique I used:

The Incredible Hulk by Ronald Fong

The Incredible Hulk by Ronald Fong

The digital set was created by me really quickly, I think it was only a couple of hours. The bulk of the time was spent on the character! Although it isn’t evident from this short video, the shading process of Hulk’s skin took the longest time and the most tweaking.

The 3D model of Hulk is generously provided by Ashwin Ramamurthy, a lead modeler at Lucasfilm. I did this exercise as part of my lighting course at NTU Art, Design & Media conducted by Xavier Bernasconi. He is a CG Supervisor at ILM and he’s amazing. He explains CG lights and shaders extremely clearly and systematically. Big thanks to him!

Feel free to drop me an email or leave a comment if you’ve any questions! Cheers!

How to create an Advanced Maya Skin Shader

Title: How to create an Advanced Maya Skin Shader
Description: A tutorial on how to fuse mia_material_x with misss_fast_skin for better control
Medium: Maya, Mental Ray

Problem: The specularity controls in the default MISSS Fast Skin Shader does not give good control over the specularity.

Solution: Use the specularity controls of mia_material_x with the sub-surface capabilities of the MISSS Fast Skin Shader.

How to do it:
For the MISSS Fast Skin Shader:
1. Turn the “Overall Specular” to 0.
2. Under the algorithm control tab, uncheck “Screen Composite”
3. Go to its shading group
4. Drag and drop mia_material_x into the following shader channels

  • Material Shader
  • Shadow Shader
  • Photon Shader
5. Plug misss_fast_skin.outValue to mia_material_x.additionalColor
6. Almost done! Notice the specular is “blown” due to the additional 0.5 color value by mia_material_x. Turn the mia_material_x.color from 0.5 to 0.
7. Make sure that both shading groups have their lightmaps connected.


Leave me a message if you have difficulty with this! Cheers!

Cube Explosion using Geometry-Driven Rig


An animation test using a simple script I developed called Geometry-Driven Rig (GDR).

Basically, this script allows the user to drive similar animations using a hidden geometry instead of using Maya Dynamics. This hidden geometry can be deformed in anyway using Maya Deformers (even blendShapes). This script may be helpful for creating explosions, quakes and cracks.

“Well, I just had to add a Maya Dynamic force field and let the computer do this calculation!” Yes, this simple animation can also be achieved using Maya Dynamics as well but it is harder to control and more calculation when on a bigger scale.

Note: In this example, the cube was shattered using a shatter script developed by davegreenwood called dg_Voro_Py

Falling Cubes – VFX Shot

Falling Cubes at the playground

Experimental / Research on HDRI Lighting Techniques in 3D Visual Effects Production

Photographed HDRI Panorama
Photographed accompanying backplates
Basic maya dynamics simulation
HDRI Lighting, Rendering and Compositing exercise

Calligraphy Ink Stroke Effect

Hello! :D

Channelbox is embarking on the Coke Zero Video Competition organised by Eyeka Asia.

As far as visual development is concerned, we are looking forward to some inking effects.
I achieved the following in Maya and After Effects.
This technique can be applied on to any 3D model, however it takes some time. I’m currently trying to simplify the process by turning this into a script.

Trying to avoid a total lift from our reference, I worked towards a more Chinese calligraphic style, hope it works for this production. ;)

hope you’ll like it, cheers :D

Available in Fullscreen High-Definition