Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.

Archive for February, 2014

Another Update

The last week has been spent reading the precomputed atmospheric scattering paper and doing some research about it. The beginnings of an implementation of it has been started, but not so much more. This part will most likely take more time than planned.

There aren’t really any pictures to demonstrate any progress, so here’s one from before:

Good bye

Small Progress Update

Now the blending between clipmap levels works as it should. The normals look good enough, but there’s still room for improvement there. Normal maps have been added for a more detailed appearance, displayed below.

Normal Map

And here’s a image showing the mesh blending:

Wireframe and fill comparison
Wireframe and fill comparison

Now we’re going to look into the atmospheric scattering part, which will be interesting.

That’s it for now, good bye.

More on GPU Clipmaps

The beginning of this week has been spent on reworking the clipmaps, since our initial implementation didn’t work very well. The new clipmap system works quite a lot better than the last one. Blending between clipmap levels no longer has gaps, which is very nice.

Here’s a video of what it looks like at the moment:

Also the work on normals has continued. At the moment normal blending between levels isn’t supported, it’s the next thing I’m going to fix.

Update: normals look alright now:
ss (2014-02-14 at 02.50.33)

However, there’s something weird about the mesh blending. I will try to find out the cause of it.

Mixing Textures

So we have also been doing some things with texture blending on the GPU. First we made it so all texture was the same on same height, and in between they would blend, and it looked ok. But then we thought it might look better with a different approach, we had already thought about using some noise function to generate a third texture and then blend the three of them together, but then it would also look weird, even it the noise texture was tileable it would be looking kind of repetitive with same pattern.

Instead we use the normal to calculate the slope of the terrain, and depending on the value of the slope, we can either blend the texture, or change it to another.

Screenshot from 2014-02-10 01:52:41
No blending here, just texture depending on slope. Looks like snow, or maybe something else?
Screenshot from 2014-02-10 02:34:56
White part is texture and black is blending area.
Screenshot from 2014-02-10 02:36:32
What do you get if you mix grass and snow…



GPU Clipmap Progress

This week we’ve worked on getting clipmaps to work on the GPU using vertex textures for the heightmap data. The results are alright, and different clipmap levels are blended together pretty good. However there are some small artifacts visible between them.

I’ve started working on getting normals working. At the moment they’re calculated for every vertex by sampling nearby heights every frame in the vertex shader. It could be improved by having a normal texture for each clipmap level.

Terrain without normals.
Plain texturized terrain
Terrain normals, world space.

That is all for now

Forward going

The project is going forward and we are now working on clip-maps and implementing the height-map. As mentioned in the project plan we are going to use an improved version of Perlin noise, called Simplex noise, and we thought it would be nice to see what a generated map looks like, so here are some pics showing a “random” generated map of 512×512. The first image is the raw file produced by the algorithm, and the ones on the bottom are the results from adding more octaves, 2, 4 and 8.