Saturday, November 16, 2013

Maya Fluids Training Part II

 Oil Fire

Working With Textures

Picking up from where I left off in the tutorials; in this tutorial I learned some more about working with texture incandescence. Not only am I changing the texture time over time but I am also scrolling the texture in the direction of the smoke to give a little bit more life. As a side note, it bugs me that I didn't realize the smoke was hitting the fluid container until I was done rendering eight hours later.

Wispy Smoke


The emitter for this fluid is a plane under neath the grate. I used a perlin noise texture and animated the texture time to move using an expression. The texture was then used to change how much the plane was emitting depending on it's grey scale values. The emitter's density emission value as a whole was also animated to create puffs of smoke over time. One of the challenges that I came across was having the emitter emit near the center of the plane only. I couldn't figure out why for a while until I changed the number of vertices's the plane has.

Wednesday, November 6, 2013

Maya Fluids Training Part I


More Maya Fluids

I decided to focus some more on Maya Fluids for VFX texture generation so I picked up a tutorial from Gnomon Workshop by Wayne Hollingsworth. These tutorials can sometimes be hit or miss but this one is fantastic.

What I learned

I've used textures in fluids and just kinda went "yeah that looks right." However, this time I animated the texture so that it doesn't sit still throughout the ordeal but changes over time breaking up one of the typical VFX killers, noticeable repetition.

Another neat trick I learned is how to break up the Maya Fluids initial emission mushroom by simply animating the emitter's turbulence to be very high at the start and tone it down after a few frames.

Tuesday, October 29, 2013

Faking Refraction

Droplet Distortion in Unity for iPad

The start of the video rendered a little screwy


My team needed an indication for when the player's boat was hit. I offered to make it look like water droplets were flowing across the screen with the typical red edges you see in a lot of games these days. I opted to go for a lean post process effect (14 pixel shader instructions).


UDK Shader Tree Prototype

Things to keep in mind

  1. Water refracts
  2. Refraction can lead to magnification
The goal here is to grab less UV's around the droplets and then move them out of alignment slightly. This will make it appear as if the image is being magnified and refracted. The droplets shape dictates how this happens and a normal map can do a good job at indicating the weights of the UV distortion. One of the first things I did was bring the red and green channels to to go from [0,1] to [-0.5, 0.5] . This allows me to grab the proper UVs in the direction of the normals.

But how about Fresnel? The Fresnel was literally made for this sorta thing but we are in tangent space with technically no camera.  Solution? Use the blue channel of the normal map. We want to clearly see through the front parts of the droplets but get more distortion along the edges. I invert the blue channel so that flat portions are now 0 and multiply it by the RG channel. Doing this wont distort UV's that are not part of a droplet since we are multiplying by zero. As a side note this is the same as having a camera placed at (0,0,1) and using a Fresnel since the RG channels would wind up being zero when dotted.

Lastly, I have a scalar multiplication at the end to control the whole thing. Oh and you may be wondering why I have that green channel being piped and multiplied in as well. Honestly, that was just intuition and messing around. I ended up liking the result a lot better. This whole thing ends up being added to the texture coordinates of an image as distortion.

Faking Refraction in UDK

Improvements and Polish

The water droplets are pretty stagnate and becomes more evident once they start popping out more. One way to fix this would be to flip book through a set of droplet normal maps to make it look more like the water droplets are changing shape. This would effectively also add trails to the droplets.

A small splash particle effect on the screen could also help the player notice he's being splashed on the initial strike.

Lastly, droplets tend to have some shadowing and lighting. Using a gradient map of some sort could help sell this effect.

UV Flows on iPad

I rendered the video on my pc and the water droplets tend to flow in the wrong V direction. However, they flow in the right direction on iPad. I guess it's just a strange quirk.

Friday, October 25, 2013


Fire - No Flip books here.

I recently watched a tutorial by Doug Holder of Naughty Dog. He went over making some fire using distortion maps. While the concept isn't new to me, learning how a Naughty Dog VFX artist uses it was certainly neat. I especially payed close attention to the texture generation portion. A built-in 3D fluid container was used from Maya for the fire base. Rendering clouds in Photoshop and shearing them in two different directions, and assigning them to the red and green channels were used to distort the fire texture.

Wednesday, October 16, 2013

Flamin' Volcano


Active volcano by the sunset

Smoke Puffs

The smoke puffs are a bit over saturated in the video. H.264 seems to like to do that. Anyways, I started this by using a tutorial found on ImbueFX to learn about having lit particles. You can see me changing the directional light's angle and having it effect the smoke in the video.

A normal map was created procedurally in the shader. The Light Vector was then used to light the particle using the created normals. It's essentially using Lambert lighting and suffers from all the problems that come with it but it's fast and good enough for smoke with no sub surface scattering or inner shadowing.

Another issue that the particle system is that it appears that all the particles must be lit (by the same light) before the particles are actually lit. I think this has to do with UDK's implementation of the Light Vector. I originally tried to only light the bottom part of the smoke stack with this orrangy spotlight but it just wouldn't take. However, you are able to light your particles using more than one light as I did in the video.

Rolling Fire

I reused the explosion material from an earlier post in order to create this fire. Since that shader was so customizable I was able to change a few parameters to get the right look of the fire. The particle animation however did take me some time. I wanted to make sure the particles blended well into the smoke puffs. By carefully changing the temperature and alpha curves and tweaking some color values I was able to do so.

Tuesday, October 1, 2013

Confessions of a Non-Art Major

Reading Reading Reading...

I don't come from an art background and knowing that manipulating color can make or break VFX I've been reading Color. The first chapter goes over ways of categorizing and organizing colors but the most interesting and commonly used one today that I've seen is Hue, Saturation, and Value.

HSV Color Wheel

Hue, Saturation, and Value

Most modern color pickers use something like the two images below to show HSV.
A Slice of the above pie
Another common interpretation but this one is actually for something called HLS. Very similar.
However, what do these mean and how are they important? First off what does each mean. Hue are you base color or Chromatic Hues. Saturation is how pure the hue is. As you begin to mix a Hue say for example blue with its opposite color in the color wheel in this case yellow, you begin to get a gray color. Finally value (also called brightness) is how close the hue is to white. This can lead to HSV having this weird top shape since as your desaturate your color you need less steps in value in order to get it to black.
Weird Cone Shape

So how is this useful?

Value can play a major role in how your effects are lit. If you have similar values (no matter the hues) you may end up getting very evenly lit looking pieces. If you stick to using smooth gradients in value you may instead get effects that appear to be lit from specific areas.

Of course looking at the color wheel can help you tell which colors match well (the opposite ones). This can also be called contrasting hues. These naturally help each other stand out more.

Monday, September 23, 2013


 UDK Explosion

Explosion! Bandicam likes to saturate colors

Textures - More

The textures I used could be seen in my previous post as well as more information on their creation. I used the red channel to save the temperature information, green for density, blue for the unmated alpha's, and the alpha channel for a dark to light radial filled "heat".
The combined texture ended up looking like this but with the above heat used in the alpha channel. The P-Mask created can be seen below.
Combined Texture (P-Mask) - What a mess


The shader was pretty large with around 50 instructions being done in the pixel shader but could be broken down into four portions Temperature, Density, Heat, and Opacity. Each portion primarily uses the channel in the texture provided for it with the opacity also taking advantage of the density channel. Macro-UVs were also used in the density and temperature in order to give off a little bit of that varying detail you can see when the explosion is slowed down.

Particle Animation

The explosion animation has five parts. Three are explosions happening in different directions with slightly different colors to give a little bit of variation and growth. I used a Dynamic Parameter with a uniform value in each of the explosion portions to give the shader even more variations in temperature, density, etc.

It also includes little flying chunks given an initial velocity and a negative velocity over time. The same method was used on the sparks however the sparks grow in the direction of their velocity. Also the sparks use a dynamically generated texture created in its own shader.

Thursday, September 19, 2013

Starting An Explosion

Maya Fluids Texture Generation

I've begun to use Maya Fluids to generate textures for an explosion. A volume axis field helped spread the fluid out in a spherical way, however, it was the temperature and turbulence that really made the explosion fluid explode.  It's also a good idea to remember to set the temperature buoyancy to zero or else your explosion will gravitate upwards.

I used after effects to control the growth and position of the explosion in order to make it look as if the explosion doesn't grow it all. This way I get to control the rate of it's growth in cascade (as individual particles) rather than have a texture with mostly unused space.

The explosion's density and temperature were rendered separately and can be seen below.



Tuesday, September 17, 2013

Burn The House Down - More Maya Fluids Practice

I made a burning house.

I made a house with different fire effects utilizing different techniques (with the help of digital tutors). There are a total of five fluid containers in this scene. This time the fires are temperature and fuel driven. I didn't make a video since rendering all this would have taken at least 15 hours on my current PC. Again, the goal wasn't to make a complete scene but to better understand Maya Dynamics so the fire colors don't match and the lighting is off.
The Burning House

The Front Door

The fire created for the front door is standard incandescence with a modified opacity graph. There is a rectangular emitter underneath the door. I only now realize it should have pushed further to theto the right along the x-axis.
Front Door Fire

The Overhang Fire

This piece is was done in a similar fashion to the front door fire however isn't as turbulent or hot. The piece of wood was also used as an emitter. A final volume axis field makes it appear as if it were being pushed around.
Porch Overhang Fire Close Up

Falling Fire Debris

I learned how to use Maya Particles as a fluid emitter here. The opacity graph really mattered here. Since I wanted the fluid to have more of a trail like effect more tinkering with the incandescence bias and  opacity was required. Although I wasn't to happy with the end result. They look too globular and am not too sure how to fix that yet.
Fire Debris Falling

Window Smoke

Density driven smoke. It also oscillates emission strength to give it that nice puffy feeling that smoke has. A directed volume axis field also made it puff away from the building without having to add a collider to the building wall.
Window Smoke

Fire and Smoke Blend

This one had fire and smoke being pushed out the same emitter and in the same container. This ended up working very similarly to the way real fire works. The incandescence dissipation (heat) essentially controlled where the fire would turn to smoke. There the density driven color shader would color the smoke. With the heat dissipated it would also then change the amount of energy in the fire producing slower heavier puffs. A volume axis field was again used to push the fire and smoke away from the building.
Window Fire

Thursday, September 12, 2013

Fluid Effects - Fire and Smoke with Particle Sparks


I made some fire and smoke using a digital tutors tutorial. A 2D fluid container was used for both. Overall I learned a lot and am happy with the results. I didn't pay much attention to the render details since my goal was to just learn about fluids. The tutorial also covered Maya Particles. So I learned how to make some sparks as well. The background was provided by the tutorial.


The fire is density driven. Density driven fire means that I'm not actually using the fluid fuel to generate Maya fire (and incandescence). Instead I'm using the shader attributes to modify the fluid color based on the density of the fluid. Combined with the opacity graph you could make very convincing fire. Finally uniform field can really make the fire look as if it's being blown violently by the wind.


The smoke is done in a similar manner but the density gradient force is positive instead of negative. Fire naturally appears to repel itself but smoke kinda clumps together. So it makes sense for the gradient force for smoke to be positive. Also turbulence and turbulence details go a long way.

Tuesday, August 27, 2013


Just started this blog and hoping to start posting later this week.