# Floating point precision problem with transparency?

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:

The same decal in cycles:

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

• 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 7 at 18:15
• Depth and z-fighting errors aside, also check that you have enough transparent bounces for rendering. blender.stackexchange.com/questions/27718/… and blender.stackexchange.com/questions/46424/…
– susu
Jan 7 at 18:17
• 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. Jan 7 at 18:35
• Please do. I can be wrong.
– susu
Jan 7 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? Jan 7 at 18:45