Monday, September 10, 2012

Final




This is the final version of my mentor project. These past few weeks have been focused on compositing. I'm really happy with how this project turned out. I was going for a Toy Story look, and I feel like I was pretty successful. My simulations turned out well, and the main focus: the gummy bear swirl is looking good. There's a few things I might like to tweak in the composite, but I have to move on to my next project and start preparing for a DOPs workshop.

There were a lot of challenges along the way with this project, most notably the lack of a renderfarm, which slowed down the last phase of the project. I really enjoyed the chance to play around in DOPs with FLIP fluids and experiment with different methods of controlling them. It was also very fun working with the bullet solver and creating custom ODEs. I learned a tremendous amount thanks to my fellow interns, the great staff at Side Effects, and my mentor Dennis.

I want to take this opportunity to thank Dennis for all the help and guidance he has offered throughout the span of this project. It has been a great experience working under someone with so much industry experience. I'd also like to thank the other interns, who offered their constant support and advice. Thanks to Aliza and Ari, who gave me the opportunity to work on these projects. It has been a wonderful experience so far, and I'm excited for what's next.

Tuesday, August 7, 2012

Rough Cut


Here is my rough cut of my final shots. Due to limited rendering resources, most of it is rendered at half resolution, but now I have at least a preliminary pass of most of my shots. I still need to render a final shot that pulls back and shows the giant gummy bear sitting on the desk. Looking at the pacing of the rough cut, I think I might need some additional frames of the second and third shot. The fourth shot is also cut a little short.

I still need to render out the rest of the passes for the melting gummy: refraction, reflection, specular and SSS. I need to render a sky pass to composite behind all the shots with windows. Another intern was showing me some very cool rendering tricks using volume displacement on micro-voxels, resulting in highly complex volumes that render very quickly.

The reflections on the pirouette can need to be sharper, all the animated characters need a shadow pass. Luckily, I baked out the shadows from the environment into the alpha channels of the volumetric light renders, this will allow me to mask of the areas already in shadow in the character shadow pass. I still need to do a simple POP dust simulation, and I'd like to do a caustics pass, but it's going on the back-burner right now.

My primary focus in the coming week is going to be SIGGRAPH, but hopefully on Friday and the weekend, I can get some full-resolution renders of the background elements and work on rendering out some shadow passes.

Tuesday, July 31, 2012

Initial Composite


I'm quite pleased with the initial composite for the opening shot. I spent today getting volumetric lighting to work and putting together the nuke script. There are still issues with the textures on the books and plastic bag, but that will be handled in the next round of refinement.

The dust right now is just some noise masked off with the volume light, in the future, this will be replaced by an actual particle simulation. My mentor recommended staying away from a cloth simulation for the curtains, in favor of a VOPs approach, which I think is a good idea. Next step is to go back and fix my shading issues and move forward into rendering the necessary passes.

Here is a short render of my refraction color pass for the melted gummy bears. In the final render the Desk, Wall and sky will be excluded, which should reduce the amount of refracted specular in the gummy fluid. Also my samples will need to be increased to reduce the amount of noise. These are minor issues though, since the refraction color will be masked off by a subsurface pass and combined with a diffuse, refractive and reflective pass.

Friday, July 27, 2012

Gumming up the works

Since the last post, I've been working on finalizing the FLIP simulation for the gummy bears and shading it. The simulation just needed some additional tweaking and came together quite nicely. One of the issues that I was fighting throughout the simulation process was the timing. I wanted to pace the evolution of the gummies in a very specific way, and my previous simulation times were very long (350-500 frames). This final version is appropriately long, and the giant gummy bear forms together in a smooth way, while still looking organic.



The next step, shading the bear, was an interesting challenge. The shader for the individual gummies uses sub-surface scattering and refraction; the subsurface color is tinted with the surface color, because each bear is only one color. When the fluid bears come together, all of the colors mix together. If the same shader was applied to the fluid, then as soon as the FLIP particles are not near the surface, their color is lost. I needed a way to influence the surface color using the FLIP particles in the middle of the bear.

My first idea was so use SSS point clouds, using the FLIP particles as the point cloud. The problem with this is that, since the point cloud is expecting pre-calculated illuminance values for the surface points, by plugging in the FLIP particles as the point cloud to be read at render time, you bypass the ray-marching that occurs during normal SSS calculations. Another aspect which doesn't work the same way as the real gummy bears is the fast that the color we see from the gummy bears is being refracted through the gelatinous fluid that is the gummy bears.

One of the other interns Ethan suggested a surprisingly simple solution. By using metaballs instead of the particle fluid surface, you can represent the metaballs as a surface or as a volume, and in this case, we want both. The basic premise is to create a fluid surface that is a purely refractive material, and then create a colored volume inside the bears. By reducing the density of the volume shader, the refracted rays accumulate the different colors of the volume as they are refracted through the fluid. This approach  worked wonderfully well, creating a look of a multicolored, semi-translucent material that is relatively quick to render.


This is only one component of the final composited image. I will also be putting out a SSS pass, to use as a mask for this refracted color, as well as a colored refraction pass, where the refractions are colored by the point color. The next step for this project is to get some passes rendered out and start working out the composite, then I can start refining shaders, especially for the environment, and lighting. After that it's on to rendering.

Tuesday, July 24, 2012

Lighting and Shading

This last week was very productive; I got the preliminary lighting and shading done. My inspiration for this shot is Toy Story, with saturated colors and lots of primary colors.



Most of the materials are straightforward hard-surface shaders, with the exception of the gummy material and the plastic bag material. The plastic bag material needs some refinement in the transparent area and the reflections. The gummy shader looks nice in this shot, really accentuates the shape of the gummy character. My initial shaders turned out pretty well, still need to tweak some aspects of the props in the scene, notable the pens and books. The wooden desk is reading a little plastic, and the texture seems low-res.


The wood seems slightly over saturated. The backs of the books uvs are smearing, and the AO is heavy. I like the clock, but I think that I might put a logo on the face of it. The bed frame is not quite detailed enough, but in the final composite this area will be blurred out by a shallow depth of field, so it shouldn't matter.


I'm really happy with the look of the pile of gummies in the air. The shader relies heavily on sss and refractions. I've noticed that it requires careful backlighting to look correct, and in this shot I think it's really working.

Tuesday, July 17, 2012

Animatic



This is my current animatic. After putting it together, I realized that I need another shot where the bear falls out of the bag. That will go between the first and second shot.



I've seeded a new FLIP simulation with the the final position of the bears in the RBD simulation. Right now, the sluif is spinning too much more my taste. It's causing all of the colors to mix together, and I want to have distinct streaks of the different colors. Also, the new spinning looks more like it's suspended in space rather than sitting on a surface.

There are a few ways I can go about fixing this, I am playing around with masks and fields in DOPs trying to get just the right look. Unfortunately when I moved my giant gummy bear goal shape, the FLIP particles began behaving a little more erratically. In the end they still take the shape of the bear though, so at this point it's just refinement.

Next step is to block in the lighting and begin some texture work, and nail down the final FLIP simulation. Once I get the floating points fixed and the amount of spin reduced, I can do a final resolution FLIP simulation. My point separation right now is at .1, and that's close to what I need. I think for the final simulation I'll reduce that to .07 or maybe .05. What needs to be seen is how much detail is still visible in the surfaced gummy bear particles; the fluid surface needs to have enough detail that the fluid gummy bears look (close-to) identical to RBD gummy bears.

Saturday, July 14, 2012

Environment and Animatic Progress

This has been a productive week for my project. In my previous post, I noted that I'd fixed the jittering issue and created a method of adequately shaping the gummy bear FLIP fluid. Since then I've fleshed out the environment and refined the RBD motion.



In addition to refining the RBD simulation, I also rigged and animated a simple gummy bear. The animated bear was imported into the RBD simulation as a static object, to help the incoming gummy bears react appropriately to the animated bear. One of the other interns, Ethan, showed me how to create custom ODEs that the bullet solver can use as proxy geometry for RBD point objects. This enables me to simulate 120 gummy bears at real-time speed.



At render time, the high-resolution gummy bear mesh will be instanced onto the RBD points, which saves a lot of memory since Houdini's Fast Point Instancing only loads one copy of instanced geometry into memory; it transforms the one copy in memory to match the point position, scale, orientation, velocity, etc.

The next step to to cut together an animatic by Tuesday, the only part I'm missing for that is the final shot, where the giant gummy bear forms and looks out the window and the shot preceding the above shot, wherein the lead animated gummy bear falls out of the bag and onto the table.

I also might include the following shot:

I like the low-angle, close-up view of the bears