Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

ex4st

3D engine and huge world

This topic is 6100 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

What are the best techniques to build a 3D engine dedicated to represent a huge world (like Earth for example) ? Could it be done with terrains generation, heightmaps .... ? Thx

Share this post


Link to post
Share on other sites
Advertisement
I guess it could be done, if you split the world up into 1000''s? of seperate areas and as you move into a different area, load it from disk.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
the earth is not big. haven''t you ever heard "It''s a small world after all"?

Share this post


Link to post
Share on other sites
No reason why it shouldnt be possible, but the detail would suck, unless you want the world to occupie the whole harddrive, or if you where to use a system to randomly place details as you went through the world. (Like trees for a wood-terrain)

Share this post


Link to post
Share on other sites
Building the whole world... pfff... in detail?

Theoretically possible, but not doable...

You want to view every spot on earth and rebuild it?

Well, if you want to be able to walk in first/3rd person through the world, saying from the eyes of a normal human, you could use heightmapping for the landscapes, and use fog so you don''t have to display the whole big stretched landscapes and make a system which loads only parts of the map.

Of course, the whole earth is impossible. Make is a lot smaller!

Share this post


Link to post
Share on other sites
You can create an infinite universe, using
know konstant-randomization techniques.
Basicly you divide the "world sphere" into a
few areas, and you "real-time" generate the next
area based on this area. This way, your world
could even be called infinite!

A closer look at it:
First off, you need a Random function that will
allways produce the same output, based on the
parameters we give it.
Ex: int a=KRnd(3,4);

Know you generate your map. Imagine your
map is create by two layers:
The first layer creates the heighmap, the second
describes buidings and stuff.

Layer 1: for each x,y on the map, run KRnd

/ x-------->+
y 153479427
| 839272384
| 435353535 This is cell 1 of the map
| 684562476
| 345378833
V
+


Now, imagine the player moved off the map, from cell
1 onto cell 2.
You can generate each cell based on the previous cell,
using the KRnd function. Remember, its not a true "random"
function, for it will allways return the same value for
the same set of parameters.

So, how do i build this cell 2?
Imagine you pass onto the KRnd function the value
of the corners of the previous cell (1,7,3,3).
So, if you want to know what to put in X,Y of cell 2:
int value = KRnd(X, Y, 1, 7, 3, 3);

you KRnd function could slook something like this:
int KRnd (int a,b,c,d,e,f)
{ int res;

res=(a*a)+(b*b)+(c*d)+(e-f) mod 100;

return res;
};

Now, all of this means s*hit if you don''t have a
good enough graphical pipeline to render it, so
try to keep each world cell as small in polygon count
as your Render pipeline is capable of rendering in
real time.

I hope the message got thru to you. Learn more
about Infinite Universe Generation online.
Don''t forget that you''re responsible for creating a
KRnd function that will suit your needs...

[Hugo Ferreira][Positronic Dreams][]
"Research is what I''m doing when I don''t know what I''m doing."
- Wernher Von Braun (1912-1977)

Share this post


Link to post
Share on other sites
Thanks a lot for all your posts !!
Indeed, I didn''t think about generating Earth in details !!! not all street, all houses !!! of course !
Just have a big big world to discover !

So I''ll take a closer look at infinite universe ...

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!