> Graphic cards are optimized to texture objects. The greatest penalty is > when you do state changes. A state is all attributes that affect the > rendering of a primitive ( point, line or triangle ). A color change is > heavy as well as a texture change. The new Paris Scenery can display > lots of identical building just because they use the same texture. > That way, you can draw hundreds of building with a single state change. > If these buildings where designed using 2 textures, there will be 2 > state changes for each building, so hundreds of state > changes, and that wouldn't be playable.
I think I will use just one texture for every object. My first thought was to build a low res object (without texture) for high distance view and a high res texturized object for small distance view. Id est I will have a single .ac file with two objects inside, and a .xml 'range' animation which switches between them regarding the distance of the viewer. That way I will achieve acceptable quality and speed when the viewer is far away and very accurate visual quality (at the cost of some lower performance) when the observer is very close to the obejct. But I really don't want visual quality at heavy expense of rendering speed. > Texture size has a litle impact on filtering time and a huge one when > card memory is completely filled. In that situation, swapping begins > and very low fps are encountered. I have to conclude that adding details to an object using textures is much better (from a performance point of view) then adding details to the geometry. Correct? > The complete model stay in memory, as well as textures. There is a gain > because less primitives and less state changes are processed by the GPU. > LOD has also an effect on the visual because displaying sub pixel > features usually creates flickers. > > Using Shared models helps saving memory. That way, only one model is > loaded, and it is displayed multiple times. With static objects, every > instance is loaded in memory, with duplicates on geometry and textures. > Changing OBJECT_STATIC to OBJECT_SHARED helped having a decent fps over > Paris, as well as reducing texture size to avoid GPU memory saturation. I am not shure I did understand what you mean. Anyway, I try explaining my point of view and share my opinion. Maybe I am wrong, maybe I miss something. Please comment it. Let's say I fly above an airport. Let's say the airport ground is filled with a 100 3d objects (I am not exagerating) each one consisting of a .ac file which includes two versions (high res and low res) of the same object. Flying high above the ground I have a wide visual, it means I see a lot of the underlaying terrain, complete with all of the 100 objects above mentioned. From that point of view I find useless to let the GPU display all the details of the buldings because of the distance, hence I let the GPU render the lowres versions only and its memory does not need to be filled with all the higres versions (complete with textures). As soon as I fly down, I come closer to those buildings, untill a point where I wish I see more details of some of them (the closer ones), so I let the .xml 'range' animation display the highres texturized version of those closer buildings. That will use more memory then the lowres non texturized ones, and that will need more GPU calculation because of the increased geometry details. But still I don't see _all_ the 100 buildings at the same distance, the most will stay out of sight, or at least distant enough not to be rendered at high quality. So I will accept the low res versions to be shown. Loading and unloading a 3d object from the GPU memory will let the GPU optimize its memory usage and the processor workload. Loading all the objects into GPU memory at once will fill it quick, and could be a waste in case I will not fly down untill the point I really need to see all those details. E.g. I fly near EDDF airport (which is huge) but don't want to land on it, in this case I really don't need all of EDDF highres buildings to be loaded into GPU memory, as long I stay at high altitude. It's enough to me to see a bunch of lowres buildings which let me perceive their shape from a distance. That memory could be used for Wiesbaden airport buildings' objects instead, where I will land after short time. Of course, those airport buildings could not be OBJECT_SHARED since they are not shared at all, every airport has its own hangars, terminals, fire stationa and so on. What's your opinion about that? Roberto -- "Feel free" – 10 GB Mailbox, 100 FreeSMS/Monat ... Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail _______________________________________________ Flightgear-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/flightgear-devel

