lately ive been attempting to create extremely high poly terrain models using extensive detail boxing. i want to be able to go to a resolution as high as 2 polygons per square meter, yet want to cover the entire xz plane of the mission space of 1500000^2 meters (with some no-mans land to complete the illusion and provide a buffer so a skybox can be used to generate the feel of expanse). were talking 4500000000000 polies! purely impossible entirely. so how close to that can i get?
ive been using topographic maps as well as visible spectrum maps of various planets and moons generated by various space missions by nasa and other space agencies. seems the best maps are for the moon or mars. they are fairly easy to to convert to models in max, using the topographic map and the displace modifier on a subdivided plane generates some fairly accurate terrain. the trick is making the resolution of the terrain model more dynamic. you do this by tiling the model. and then having a progressive loding system drop or raise the lod of each tile depending on how close you are to it.
my closest attempt was a 1280.58^2km terrain model of a rather boring part of mars, at a resolution of roughly 2 polygons per 18^2 km. and it looks pretty good from high altitude. it worked and my fps stayed at 60, unfortunately my detail box based loding kinda sucked. in fact it didnt work at all, so only the low poly version of the model was ever visable. i setup 36 tiles, each having2 lods, one between 4k and 5k polies each, and another at about 500 each. this was actually the 2nd and 6th lods of the tiles i created, each had 7 lods. unfortunately the detail box system is rather cumbersome when dealing with that many subobjects. this of course was a prototype to see if the idea would work. and it sorta did. it took about 20 minutes for pcs2 to generate bsp trees for it, and another 10 minutes for freespace to create an ibx for it. and the model was 44 megs.
my plans for a final version require 256 tiles each 100 km^2. lods would start at 1 square by 1 square by 2 tris, and continue up exponentially from there to about 128*128*2, for 8 lods (32768 polies at the top level). the lod of the current tile beneath you would depend on your height. possibly dropping an lod per 10km of altitude above it. the detail boxes would extend slightly over eachother to provide a transition zone, so if youre over an edge 2 tiles will be rendered at the lod for your height, over a corner and 4 tiles would get rendered at that lod. to prevent too many polies from being displayed at once, the detail box overlap would need to lessen as lods get higher. one would have to put together an lod progression that keeps too many polies from rendering at once.
then comes the matter of how to lod it. theres a couple ideas i have, one is to make each tile a subobject with its own stack of lods. though im not sure if freespace does per subobject lod distances (it really should because theres no point rendering a 2000 poly turret at the other end of a 10km long ship that fills up a dozen pixels on the screen). that would certainly make things a lot easier in the long run. the detail box system is rather cumbersome. since each lod of each tile, 2048 of them!, needs special subobject properties. also detail boxes dont exactly give you much control, it either renders when youre in the box or out of it, and i dont know if its possible to set inner and outer boundaries for each detail object. you might have to group a blank poly with each lod, so if youre in the box render the detail model, if not render the dummy with detail boxes as children. put frankly detail boxes suck or this. unless of course you create them procedurally. what would be really awesome is a utility to generate terrain models with a few parameters and a topographic map, and spew out a pmf model with all the tiles pre detail boxed for you. that would be kinda cool.