Lotus has a really great post about aircraft performance in FSX. I highly reccomend reading the whole post. It’s a bit technical, but does put into practical terms a lot of the ideas about how to create performant aircraft (especially for multiplayer). Draw calls are not always the single performance killer and reducing draw calls is not a silver bullet for creating objects that perform well in the engine. I talk a little about this in my “When is a draw call not a draw call” post. Lotus does a really great job of showing practical numbers from existing addon aircraft.
The reason for some of his findings has to do with what is being updated and sent to the GPU from the CPU. If each of the draw calls in an aircraft is close to 65,000 vertices, then each draw call is sending almost an entirely full vertex buffer update to the card every frame. While it is still only a single draw call, it is a huge amount of data being sent across the pipe. So 35 draw calls with 1000 vertices each does not equal 35 draw calls with 60,000 vertices each. And if you are using poor UV and smoothing techniques, then it is very easy to get a 25,000 polygon model close to that limit for each draw call.
Another comparison I’d love to see is the animation hierarchy in the aircraft. An aircraft can be skinned and have 15 draw calls, but have 10 parallel animation hierarchies that are each 20 levels deep. The amount of data needing to be updated during each frame becomes gigantic (something on the order of 2100 matrix transforms per frame). If that same aircraft were animated with a flat hierarchy (not always easy or even possible to do) it would have about 200 transform matrix updates each frame.
All in all, it’s a great post and a very informative read. Excellent work, Lotus!