Low Resolution High Resolution

Dreaming

This scene shows a cow on a pasture and combines realistic and surreal elements. The main focus is the cow, which is drinking water and imagining company and exitement in her otherwise lonely surroundings.


Implementation

The goal was to create an aesthetic image using as few external models as possible. The final image uses only four external models and one texture image. All other structures are randomly generated.

Most elements in the scene were textured, created or arranged using excessive amounts of Perlin noise.

The ground was defined by points at regular intervals, using Perlin noise as elevation. This can be converted into a triangle mesh that can be displayed. Using smooth triangles ensures that the triangles are barely visible even without grass. The ground is textured with a grass image to make spots without grass less visible.

In the next step, grass is added. I have used one predefined grass model, which is added to the scene around one million times using instancing. Small variations in size and rotation are used to generate a natural looking landscape. To determine where grass should be placed, a random position on the plane at zero elevation is chosen, and a ray is traced from below the ground upwards. The hit point of this ray is a potential position for grass. However, if the hit is below the water surface (i.e. elevation < 0), no grass is placed, and if the hit point is at a high elevation, the grass is smaller and placed with smaller probability.

The water is a flat surface at elevation 0 with a Fresnel dielectric texture. The surface is perturbed using bump mapping with Perlin noise as a bump map.

The cow drinking water is a transformation of the originally given cow.obj file, created in blender. The hide, however, is also Perlin noise. I’m using the fourth root of the Perlin noise to get a patch-like appearance.

The sky was created with an environment mapper that also uses Perlin noise.

A depth of field camera was used which focuses on the cow on the left.

The sun was modeled as a large area light in the sky. This is however not sufficient to light the scene and ambient light was necessary as well.


Statistics

The cow and tree models have around 40 000 triangles each, the grass only 1760. Considering the large amount of grass instances, this means that there are more than 1 billion polygons in the scene. However, most of these are never hit by any ray.

The full image in 4K resolution at 20 samples per pixel renders in around 40 minutes on a single core. The 4K image was downscaled to full HD.


Models

cow.obj

tree.obj and grass.png

grass.obj