When two objects -one of them transparent- intersects it creates some artifacts visible even in the alpha channel. Even with 1024 transparent bounces the artifacts remain.

enter image description here

In the example file there are two cubes in the same position, one transparent and one emission.

What is causing this? Any way to get rid of this artifacts?

  • $\begingroup$ That is considered a bad modelling practice, never have two perfectly coplanar faces, transparent or otherwise. What is the point of having overlapping objects anyway? $\endgroup$ Jan 11, 2017 at 0:30
  • $\begingroup$ if the surfaces are in the exact same place then you are dealing with z-fighting. $\endgroup$
    – user1853
    Jan 11, 2017 at 2:50

1 Answer 1


This is a limitation of many render engines. In OpenGL/DirectX applications it is typically known as z-fighting. The simple answer is to not do this - don't put two surfaces in the exact same place. This is a scenario that's impossible in real life (no two solid objects can share the same location) and therefore typically not taken into account when designing render engines.

  • $\begingroup$ Even though one of them is transparent? $\endgroup$ Jan 11, 2017 at 8:46
  • 1
    $\begingroup$ Yes, even then. Many Ray tracers first find the closest surface to the camera, and only after that they calculate its shading. Since the Ray tracer won't tell two surfaces apart that are in the same location, only one of them will get shaded. Which one of the two it is (the opaque or the transparent) is in this case left to chance. $\endgroup$ Jan 11, 2017 at 20:48
  • $\begingroup$ Think of it this way: If the transparent object wasn't fully transparent but semitransparent and tinted (let's say blue glass), what is the expected result in your case? Should you see the opaque surface through the blue glass or should the opaque surface cover the blue glass? There is no correct answer to this question in real life, as the situation is impossible in real life. A render engine built to simulate reality is not designed to handle cases that cannot exist in reality. $\endgroup$ Jan 12, 2017 at 14:11
  • $\begingroup$ Yeah, I got it with the preview answer :P Thanks! $\endgroup$ Jan 12, 2017 at 15:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .