Jules Verne
20.July2007, 18:21
Hi there!
Ok as promised, a few screenshots from the engine, which I decided to call Gaia, it seemed appropriate hehe.
Please excuse the low quality, its very early stages yet, and making things look super pretty and putting plants and tree's everywhere is something that will come later on. I'm concentrating more on getting the meat of it working before I start to worry about the neat looking extras.
Saying that, adding a full screen glow had to be done lol. I don't know, I just like full screen glow effects over HDR effects. Not to mention it's less taxing.
Currently the perceived view distance is just over 20km. But I would think that will definitely shrink as time goes on. I'm aiming for around 5km, maybe 10. I don't really think there's a need to have it further than that, as you wouldn't be able to see much besides very basic (and low poly) distant terrain.
The way the whole thing works right now, is there are no actual lights on the terrain. Everything that appears to be lit is simply nothing more than textures which are baked into the model with a pre-rendered software. The reason for this is, its less work for the computer, and it actually makes things such as day/night cycles very easy, even if it isn't 100% realistic (no crawling shadows for example) To give the impression of day and night, the brightness/tint of the textures are changed. When you add in other effects such as a sun moving through the sky and changes in the sky itself, clouds and so on. It can look surprisingly believable, for a game anyway.
Course, anything that moves will be lit in realtime, but buildings, terrain etc. don't need to be lit like that. It also allows me to create a number of visual effects without without requiring the use of specific shaders. Meaning it becomes more backwards compatible, meaning more people can run it without having to buy top of the line hardware, just to see it looking good.
Here's an example of the process (which is no different to how games have been textured/lit for years, only the compiling is done in a professional 3D application)
http://img530.imageshack.us/img530/5928/renderedpicsg8.jpg
This first example is a pre-rendered image, took about 8 minutes, only a very fine global illumination solution to light it.
http://img505.imageshack.us/img505/172/realtimepicww0.jpg
The same image, only displayed in realtime. Very little difference visually.
The setback being increased amount of textures used (larger amount of HDD space required). And preventing world based objects from being able to move (the shadowing wont follow them as its all static) So the method does have its cons, but I think for increased visual appearance, they can be overlooked (so no physics engine for me!) :)
Ok onto the actual Gaia images.
Obviously the sky in these examples is nothing more than a photograph. I didn't have the time to make a proper sky yet.
http://img514.imageshack.us/img514/5696/gaia1cw3.jpg
http://img514.imageshack.us/img514/2770/gaia2gk2.jpg
This final image should I hope show my need for being able to tile the terrain and generate higher quality tiles from that one master terrain. As you can see, when you start to get in closer, currently the edges are very straight, with sharp corners. Caused because there isn't the height data available at that resolution for the terrains polygons to use. To avoid that problem, a simple heightmap would be cut up into smaller pieces, with each of those increased in size, at the same time the detail in each tile would increase, like a Mandelbrot image. See what I mean? Which would then allow for more detail closer up. To a point anyway, there's a limit on how many polygons I'm allowing per tile, to take into account everything else that's going to be viewable at the same time. But even just a slight improvement in detail on the terrain will almost instantly remove the unrealistic straight edges and sharp corners.
That would let me build the entire terrain in one piece. Get everything where I want it to be, the overall appearance of the terrain, then cut it up into smaller tiles, each of those having increased definition. It would be kind of like creating a terrain on a huge huge huge single image. Only by using tiles, the resources required to work with it drop significantly.
Ok as promised, a few screenshots from the engine, which I decided to call Gaia, it seemed appropriate hehe.
Please excuse the low quality, its very early stages yet, and making things look super pretty and putting plants and tree's everywhere is something that will come later on. I'm concentrating more on getting the meat of it working before I start to worry about the neat looking extras.
Saying that, adding a full screen glow had to be done lol. I don't know, I just like full screen glow effects over HDR effects. Not to mention it's less taxing.
Currently the perceived view distance is just over 20km. But I would think that will definitely shrink as time goes on. I'm aiming for around 5km, maybe 10. I don't really think there's a need to have it further than that, as you wouldn't be able to see much besides very basic (and low poly) distant terrain.
The way the whole thing works right now, is there are no actual lights on the terrain. Everything that appears to be lit is simply nothing more than textures which are baked into the model with a pre-rendered software. The reason for this is, its less work for the computer, and it actually makes things such as day/night cycles very easy, even if it isn't 100% realistic (no crawling shadows for example) To give the impression of day and night, the brightness/tint of the textures are changed. When you add in other effects such as a sun moving through the sky and changes in the sky itself, clouds and so on. It can look surprisingly believable, for a game anyway.
Course, anything that moves will be lit in realtime, but buildings, terrain etc. don't need to be lit like that. It also allows me to create a number of visual effects without without requiring the use of specific shaders. Meaning it becomes more backwards compatible, meaning more people can run it without having to buy top of the line hardware, just to see it looking good.
Here's an example of the process (which is no different to how games have been textured/lit for years, only the compiling is done in a professional 3D application)
http://img530.imageshack.us/img530/5928/renderedpicsg8.jpg
This first example is a pre-rendered image, took about 8 minutes, only a very fine global illumination solution to light it.
http://img505.imageshack.us/img505/172/realtimepicww0.jpg
The same image, only displayed in realtime. Very little difference visually.
The setback being increased amount of textures used (larger amount of HDD space required). And preventing world based objects from being able to move (the shadowing wont follow them as its all static) So the method does have its cons, but I think for increased visual appearance, they can be overlooked (so no physics engine for me!) :)
Ok onto the actual Gaia images.
Obviously the sky in these examples is nothing more than a photograph. I didn't have the time to make a proper sky yet.
http://img514.imageshack.us/img514/5696/gaia1cw3.jpg
http://img514.imageshack.us/img514/2770/gaia2gk2.jpg
This final image should I hope show my need for being able to tile the terrain and generate higher quality tiles from that one master terrain. As you can see, when you start to get in closer, currently the edges are very straight, with sharp corners. Caused because there isn't the height data available at that resolution for the terrains polygons to use. To avoid that problem, a simple heightmap would be cut up into smaller pieces, with each of those increased in size, at the same time the detail in each tile would increase, like a Mandelbrot image. See what I mean? Which would then allow for more detail closer up. To a point anyway, there's a limit on how many polygons I'm allowing per tile, to take into account everything else that's going to be viewable at the same time. But even just a slight improvement in detail on the terrain will almost instantly remove the unrealistic straight edges and sharp corners.
That would let me build the entire terrain in one piece. Get everything where I want it to be, the overall appearance of the terrain, then cut it up into smaller tiles, each of those having increased definition. It would be kind of like creating a terrain on a huge huge huge single image. Only by using tiles, the resources required to work with it drop significantly.