[Flightgear-devel] Dynamic scenery notes
I got a chance to try the dynamic scenery last night (in lieu of implementing the gear bounce/damp tuning for Dave Perry -- sorry). Wow. Simply stunning. :) Abject praise out of the way, here are the nits: The cowbox is too small. At only 1m high, it's really a more appropiate size for a sheepcase. Cows (at least the big north american ones that match the texture) are 1.5-2m tall at the shoulder, and often 3m long. I doubled the size to 2x4, and found the results more satifactory. The slightly-too-large size is hidden by the sparseness of the scenery. At the other extreme the 8 story building, while scaled correctly, is too large. Buildings this large are very rare, and occur in large numbers only in downtown areas that are better handled by real static scenery. I'd suggest replacing the urban scenery object with something like a 2-3 story building, or perhaps a cluster of small buildings. Right now, you can look accross the bay from San Francisco and see a huge urban skyline stretching from Oakland to Fremont which isn't even close to what's there in real life. My reading of the code is that there is a separate ssgTransform node in front of every one of the objects. That's likely to be a performance bottleneck, if the OpenGL matrix state has to change every four vertices (most GPUs want to flush the stream when the matrix changes). Instead, why not pre-compile the scenery objects for each tile into a single vertex buffer at load time. This is really easy -- step through each object and add the appropriate offset to each model vertex as you copy it into the vertex array(s). Then you could draw them all at once with no state changes whatsoever (and even get fancy in the future with stuff like compiled vertex arrays, NV_vertex_array_range and whatnot if you like). Even better, you could get a very cheap continuous LOD by drawing a distance-dependent prefix of this vertex buffer. That is, draw only the first N objects based on your distance from the tile centroid. Writing a new ssgLeaf node type really isn't so hard -- take a look at the fgPanelNode implementation for a minimalist example. Andy -- Andrew J. RossNextBus Information Systems Senior Software Engineer Emeryville, CA [EMAIL PROTECTED] http://www.nextbus.com Men go crazy in conflagrations. They only get better one by one. - Sting (misquoted) ___ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel
re: [Flightgear-devel] Dynamic scenery notes
Andy Ross writes: The cowbox is too small. At only 1m high, it's really a more appropiate size for a sheepcase. OK, I'll fix that. Next time I'll go to the Central Experimental Farm near my house with a measuring tape. I'm pretty sure, though, that the sheep are no more than 1.5-2ft high at the shoulder. At the other extreme the 8 story building, while scaled correctly, is too large. Buildings this large are very rare, and occur in large numbers only in downtown areas that are better handled by real static scenery. Yes, I agree -- 8-story apartment buildings are not uncommon even in cities of 15,000 people, but they rarely have three sections like that one. I made the building originally to be placed manually at the turn to base leg on the rwy 22 approach at my local airport, and I used it for the urban scenery simply because it was already available. WE NEED BUILDINGS! Preferably we need buildings that are (a) generic and (b) big enough to be clearly identifiable from the air, but no matter what, they must be easy on the texture and poly budgets. Something the size of a barn or house, say, is distinguishable in the middle of a field but not in the middle of a town or city. We need strip malls, three-story suburban office buildings, apartment buildings, low rises of various types, and maybe even the occasional shopping mall or parking garage or row houses. Mostly, we need a variety of non-descript low-rises and stip malls. I'd suggest replacing the urban scenery object with something like a 2-3 story building, or perhaps a cluster of small buildings. Right now, you can look accross the bay from San Francisco and see a huge urban skyline stretching from Oakland to Fremont which isn't even close to what's there in real life. Agreed. My reading of the code is that there is a separate ssgTransform node in front of every one of the objects. That's likely to be a performance bottleneck, if the OpenGL matrix state has to change every four vertices (most GPUs want to flush the stream when the matrix changes). Instead, why not pre-compile the scenery objects for each tile into a single vertex buffer at load time. Unfortunately, then we'd lose LOD granularity and overwhelm the GPU. I agree that we could get away with some grouping, but even individual triangles can be extremely large in flat terrain and can create hundreds or thousands of trees all in range at the same time. We could also pregroup, so that we have clusters of buildings and trees as single objects. That would look nice, but it would cause trouble near the edges of triangles, where several trees or buildings might stick out into the middle of a lake or river (or a runway, for that matter). What framerates are you getting with and without random objects, using today's CVS? I can no longer see any measurable difference on my system. Even better, you could get a very cheap continuous LOD by drawing a distance-dependent prefix of this vertex buffer. That is, draw only the first N objects based on your distance from the tile centroid. Writing a new ssgLeaf node type really isn't so hard -- take a look at the fgPanelNode implementation for a minimalist example. That would be wonderful, if someone wanted to contribute it. All the best, and thanks for the comments, David -- David Megginson, [EMAIL PROTECTED], http://www.megginson.com/ ___ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel
Re: [Flightgear-devel] Dynamic scenery notes
On Thu, 18 Jul 2002 15:44:41 -0400 David Megginson [EMAIL PROTECTED] wrote: WE NEED BUILDINGS! Preferably we need buildings that are (a) generic and (b) big enough to be clearly identifiable from the air, but no matter what, they must be easy on the texture and poly budgets. Something the size of a barn or house, say, is distinguishable in the middle of a field but not in the middle of a town or city. We need strip malls, three-story suburban office buildings, apartment buildings, low rises of various types, and maybe even the occasional shopping mall or parking garage or row houses. Mostly, we need a variety of non-descript low-rises and stip malls. Can you explain: 1) Which tools would one make these with? 2) What format should they be saved in? 3) What guidelines should be followed regarding complexity, textures, etc.? Jon ___ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel