SceneElement root = scene.getRoot();
Intersection x = NearestIntersectionRecorder
.computeNearestIntersection(ray, root);
if (x != null) {
ShadingContext context = new MinimalShadingContext(Random.DEFAULT);
x.prepareShadingContext(context);
context.getModifier().modify(context);
return new SurfaceNode(this, sr, context, ru, rv, rj);
} else {
return new BackgroundNode(this, sr, ru, rv, rj);
}