10

I guess this is a question of understanding, but perhaps I'm overlooking something which might solve my hassle with rendering of objects with transparency in cycles.

I'm working on a project with large scale landscapes and found out that the original asset, if close to the world origin renders just fine, but when used in the actual scene transparent parts of the object (e.g. a decal) render black. This happens already at a distance of about 400 m from the world origin. However, this happens to cycles only, but renders correctly in eevee. Below is an example of a decal rendered in cycles and eevee:

enter image description here

The same decal in cycles:

enter image description here

I figured out that when I move the decal further away from the background object it renders correct again in cycles.

I've also observed problems with glass shaders that are too far from the world origin, where the refraction renders incorrectly and looks faceted or blocky.

Besides moving everything which is in focus of the camera closer to the world origin, is there any other trick I don't know of to make this work? Imagine my hassle of creating an asset with roughly 30 decals, already appended to four different scenes (because linking and library overrides has tons of other problems) only to find out that for the final render in cycles it does not work out!

And my final question, why is it working just fine with eevee but not in cycles, where is the difference (technically)?

Edit #1:

Linked below is a very simple scene with a cube and a decal. With the cube on the world origin it renders fine. Move the cube 100 m in X and transparency renders black. The camera and light is parented to the cube to make this as simple as possible.

DecalTest.blend

Edit #2: Seems to be a long known issue with blender :(: https://developer.blender.org/T43835

B_Engstler
  • 171
  • 6
  • 2
    Instead of using geometry to add textures, add the image of what you call "decal" as part to the texture of the underlying plane. The world origin is not relevant to your question. What matters in the representation of depth, are the clip start and clip end settings, those determine the absolute distance that will be rendered. The depth buffer is indeed limited. There are only so many different planes that it can represent accurately before you have errors (like z-fighting). That is why is suggested that the clip distance encompasses your scene only and is not any more. – susu Jan 07 '21 at 18:15
  • 2
    Depth and z-fighting errors aside, also check that you have enough transparent bounces for rendering. https://blender.stackexchange.com/questions/27718/black-artifacts-when-looking-through-many-transparent-objects and https://blender.stackexchange.com/questions/46424/add-a-transparent-image-on-top-of-a-material – susu Jan 07 '21 at 18:17
  • 1
    Thanks for your quick answers, but I disagree about the world origin not having an influence. Either this is a bug or it is relevant. I'll edit the inital post and add a simple scene with a description. – B_Engstler Jan 07 '21 at 18:35
  • Please do. I can be wrong. – susu Jan 07 '21 at 18:38
  • Agree with @susu .. it's very strange that it's World distance, rather than Camera distance, and relative clip-depth. What's your Blender Unit scale? – Robin Betts Jan 07 '21 at 18:45
  • Unit scale is meters. The linked Blend file should show the exact problem. Cube at location X 0 meters renders fine, cube at location X 100 meters does not. (Blender 2.83 and 2.91). – B_Engstler Jan 07 '21 at 18:54
  • I get the Z-fighting black artefact at all world locations, unless the decal is slightly separated. Strangely not, though, if I use the mask to mix to a Transparent BSDF shader, or (indirectly) for 'Transmission' with IOR 1. Just when using 'Alpha'. Someone might know the contrasts between the 'Alpha' implementations in EEVEE and Cycles? – Robin Betts Jan 07 '21 at 19:50
  • Strange that it does not behave the same on all systems. Perhaps move the decal to 1.001 global X and see if it renders correctly. In that case I have to move the cube to 600 meters in order to see the black artifacts. – B_Engstler Jan 07 '21 at 19:55

0 Answers0