1
$\begingroup$

So I ran into a peculiar problem while rendering my scene in cycles. I am creating an animation demonstrating what a mental object cut is (when an object is cut by a plane). The pictures below show the sequence of my animation.

The setup is as follows:

(1) The initial object in picture 1 is the object I cut with an ambient occlusion material. The cross-section is a separate object hidden from scene view and render (same material applied). The cutting plane has a transparency node mixed with the diffuse node, and I regulate the level of transparency in Mix Shaders node. enter image description here

(2) I gradually change the transparency level of the cutting plane to make it appear (by keyframing the Mix shaders node). enter image description here

(3) At a certain point, I make the initial object invisible for the scene and render and toggle on the visibility of a pre-modeled cross-section object place right where the plane would actually cut the object. enter image description here

(4) Finally, I toggle the visibility of the text object. enter image description here

Now, in render mode my animation looks good. But when I actually render it, it the first frame looks like this (compare it to the first picture in my post):

enter image description here

The same thing actually happens in Blender Internal (which I desperately turned to having tries other things).

What I've tried so far:

  1. Render visibility is keyframed on/off correctly for all objects(not only viewport visibility)
  2. Duplication is set to none
  3. Normals are set correctly on the initial object
  4. changing normals on the cutting plane did not help
  5. Blender Internal yields the same result
  6. Starting a project from scratch did not help
  7. After some manipulations with toggling the visibility on/off, I came to the conclusion that the what happens is that the plane actually visually cuts part of the initial object and what is shown in the render is the second part behind the plane.

So what's happening here? I'd be very grateful if anyone could offer some insights into this situation. I am attaching the link to my blend file.

Thanks!

$\endgroup$
1
$\begingroup$

This one is not true:

  1. Render visibility is keyframed on/off correctly for all objects(not only viewport visibility)

You have the Boolean modifier on "Initial" set to viewport-invisible, but it's set to render visible:

enter image description here

That means the Boolean is performed when you render for reals, but in Viewport "Rendered" mode you don't see the Boolean.

If you turn off Render visibility as well, I think you'll get what you want...but given the way this is set up, why not just delete the Boolean modifier from Initial? You're hiding Initial once it gets cut anyway.

$\endgroup$
  • 1
    $\begingroup$ I'm an idiot! I modeled this scene a while ago and totally forgot about the Boolean modifier. Deleting it worked like a charm. Thank you so much! $\endgroup$ – BlendGirl23 Aug 1 '18 at 13:36
  • $\begingroup$ You're welcome! Sometimes you just need another set of eyes. $\endgroup$ – Dale Cieslak Aug 2 '18 at 1:20
1
$\begingroup$

The cutting plane is somehow overlapping geometry and causing Z Fighting artifacts.

Your $Intitial$ object as a Boolean modifier invisible to viewport and visible to rendering leading to different results.

Your scene also as a multitude of unrelated issues like using Hemi lamps which aren't truly supported in Cycles and a Sun lamp which doesn't really seem to be doing much besides illuminating the background, since you are using an ambient occlusion shader on your objects which doesn't interact with scene lighting.

$\endgroup$
  • 1
    $\begingroup$ Thank you for your comments about the lighting and material interaction. This inspired me to learn more about how lighting works in Blender! $\endgroup$ – BlendGirl23 Aug 1 '18 at 13:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.