ROAM Planet rendering
-
- Halfling
- Posts: 61
- Joined: Tue May 25, 2010 7:52 am
- Location: Fredrikstad, Norway
Re: ROAM Planet rendering
Alex,
I can see from your screenshots that the colors have no variance over large areas. What I mean is that in real nature, a large area of grass will have great variances in green shades.
Same will apply for stone, sand and ultimately all surfaces.
Would it be possible to use a guassian algorithm just to slightly adjust the saturation? Or will shaders and bump maps be enough to create a natural look for this?
I can see from your screenshots that the colors have no variance over large areas. What I mean is that in real nature, a large area of grass will have great variances in green shades.
Same will apply for stone, sand and ultimately all surfaces.
Would it be possible to use a guassian algorithm just to slightly adjust the saturation? Or will shaders and bump maps be enough to create a natural look for this?
"It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away"
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day palaslet,
I know what you mean, It's all in the color and tile look up map, I tint the textures with a bias, if I change the color variance in the look up, then I will get variance in the tones for the grass and rocks etc, all I did for those shots on the previous page was change the saturation of the current look up map, nothing special, just to keep Daniel happy. I will invest a little time to the look up map soon, and hone it, to make it look just right, plus use a few more tiles out of the atlas, at the moment I think I'm only using about 4 or so out of the possible 16.
I have routines in the engine, to actually calculate the slope and altitude at each new vertex and setup a second set of uvs that would give me a range of 0.0 - 1.0 across an arbitrary map of indexes that contained values of 0 - 15 in the alpha channel (well actually 16 ranges in 255, because that gave me a little leeway to make it easier to draw the index map, I could see the shade differences). Now this gives me an index into the Atlas texture of now 2048x2048 in size that is split up into a 4x4 grid of 16 512x512 seamless textures, and I can reference those textures via the index map in a left to right / top to bottom way, index 0 being top left texture region and index 15 being the bottom right texture region.
The rgb area of the map is where I can put in variances in color tint to apply to the textures I'm using, so I can use the 16 tiles, but also I can modify them as well, all in a single look up instruction, so in theory, I can have one texture with the height x width of the look up maps' color variances on it. I just need to spend some time on it, it's still really only a proof of concept look up map at the moment.
Hope that explains a few things.
Alex
I know what you mean, It's all in the color and tile look up map, I tint the textures with a bias, if I change the color variance in the look up, then I will get variance in the tones for the grass and rocks etc, all I did for those shots on the previous page was change the saturation of the current look up map, nothing special, just to keep Daniel happy. I will invest a little time to the look up map soon, and hone it, to make it look just right, plus use a few more tiles out of the atlas, at the moment I think I'm only using about 4 or so out of the possible 16.
I have routines in the engine, to actually calculate the slope and altitude at each new vertex and setup a second set of uvs that would give me a range of 0.0 - 1.0 across an arbitrary map of indexes that contained values of 0 - 15 in the alpha channel (well actually 16 ranges in 255, because that gave me a little leeway to make it easier to draw the index map, I could see the shade differences). Now this gives me an index into the Atlas texture of now 2048x2048 in size that is split up into a 4x4 grid of 16 512x512 seamless textures, and I can reference those textures via the index map in a left to right / top to bottom way, index 0 being top left texture region and index 15 being the bottom right texture region.
The rgb area of the map is where I can put in variances in color tint to apply to the textures I'm using, so I can use the 16 tiles, but also I can modify them as well, all in a single look up instruction, so in theory, I can have one texture with the height x width of the look up maps' color variances on it. I just need to spend some time on it, it's still really only a proof of concept look up map at the moment.
Hope that explains a few things.
Alex
- Zonder
- Ogre Magi
- Posts: 1168
- Joined: Mon Aug 04, 2008 7:51 pm
- Location: Manchester - England
- x 73
Re: ROAM Planet rendering
when you get the heat map in there you will need more tiles as you should be able to calculate where deserts should be and snowy regions. Are you going to do a water map as well? (this post got long can't remember)
There are 10 types of people in the world: Those who understand binary, and those who don't...
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day Zonder,
Yeah, I have a climate system in there, it's not really functional just yet (well, I'm not using it yet) but it is already in there, and being calculated on the fly.
As for the water, well that is it's own baby, separate from the terrain, but not, if that makes any sense, as in, the water system is a completely separate system, but actually takes the terrain system into account, I don't know exactly how to explain it, but I don't have maps as such, well not in the conventional sense of the word. I use my mesh as a dynamic Octree as such, as it is a perfect pre lodded system from step 1 to what ever step it needs (or I allow it) to get to.
The above picture shows the layout of the mesh while running around on the ground, I know it looks a mess, but it actually isn't, there is real structure to it. Even as complex as it looks, I can spin on the spot while on the ground at a pretty brisk pace, and the system keeps up quite well, while only utilizing a really small percentage of cpu power, even with the threading switched off, it still runs perfectly fine. I made sure of that because games have allot more than a terrain to worry about, and this thing would be useless if it needed all of the cpu to keep itself running smoothly.
I can utilize an almost unlimited number of layers per vertex, obviously I don't, because I want this thing to run nice on a conventional computer, and not need a super computer to drive it. I have very quick access to any vertex and it's neighbors, any triangle and it's neighbors, as well as any page and the list goes on. I have gone to great pains to keep the system in a sensible and logical order in ram, as like I've mentioned before, this thing can shove a triangle split anywhere in the mesh at any time, and I needed that efficient.
OOPS!!! I rambling aren't I ? I keep doing that to poor sovaka on msn, poor bugger, he throws in a little question, and I go on for hours dreaming up ways to accomplish one of his many wishes. He must have the patience of a saint sometimes.
To cut a long story short, NO, I'm not using maps for the water, it's all procedural, and that was the aim of this thing from the start If I remember correctly.
Alex
Yeah, I have a climate system in there, it's not really functional just yet (well, I'm not using it yet) but it is already in there, and being calculated on the fly.
As for the water, well that is it's own baby, separate from the terrain, but not, if that makes any sense, as in, the water system is a completely separate system, but actually takes the terrain system into account, I don't know exactly how to explain it, but I don't have maps as such, well not in the conventional sense of the word. I use my mesh as a dynamic Octree as such, as it is a perfect pre lodded system from step 1 to what ever step it needs (or I allow it) to get to.
The above picture shows the layout of the mesh while running around on the ground, I know it looks a mess, but it actually isn't, there is real structure to it. Even as complex as it looks, I can spin on the spot while on the ground at a pretty brisk pace, and the system keeps up quite well, while only utilizing a really small percentage of cpu power, even with the threading switched off, it still runs perfectly fine. I made sure of that because games have allot more than a terrain to worry about, and this thing would be useless if it needed all of the cpu to keep itself running smoothly.
I can utilize an almost unlimited number of layers per vertex, obviously I don't, because I want this thing to run nice on a conventional computer, and not need a super computer to drive it. I have very quick access to any vertex and it's neighbors, any triangle and it's neighbors, as well as any page and the list goes on. I have gone to great pains to keep the system in a sensible and logical order in ram, as like I've mentioned before, this thing can shove a triangle split anywhere in the mesh at any time, and I needed that efficient.
OOPS!!! I rambling aren't I ? I keep doing that to poor sovaka on msn, poor bugger, he throws in a little question, and I go on for hours dreaming up ways to accomplish one of his many wishes. He must have the patience of a saint sometimes.
To cut a long story short, NO, I'm not using maps for the water, it's all procedural, and that was the aim of this thing from the start If I remember correctly.
Alex
- Jabberwocky
- OGRE Moderator
- Posts: 2819
- Joined: Mon Mar 05, 2007 11:17 pm
- Location: Canada
- x 218
- Contact:
Re: ROAM Planet rendering
Cool to see so much action (and eye candy!) on this lately.
- edit: although this assumes you even have UVs on your terrain, like the Ogre::TerrainComponent would. Maybe you don't, I don't know anything about ROAM.
The old school way of achieving this is to use a detail map, like terrain_detail.jpg that comes with Ogre 1.7. You do a regular texture lookup on the detail map (just like for your other textures), and multiply the diffuse, or final pixel colour by this value. Or you could get fancy and do a saturation calculation instead. It may look best to scale the uv for your detail texture lookup based on the camera height above the terrain, in order to avoid too-large or too-small pixels. Although I don't know if this shifting uv-scale would make it look weird as you descended towards the planet surface or not.palaslet wrote:I can see from your screenshots that the colors have no variance over large areas. What I mean is that in real nature, a large area of grass will have great variances in green shades.
Same will apply for stone, sand and ultimately all surfaces.
- edit: although this assumes you even have UVs on your terrain, like the Ogre::TerrainComponent would. Maybe you don't, I don't know anything about ROAM.
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day Jabberwocky,
Yes I have uvs all right, actually 3 sets per surface terrain vertex would you believe, one set holds the terrain slope and altitude (0.0 to 1.0) for lookup in the index map, one set holds the page uvs for tiling across the page face, and another set that encompasses all the pages for the unit sphere face for when I switch out to a simplified sphere mesh for far viewing, before I turn it into a sprite/billboard.
As for the scaling uvs, I'm already doing that for the page uvs, when in outer space, I'm only tapping the atlas once or twice per pixel, when I hit the ground, I'm tapping a few times more per pixel and basing the final color from those taps, as well as tinting according to the diffuse in the tile index look up map. So, it doesn't look strange when using dynamically scaling uvs, as long as you use the right numbers, which is a pretty simple formula to work out.
I will be playing with maps shortly, but only for areas that are artist driven (if need be), mainly for conventional levels that can be tacked into this things mesh. I think that will probably be a necessity for a would be user of this system, so that their asset pipeline isn't affected too much.
Alex
Yes I have uvs all right, actually 3 sets per surface terrain vertex would you believe, one set holds the terrain slope and altitude (0.0 to 1.0) for lookup in the index map, one set holds the page uvs for tiling across the page face, and another set that encompasses all the pages for the unit sphere face for when I switch out to a simplified sphere mesh for far viewing, before I turn it into a sprite/billboard.
As for the scaling uvs, I'm already doing that for the page uvs, when in outer space, I'm only tapping the atlas once or twice per pixel, when I hit the ground, I'm tapping a few times more per pixel and basing the final color from those taps, as well as tinting according to the diffuse in the tile index look up map. So, it doesn't look strange when using dynamically scaling uvs, as long as you use the right numbers, which is a pretty simple formula to work out.
I will be playing with maps shortly, but only for areas that are artist driven (if need be), mainly for conventional levels that can be tacked into this things mesh. I think that will probably be a necessity for a would be user of this system, so that their asset pipeline isn't affected too much.
Alex
-
- Halfling
- Posts: 61
- Joined: Tue May 25, 2010 7:52 am
- Location: Fredrikstad, Norway
Re: ROAM Planet rendering
Alex,
Have you ever considered procedural textures? http://en.wikipedia.org/wiki/Procedural_texture
Just to get it all procedural
Have you ever considered procedural textures? http://en.wikipedia.org/wiki/Procedural_texture
Just to get it all procedural
"It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away"
-
- Halfling
- Posts: 61
- Joined: Tue May 25, 2010 7:52 am
- Location: Fredrikstad, Norway
Re: ROAM Planet rendering
And what I meant when talking about the variation of saturation or alphachannel was not to implement a guassian algorithm, but rather utilize perlin noice to generate fractional brownian motion to use as a alphachannel map.
Here's the wiki for that if someone is interested: http://en.wikipedia.org/wiki/Perlin_noise
Here's the wiki for that if someone is interested: http://en.wikipedia.org/wiki/Perlin_noise
"It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away"
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day palaslet,
Yes I have and am looking into procedural texturing, something high on my to do list.
OH, just toying around with the clouds, and sort of enhanced the current from space look, more procedural texturing.
You can see now that the clouds actually respond to the suns position, giving them a depth, as they actually sort of self shadow, I'm now working on the real nitty gritty of it now, so we will be able to fly through them properly.
Also, they are starting to look thicker from under them also, I will start with the procedural detail soon, to give them real definition, and real depth.
Alex
Yes I have and am looking into procedural texturing, something high on my to do list.
OH, just toying around with the clouds, and sort of enhanced the current from space look, more procedural texturing.
You can see now that the clouds actually respond to the suns position, giving them a depth, as they actually sort of self shadow, I'm now working on the real nitty gritty of it now, so we will be able to fly through them properly.
Also, they are starting to look thicker from under them also, I will start with the procedural detail soon, to give them real definition, and real depth.
Alex
- aguru
- Goblin
- Posts: 236
- Joined: Tue Feb 26, 2008 5:48 pm
- x 3
Re: ROAM Planet rendering
Wow, that's some insane visual progress in the last few days!! I was waiting for this moment where the groundwork gets the visual representation it deserves. love what you are doing
-
- Halfling
- Posts: 61
- Joined: Tue May 25, 2010 7:52 am
- Location: Fredrikstad, Norway
Re: ROAM Planet rendering
Alex,
Will this engine apply ROAM on all meshes? Even trees/flora and artist generated stuff?
Would be cool if artists could design without any polygon budget, and the engine would do the triangle optimization. Maybe with a threshold to keep it from being one giant triangle in the distant, and maybe with double the detail of the terrain to keep it real.
Just a thought...
Will this engine apply ROAM on all meshes? Even trees/flora and artist generated stuff?
Would be cool if artists could design without any polygon budget, and the engine would do the triangle optimization. Maybe with a threshold to keep it from being one giant triangle in the distant, and maybe with double the detail of the terrain to keep it real.
Just a thought...
"It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away"
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day aguru,
Thanks for the vote of confidence mate, much appreciated, makes me more keen to keep going.
G'day palaslet,
ROAM on all the objects is sort of in the wind, I think I mentioned a while back, that I have a tessellation system I'm working on, it works, but not flawlessly, it's a sort of ROAM on the GPU for arbitrary meshes, based on some stuff from NVidia, but with my very own slant on the thing, reduces draw calls, and makes it run a shit load faster than what others are doing, on DX9.0c to boot. Would be nice to use DX11 stuff, but this thing is comparable to that, but not without its glitches.
It's still a work in progress, so please be patient.
Alex
Thanks for the vote of confidence mate, much appreciated, makes me more keen to keep going.
G'day palaslet,
ROAM on all the objects is sort of in the wind, I think I mentioned a while back, that I have a tessellation system I'm working on, it works, but not flawlessly, it's a sort of ROAM on the GPU for arbitrary meshes, based on some stuff from NVidia, but with my very own slant on the thing, reduces draw calls, and makes it run a shit load faster than what others are doing, on DX9.0c to boot. Would be nice to use DX11 stuff, but this thing is comparable to that, but not without its glitches.
It's still a work in progress, so please be patient.
Alex
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day guys,
Fiddled with the clouds a bit after tea, and got this result.
I got these results by adding in a 256x256 normal mapped perlin noise texture, tacked it into the shader so that it reacted with the sunlight and took on a little of the sky color, told it to increase the lighting where the clods are thinner, to give the clouds a halo as such, and the normal mapping gave it a self shadow effect. I think it all worked a treat, and cheap to render too, as it hasn't hit the frame rate at all.
The thing that I really like, is that this look goes planet wide, and this planet is no marble.
I know there is no real depth to them yet, but that will come, I'm just pretty happy with the look, and this will only be the base line look, when you get close, that's when this thing will really look nice (I hope).
What do you guys think of it so far ?
Alex
Fiddled with the clouds a bit after tea, and got this result.
I got these results by adding in a 256x256 normal mapped perlin noise texture, tacked it into the shader so that it reacted with the sunlight and took on a little of the sky color, told it to increase the lighting where the clods are thinner, to give the clouds a halo as such, and the normal mapping gave it a self shadow effect. I think it all worked a treat, and cheap to render too, as it hasn't hit the frame rate at all.
The thing that I really like, is that this look goes planet wide, and this planet is no marble.
I know there is no real depth to them yet, but that will come, I'm just pretty happy with the look, and this will only be the base line look, when you get close, that's when this thing will really look nice (I hope).
What do you guys think of it so far ?
Alex
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day again guys,
Don't mean to boor you with this, but these following pics, show more of the effect with different lighting angles and conditions.
I don't know if you noticed this, but it seems to me, that the more I add tho this thing, the faster it is going, how does that work ???
Have a look at the frame rates on these shots, I don't get it, but I'm not arguing with it.
The question still stands, as to what do you think ?
Alex
Don't mean to boor you with this, but these following pics, show more of the effect with different lighting angles and conditions.
I don't know if you noticed this, but it seems to me, that the more I add tho this thing, the faster it is going, how does that work ???
Have a look at the frame rates on these shots, I don't get it, but I'm not arguing with it.
The question still stands, as to what do you think ?
Alex
- Chris Jones
- Lich
- Posts: 1742
- Joined: Tue Apr 05, 2005 1:11 pm
- Location: Gosport, South England
- x 1
Re: ROAM Planet rendering
You are definitely not boring me at least, the more updates the better! Good work!
-
- Halfling
- Posts: 61
- Joined: Tue May 25, 2010 7:52 am
- Location: Fredrikstad, Norway
Re: ROAM Planet rendering
This looks real great. The clouds add much realism to the planets just as with the waves on the sea.
Would love to see this with multiple layers of clouds, and more depth of course
Would love to see this with multiple layers of clouds, and more depth of course
"It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away"
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
Sorry guys,
Fiddled around a little with the shader to see if I could get a real nice look at dawn and the way the sky looks behind you at dawn, here is the result so far.
I think I am getting there, I know, I Know, my water shader is crap !!!, I will work on that soon too.
Alex
Fiddled around a little with the shader to see if I could get a real nice look at dawn and the way the sky looks behind you at dawn, here is the result so far.
I think I am getting there, I know, I Know, my water shader is crap !!!, I will work on that soon too.
Alex
-
- Halfling
- Posts: 55
- Joined: Thu Mar 31, 2011 9:43 pm
- x 2
Re: ROAM Planet rendering
Simply breathtaking.
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day Guys,
I was looking at Lingfors' Atmospheric scattering and liked it so much, I thought I'd see if I could pull it off with my system, and here is the result so far...
I can't use any of those systems like O'Neils' and that because of the way they do their calculations, and the limitation of standard floating point numbers in the shader, Well, maybe it's a limitation of my math skills, I don't really know, but I could never get those systems working on this thing. I'm still working on the sky shader too, it's never been quite right in my opinion.
It's allot better than it has ever been I think, looks better from outer space too now, but still not quite right.
Alex
I was looking at Lingfors' Atmospheric scattering and liked it so much, I thought I'd see if I could pull it off with my system, and here is the result so far...
I can't use any of those systems like O'Neils' and that because of the way they do their calculations, and the limitation of standard floating point numbers in the shader, Well, maybe it's a limitation of my math skills, I don't really know, but I could never get those systems working on this thing. I'm still working on the sky shader too, it's never been quite right in my opinion.
It's allot better than it has ever been I think, looks better from outer space too now, but still not quite right.
Alex
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day again Guys,
Just fiddling with the atmospherics again, but this time I added in a little noise and adjusted some of the parameters a little, to make the scattering look more like it should, and not in London on a winters morning.
I think it looks better, I'll see if I can fix up my sky shader too now, because I need that right to make the clouds look right too, as I will be using the base colours from the sky and the ground to affect the over all shades of the clouds, as they have their own sub surface scattering too, and should be affected by the mountains as well when they are moving over and or trying to go through them.
Wish me luck.
Alex
Just fiddling with the atmospherics again, but this time I added in a little noise and adjusted some of the parameters a little, to make the scattering look more like it should, and not in London on a winters morning.
I think it looks better, I'll see if I can fix up my sky shader too now, because I need that right to make the clouds look right too, as I will be using the base colours from the sky and the ground to affect the over all shades of the clouds, as they have their own sub surface scattering too, and should be affected by the mountains as well when they are moving over and or trying to go through them.
Wish me luck.
Alex
-
- Gremlin
- Posts: 178
- Joined: Fri Dec 24, 2010 7:55 pm
- x 10
Re: ROAM Planet rendering
These screenshots are massively inspiring, thank you so much for sharing these! Amazing what some people are up to.
In my mind I'm dreaming of an Elite IV with this engine.
In my mind I'm dreaming of an Elite IV with this engine.
-
- Halfling
- Posts: 55
- Joined: Thu Mar 31, 2011 9:43 pm
- x 2
Re: ROAM Planet rendering
Imagine walking an army trough those fields!!!
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day guys,
Just playing around with the atmosphere again, but this time I am working on the atmosphere transparency, so bodies outside of the atmosphere can be viewed correctly.
Here's the result so far ....
Now don't be fooled by these pics, I picked the nicest ones, I still have some issues with transparency when the sun is at different angles, but I am very close to getting that all solved.
OH and by the way, the Gas Giant is approximately 20 million km away from the small planet, so it's a huge body. (Avatar anyone !!!).
Alex
Just playing around with the atmosphere again, but this time I am working on the atmosphere transparency, so bodies outside of the atmosphere can be viewed correctly.
Here's the result so far ....
Now don't be fooled by these pics, I picked the nicest ones, I still have some issues with transparency when the sun is at different angles, but I am very close to getting that all solved.
OH and by the way, the Gas Giant is approximately 20 million km away from the small planet, so it's a huge body. (Avatar anyone !!!).
Alex
- DavlexDesign
- Orc
- Posts: 400
- Joined: Thu Apr 23, 2009 7:23 am
- Location: Australia
- x 19
- Contact:
Re: ROAM Planet rendering
G'day again,
As you can see, that Gas Giant is quite large.
Alex
As you can see, that Gas Giant is quite large.
Alex
-
- Halfling
- Posts: 55
- Joined: Thu Mar 31, 2011 9:43 pm
- x 2
Re: ROAM Planet rendering
HOLY MOLLY!!! Can we go to the gas giant too??