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.

Final week

The last period is here now and we haven’t done anything more with the program since there is some paperwork to be done and delivered on Friday.

Happy typing. 🙂

Atmosphere Continued

The atmospheric scattering is almost working properly now. It is possible to move the sun to any position, causing different colors of light scattering onto the terrain.

Here are some images

Sunny day
Sunny day

Early Morning
Early Morning
Slightly earlier
Slightly earlier
Artifacts on the horizon
Artifacts on the horizon
Outside the planet's atmosphere. It isn't working properly yet.
Outside the planet’s atmosphere. It isn’t working properly yet.

The next week will probably be spent trying to fix the problems shown above and other things.

Bonus – video of the program in action

Good bye!

An Atmosphere Appeared

We now have something that starts to look like an atmosphere.

Atmosphere without scattering
Atmosphere without scattering

There’s still more to do, like apply single and multiple scattering. It will be worked on.

Couple weeks to go.

Just like mentioned before we will probably not have time to create clouds for the application, so we will focus on atmospheric scattering, and getting the terrain to look a bit more realistic by adding some kind of irregular terrain, like unique mountains and such.

temp (1)
looks like snow now on a mountain maybe
one of the precomputed textures for atmospheric scattering.



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.