Ambient occlusion as max-distance matte in post

Obviously, this image isn’t going to win any beauty awards, but it’s a proof-of-concept of something that I wanted to test.

I’m using the inverse values of an ambient occlusion pass as a matte for a reflection pass, then blurring the result of that matte.

So…I think that gives me a max-distance glossy reflection that’s adjustable in post. Which would be kind of awesome. And MUCH faster than mia_material glossy reflections. I haven’t done this in the above image, but the non-inverse values of the occlusion pass could also be used to map the blur. I think this would give you reflections that blurred as a function of distance.


I suspect that a problem would arise with the above in cases where a material had a bump map. The normal angles from that bump map heavily influence reflection (…I think) and whether not a point is occluded would be unrelated to reflectivity at a given point. At this point, I’m not sure how to solve that problem. But I’m going to think about it some more. And also double-check that I’m correctly understanding how AO and reflectivity work.

Pliers update

Tweaking the tile bump, as per the crit I got. Things left to do before I render out some layers to comp:

  1. fix some odd mapping that’s happening around the circular pivot
  2. scale down the bump on the grout, add some diffuse noise
  3. add in some more teeth
  4. add a bevel/ridge on angled cutting face – it’s too flat to have interesting reflections

Pliers still

Still plenty to fix, but it’s getting to where I want it.

All procedurals. The target for this one is a still, so I’m using mia_materials and that wonderful interpolation.

Stuff to fix

  1. What’s with the super-reflective grout?
  2. Going to have to add geometry for the teeth.
  3. Less reflectivity on the handles.
  4. The tile bump could definitely be better, and some grit in the grout would be awesome.

Milestone 6

Since the last blog update, I’ve
  • completed two camera move renders of the loft (see camera 1 here)
  • completed re-rendering (and rebuilding) a short logo animation from an old project
  • created a breakdown video of the Trashbot project that I originally did for another class.
  • re-rendered at higher quality a 15-second commercial I created for a past class


[vimeo w=400&h=300]

Loft – camera 1 from John Leftwich on Vimeo.

[vimeo w=400&h=300]

Occam’s Garden logo animation from John Leftwich on Vimeo.

[vimeo w=400&h=300]

Trashbot – breakdown from John Leftwich on Vimeo.

[vimeo w=400&h=300]

Business Company. For your Generic Business Services needs. from John Leftwich on Vimeo.

 Things I learned:
  1. The reflection interpolation that comes with the mia_material won’t work for animation. At all. 🙁
  2. When rendering on multiple machines, if the machines are not nodes controlled by a central workstation, the individual nodes will come up with slightly different FG and GI solutions. This will cause frames with odd shadow effects. This is especially noticeable on objects that are light-colored. Two fixes that I think would work:
    1. I believe I could fix this by outputting and sharing FG and GI maps, but I haven’t tested that at school. I also wonder if I could share the FG and GI maps on Network Transport and point each machine to it.
    2. Splitting the render by objects rather than frames would also address this, I think. I suspect the lighting solutions might be very slightly different for each object (unless the machines were sharing maps, that is), but that could be addressed in post if it affected the quality of the scene.
  3. I’m getting consistently faster at modeling. I modeled a a new sofa for the loft in a couple of hours. I feel like I’m getting a better grasp of what I think of as macro modeling – blocking out a shape before moving on to details. I really like Maya’s soft mod tools – they’re intuitive and can yield nice results when you’re looking for smooth deformations of a mesh.
  4. Rendering alphas is fast – you don’t need lights or materials. I don’t know why this wasn’t immediately obvious to me, but luckily I did some reading before I started rendering.

Room for improvement:

  1. Background plate on Loft Camera 1 is too blurry.
  2. Loft Camera 1: I need to replace the old chaise model with the lowest-poly Mudbox version. That would make the normal map be more effective.
  3. Loft Camera 1: the inside of the bowls on the island shelf need supplemental lighting. (This one is fixed, I think I can render out an alpha of the stools and the island have that comped in the next few weeks.)
  4. The logo animation isn’t reading as effectively “Zen Garden” as I’d like. Maybe more rocks? (Maybe I could add some 2d sand particles in AE…)
  5. In Trashbot, the actor loses his reflection. I’d need to re-shoot him to fix that, but that’s not practical.
  6. Also in Trashbot, The floor reflections don’t match the window reflections. I’m not sure how to approach that; I guess I could try to shoot a plate at night and comp that in.

Milestones 4 & 5

Lost in iteration-land.

Ok, not really lost, just working methodically, trying to develop my knowledge of indirect lighting in Mental Ray.

Read quite a bit of Master Zap, and DJX. And re-read.

A lot of time was spent working on floor solutions. It’s a thorny problem because:

  1. The reflection interpolation in the mia_materials creates significant artifacts when used in animation.
  2. Glossy reflections seem to be a problem for a lot of people.
  3. Env_blur is great for the environment, but doesn’t help at all with reflected geometry (, image planes…all of the things that were contributing to my reflections.
  4. The floor is just big – it’s meant to be an enticing area of negative space. It takes up a lot of pixels in HD. It needs to look nice, and that means a lot of accurate glossy reflections, which just seem to be expensive.

I eventually settles on a Phong-E. It’s not nearly as nice as the architectural material, but since I’m making an animation, it’s what I could get working in a reasonable time.