Tuesday 30 August 2011

Interactive pan and zoom


Here we show interactive pan and zoom of the scene developed in the previous post.

The next step will be adding 6 degrees of freedom to the camera, which might be complicated, requiring some way to calculate the intersection between the line of sight of each pixel and the scene, possibly ray tracing...

Monday 29 August 2011

Perlin noise 3D Terrain rendered top down with basic lighting

Zoom Out = 10
Due to the high zoom out factor the normals average out and we get a flat grey picture as one would expect.

Zoom Out = 1
With no zoom, we can begin to see the geometry of the picture.

Zoom Out = 0.1
At this increased zoom we can recognise the picture as a rough surface.

Zoom Out = 0.01
With this level of zoom we recognise a highly detailed 3D terrain.

Zoom Out = 0.001
A close up view of one of the "mountains" in the picture. We can begin to see artifacts in the rendering due to the simplistic way in which the normals are calculated.

Zoom Out = 0.0001
We have zoomed in enough that the surface begins to look smooth. The artifacts are now clearly visible.

I am happy with the achievement of perlin noise 3D terrain rendering with simple lighting and it is impressive how one can zoom in alot and get plenty of detail.

Possible improvements include better normal calculation so that the artifacts aren't present, more interesting detail at the highest level of zoom so it still looks real, and 3D camera control.

Monday 15 August 2011

My first step: Rendering an Interpolated Noise Grid on the GPU

No triangles. Limited GPU memory (~1GB). Has to render in real time. Simple first step.

Let's try rendering Perlin Noise generated on the fly then. In the future this could lead to rendering of interesting landscapes.

But before that I needed to generate and render an interpolated noise grid. Here follow images showing my results.

Unzoomed
Zoom x 10

Zoom x 100
Rendering resolution = 1600 x 900.
Frames Per Second ~ 1000.
Hardware = HD 5750.

Pleased with the speed of rendering, and with the smoothness of the interpolation.

The next step will not be adding these images together to create Perlin Noise. The next step will be real time exploration of the interpolated noise grid, either by animating the noise, or by implementing a user controlled camera and simple lighting to enable 3D exploration of the landscape.