How big can be 3D map?
category: code [glöplog]
i dunno why i just folded that 2 papers. no brainer. is a tetraeder bulge (sphere) seamless? atleast the original edges should be. the square mapping got weird density constraints tho.
I am asking how big area in km2 (x.y) or cubic kilometer (x.y.z) of non-procedural or semi-procedural (grass, trees, rocks - procedural, land+city nonprocedural) map will fits into for example 64mb or 512mb?
matejeusk: thanks for clarification. Although, it's still far from clear.
Does your map can just be a forest (with procedural trees, grass, rocks) with occasional hand-made sculptures (finite amount) ? In this case you can spread those sculptures in the forest in a biggest radius you want - that would mean you can create arbitrary big map. In fact, you can use just 4 sculptures (or 3) at the "corners" of your world and put them arbitrarily far apart, but this is probably not what you mean? You need to define what is the ratio of non-procedural to procedural elements. To make it harder - it's not actually even clear what is 'procedural' and what is not. Say you have templates of sculpted heads/hands/legs etc... and just combine them randomly to make a new scultpure, is it already a procedural content?
The land can be also arbitrarily big and non-procedural - you can "sample" terrain elevation every nanometer, meter or kilometer, and that will affect storage size. In short - you have to define what is your desired "world sampling" accuracy. And again, isn't an interpolation between samples a 'procedure' to add more detail ? Does it mean sampled terrain (or volume) is semi-procedural or non-procedural according to your terminology ?
Does your map can just be a forest (with procedural trees, grass, rocks) with occasional hand-made sculptures (finite amount) ? In this case you can spread those sculptures in the forest in a biggest radius you want - that would mean you can create arbitrary big map. In fact, you can use just 4 sculptures (or 3) at the "corners" of your world and put them arbitrarily far apart, but this is probably not what you mean? You need to define what is the ratio of non-procedural to procedural elements. To make it harder - it's not actually even clear what is 'procedural' and what is not. Say you have templates of sculpted heads/hands/legs etc... and just combine them randomly to make a new scultpure, is it already a procedural content?
The land can be also arbitrarily big and non-procedural - you can "sample" terrain elevation every nanometer, meter or kilometer, and that will affect storage size. In short - you have to define what is your desired "world sampling" accuracy. And again, isn't an interpolation between samples a 'procedure' to add more detail ? Does it mean sampled terrain (or volume) is semi-procedural or non-procedural according to your terminology ?
Similar question: how many features you want on this map? Say: do you want plain roads or also pavements, fire hydrants, custom graffiti on every wall etc...
Really, without clarifying your detail-level expectations, sampling accuracy etc... the question really doesn't make any sense.
Really, without clarifying your detail-level expectations, sampling accuracy etc... the question really doesn't make any sense.
Let me reformulate his question in fourier space:
How small landscape details can be stored in a 2D map in 512mb? (This question is equally ill-defined btw, so there is no answer to it.)
Or how about in a wavelet representation:
How sparse does the spectrum have to be in a 2D map in 512mb?
How small landscape details can be stored in a 2D map in 512mb? (This question is equally ill-defined btw, so there is no answer to it.)
Or how about in a wavelet representation:
How sparse does the spectrum have to be in a 2D map in 512mb?
i'd take the 64 mb. is that the vram? i got that spare (not doing doing engine and character load) and can cram it in there. nothing procedural. with everything? texture wraps and maybe baked lighting? i dunno. guesstimate is a very rough mile.
with a ton of re-shading the textures into nice irregular repetitions you might get that into a nice multiple of... say... maybe 2-4 miles. depending on terrain tho. still raw imagination. :)
but why do you want to store it in 512MB? compression is slow!
More small more better. My vision is to have smallest "game" / "demo" file or how to call it with big map area. I am playing scifi mmorpg and each world is like 3GB or more. And one must wait with each of update... And why I am interesting in huge maps? You know I am that guy behind "demoverse". Now I have buyed www + webspace (but not with demoverse name as it is already taken) and I am working on demo-concept in free 3D engine... When everything will be OK. I will post link here... I have recieved nice emails from sceners (I posted on Scene Wanted site). Anyways I can achieve 100km2 but that map is huge. And works only on my 16GB, quadcore PC... And max. players like 32 at once... So nothing special for metaverse. So I am asking about engines, or principes how to achieve more.
Why I dont like procedural? Well I need exact objects... Everytime I run map... I need same map.
Why I dont like procedural? Well I need exact objects... Everytime I run map... I need same map.
Quote:
Why I dont like procedural? Well I need exact objects... Everytime I run map... I need same map.
Procedural doesn't mean random.
get your hands on Google Lively code. it is the best!
If you use the same seed for your Pseudo-RandomNumberGenerator, your world will always look the same unless you change the formula for positioning objects, thats how No Mans Sky does it.
But so everyone gets your point: You want to be able to position objects yourself in your world and keep them there forever!
You could just keep the Positions/Rotations of hand-set Objects and let the rest be procedurally...as said, same seed = same world, every time! So once you found the final location of your object in your world, save location/rotation and put code to position said object there.
You could store your Objects in a List with ObjectID (1 int = 4 byte) and position/rotation (thats 6 floats, 3 for position X,Y,Z and 3 for the (Euler-)Rotation == 24 byte per object), so you can have a small loop after procedural generation (or even before, doesn´t matter!) to set all objects! DONE!
Every Object that needs exact locations eats up 28 byte, which you can delete from memory once objects are set! ;)
But so everyone gets your point: You want to be able to position objects yourself in your world and keep them there forever!
You could just keep the Positions/Rotations of hand-set Objects and let the rest be procedurally...as said, same seed = same world, every time! So once you found the final location of your object in your world, save location/rotation and put code to position said object there.
You could store your Objects in a List with ObjectID (1 int = 4 byte) and position/rotation (thats 6 floats, 3 for position X,Y,Z and 3 for the (Euler-)Rotation == 24 byte per object), so you can have a small loop after procedural generation (or even before, doesn´t matter!) to set all objects! DONE!
Every Object that needs exact locations eats up 28 byte, which you can delete from memory once objects are set! ;)
Just so you get it: PSEUDO-rng means same input (seed) = same output, always! ;)
Pseudo-RNG @wikipedia
Pseudo-RNG @wikipedia
ObjectID is the identifier of an object ofcourse...f.e.: 0=house, 1=car1, 2=car2, 3=crate of beer, and so on...
In your loop to set objects you just use the ObjectID as array-offset; i.e.: ListOfUsedObjects[ObjectID]
In your loop to set objects you just use the ObjectID as array-offset; i.e.: ListOfUsedObjects[ObjectID]
i thought i was just always very lucky when fr-debris looked the same :(((((
Quote:
i thought i was just always very lucky when fr-debris looked the same :(((((
Loosen your RAM
Quote:
...Every Object that needs exact locations eats up 28 byte...
could be less. in a huge world that means dealing with a chunk grid. maybe u16 or more objectID, maybe a byte for object mesh or skin alteration could do u8 or u16 position in chunk. how about the same precision for angles? if 1.4° isn't enough, for a generic world, you could flag it as u16 angles. or not?!? :)
Oh I get it now. So you are trying to make a 3d map in the 3d engine of your choice and your whole terminology/point of view is strictly related to the features of this engine and map editor provided with it.
As I imagine, you were editing some map by placing objects "manually" and after you were done, you have checked the size and oops - the map weight a lot (few gigs) and is only 100km2. Now, this is not a good news for your metaverse plans, isn't it!
Then, you decided to ask random people on pouet: how to make this map bigger in area and smaller in size. At the same time, you didn't provide any details about the engine and map editor you use, the limitations it has, the features it offers, etc... and you basically assume people will "read between the lines" and understand what you need.
The conclusion is even more bitter though: even if you would provide the details about this 3rd party engine/editor, this is not the right place to ask - you should rather use a forum related to this particular technology. Or if you are searching for tech.that will support bigger maps in smaller size - it is also not the right forum to ask. Even if someone could help you here, it's really hard to understand what you need. Your question is more or less on par with: "my printer doesn't work, what should I do!".
As I imagine, you were editing some map by placing objects "manually" and after you were done, you have checked the size and oops - the map weight a lot (few gigs) and is only 100km2. Now, this is not a good news for your metaverse plans, isn't it!
Then, you decided to ask random people on pouet: how to make this map bigger in area and smaller in size. At the same time, you didn't provide any details about the engine and map editor you use, the limitations it has, the features it offers, etc... and you basically assume people will "read between the lines" and understand what you need.
The conclusion is even more bitter though: even if you would provide the details about this 3rd party engine/editor, this is not the right place to ask - you should rather use a forum related to this particular technology. Or if you are searching for tech.that will support bigger maps in smaller size - it is also not the right forum to ask. Even if someone could help you here, it's really hard to understand what you need. Your question is more or less on par with: "my printer doesn't work, what should I do!".
yumeji: sure! i wasn´t about size-optimising it...i left ObjectID as an int as he may want to manage more than 256 different objects. 28 bytes ain´t much already...even with 1000 hand-set objects it´s just 28kb of data. While setting 1000 objects is quite some work already!
Right now he´s got quite a small world with 3GB of Data, so this would make things a lot better already!
What i also didn´t say was: you can not delete that List if you want to be able to insert/delete these objects on the fly, as in once it´s too far away to see, delete, once in range insert into scene. Depending on scenario you could have those objects in your scene all of the time and let it get culled or something, but the data-amount of the List is so small, you are better off keeping it i´d say!
Right now he´s got quite a small world with 3GB of Data, so this would make things a lot better already!
What i also didn´t say was: you can not delete that List if you want to be able to insert/delete these objects on the fly, as in once it´s too far away to see, delete, once in range insert into scene. Depending on scenario you could have those objects in your scene all of the time and let it get culled or something, but the data-amount of the List is so small, you are better off keeping it i´d say!
I use Torque 3D (map can be huge but with lot of objects 50 000 - will slow down):
http://torque3d.org/
And another is Grit Engine (lot of objects but max. 30km2):
http://www.gritengine.com/
http://torque3d.org/
And another is Grit Engine (lot of objects but max. 30km2):
http://www.gritengine.com/
1. Add sphere
2. Download earth texture
3. Set radius to 6000km
You now have a whole planet! And it fits in 64MB easily!
...starting to see why it's a dumb question yet?
2. Download earth texture
3. Set radius to 6000km
You now have a whole planet! And it fits in 64MB easily!
...starting to see why it's a dumb question yet?
half-related... some of them speed level designs videos on the youtubes kinda make you go 'argh! you know nothing Jon Snow!' the way they do everything :( it's like watching someone do a painting with a 10 inch brush!
lol, those speed level design videos are like watching someone building in Minecraft...on Crystal Meth!