Major issue with current ray_offset(0 was that it might have pushed
ray far too away in some axis, causing it to go into surface leading
to shading artifacts.
The idea of this change is to simply skip doing preliminary ray push
and check distance to triangle during intersection. This is relatively
cheap operation because there was already a check for sign of the
This change solves such issues as reported in T43835.
Another thing we can do with intersection-time distance check is to
scale minimal distance to intersection by the magnitude of determinant.
Such an additional trick might cause some speed losses, this is to
be investigated still. This partially solves T43865 (it solves the
huge floor plane case, but cornell box scene is still having some
There's no changes in the hair intersection code yet, so it might
give artifacts for until it's properly implemented.