Rendering ARTIFACTS on big scene, no solution i found worked! Please help!

100% SOLVED (but please put it in the bug tracker for a solution, its easy to fix better (see below), BUT paramount!):

OK, i solved it, here IT ISN’T the orthographic view (although in ortho this happens naturally), it is the ORIGIN OF THE SCENE !
After 2 days of tweaking around and searching the web, also remembering that i had the same problem with other GPU renderers,
i found that Cycles like the other CUDA GPU renderers suffer from the same issue!

THE MORE YOU GET AWAY from the CENTER (ORIGIN) OF THE SCENE (0,0,0 XYZ), after like 2 km YOU GET artifacts the closer you get to the meshes! My boat was about 4 km away from the center.
This ist due to the addressing of the CUDA Kernel absolute to the coordinate system! Still it appears also on the CPU (same algorithm).

So the solution is to have your scene ALWAYS near the SCENE ORIGIN (where the grid begins!), if you have extreme distances like 1mm-20km clipping view.

It is NOT a bug, rather a limitation, but the REAL solution would be that the Cycles Engine would at render time put the scene origin at the Camera/Perspective position so the depth clipping is always correctly calculated!

EDIT2: If you have low flying objects that have to go a long distance, then you would rather move the surrounding INSTEAD of the plane, so it stays with the camera near the ORIGIN stationary!

ORIGINAL MESSAGE
Ok i have a problem (image below).
I need to render a very far clipping value for this animation. Island is 10km far away.
BUT i need a very CLOSE clipping also 10 cm!

The problem is, EVEN if the depth buffer of Cycles ist not able to have such extremities, so i want to render out separate layers (which i rather not really want due to the scene lightning interactions), ONCE the huge island is loaded (not even rendered or displayed) it corrupts the near meshes.

AND even if i delete the big object, and bring back the far value to near, like 100m, the artifacts REMAIN! Why?

All near(!) meshes are affected! Only zooming out (which i don’t want!) makes it disappear.
I tried after searching the forum, and lowered the scale of the scene value, while resizing the objects, BUT the moment i increased the island and/or the ocean (big objects!), the boat meshes got screwed!

So, do i have to assume that Cycles can’t render something beyond, say 1km far without getting near meshes artifacts ?
Please help.

Rendered on 2x CUDA with 2GB (680 GTX). But its the same on the CPU also, no matter if experimental or supported!

BTW, i KNOW why this happens: On luxrender and octane there is a scene scale specific ray setting that alleviates this same problem, but how do i access the Cycles engine for that ? Are there any workarounds ?

Here the preview with the island and ocean (final render is the same!):


And here the preview with ONLY the boat and the HDRI (also final render is the same!):


EDIT: I even tried to scale (Ctrl+A then Scale) ALL objects to 1.0 and set the scene to 1.0 :frowning: still the same…

I REALLY need to render in one pass, because on the other side there are mountains that WILL affect the lightning heavily of the boat.

That looks like caused by Ortho view/camera. I do not get that at these settings


“but please put it in the bug tracker for a solution”

This is not a bug, its a precision issue… pretty much the precision of the rays degrades as you get further away from the origin point. It happens with all renderers… its to do with how much space is allocated to the ray / bvh… not sure of the specifics but i believe its floating point, so say its 8 digit floating point (arbetary number, not linked to cycles at all, just general floating point knowledge), that means theres eight digits and the decimal place can be anywhere in the string so all of these are valid xxxx.xxxx or xxxxxx.x or x.xxxxxxx… but not xxxxxxxx.xxxx, as that would have more then 8 digits. which means as you get a larger number, you dont get as many decimal places worth of precision… This is why you want to a) keep your object origins near the object itself and b) have your scene around the origin point aswell.

Good to know, thanks a bunch for explaining (i might have seen doublebishop mentioning that already though).
What did slip away was this “away from Origin” part.

“This is not a bug, its a precision issue… pretty much the precision of the rays degrades as you get further away from the origin point.”

No, This IS somehow a bug, or lets say could be easily improved, because smart renderers always relocate the BHV point of origin at render time to the camera origin = no precision bias!
Also you can see it in the dynamic vs static bhv. Although the dynamic reallocates the grid differently it still has artifacts.

As said, the solution is to allocate the point of origin of the BHV to the camera at render time.
So yes it can be EASILY fixed. And NEEDS to be fixed especially for animation, where you have FAR moving cameras for planes, rockets, far zooms, etc. where you really need to get away from the origin!