#164865 - Rajveer - Thu Nov 27, 2008 6:50 pm
Ok I'm finally getting around to rewriting my 3D engine now that I have more time on my hands, and one of the areas I need to get resolved is the scaling of the world I'll be using. I'm looking to create a very large world: approximately 3000 times the size of the player, but failing that I'd settle for around half of that. I can't physically split the world into different areas and load a new area at a time, as this will be a fast racing game and everything needs to be seamless. So I guess the question is, how do you guys settle on the size of your world?
Right now I'm trying to decide how I should store this world, and I've got 2 different lines of thinking. The first is that I scale the whole thing down into 1.3.12/v16. This format will give me the added bonus of being able to use boxtest for culling my partitioning tree. I can use a 1.7.24 format for collision testing, which will give me enough size and precision. Problem is since everything needs to be stored within -32768 - 32767, this format will give my racers a size of approximately 20*20*20 v16 units which is ridiculously small precision wise, and upon testing I'm running into rendering issues.
The second is that I try to keep everything as small as possible, but not restrict my world to 1.3.12, stiching together the world stored within my tree with glTranslate calls. I can't use boxtest as my world will be greater than v16, but my frustum culling code is quite efficient. My racers are the smallest elements in my world, and upon testing the smallest I could render them allowing the camera to get close up without any issues and using the smallest clipping plane I could (around 200) gave them a size of 0.15*0.15*0.15, or 614*614*614 units in 1.3.12. For collisions I would probably use 1.19.12.
Ideally I would like to go with the first option, as I can use boxtest and the 1.7.24 fixed-point format will be both large enough and precise enough for collision testing. So have you guys got any advice? I feel like I am I being oblivious to something important.
Right now I'm trying to decide how I should store this world, and I've got 2 different lines of thinking. The first is that I scale the whole thing down into 1.3.12/v16. This format will give me the added bonus of being able to use boxtest for culling my partitioning tree. I can use a 1.7.24 format for collision testing, which will give me enough size and precision. Problem is since everything needs to be stored within -32768 - 32767, this format will give my racers a size of approximately 20*20*20 v16 units which is ridiculously small precision wise, and upon testing I'm running into rendering issues.
The second is that I try to keep everything as small as possible, but not restrict my world to 1.3.12, stiching together the world stored within my tree with glTranslate calls. I can't use boxtest as my world will be greater than v16, but my frustum culling code is quite efficient. My racers are the smallest elements in my world, and upon testing the smallest I could render them allowing the camera to get close up without any issues and using the smallest clipping plane I could (around 200) gave them a size of 0.15*0.15*0.15, or 614*614*614 units in 1.3.12. For collisions I would probably use 1.19.12.
Ideally I would like to go with the first option, as I can use boxtest and the 1.7.24 fixed-point format will be both large enough and precise enough for collision testing. So have you guys got any advice? I feel like I am I being oblivious to something important.