Hi, Sir,
First, I am sorry for disturbing you with such a question.
Because I really do not know to which group pf members should I ask this
question and I urgently need a solution, I just ask anybody in the devl
group. I think this problem should be easy for the persons in this group.
My question is as below:
I just begin to study Flightgear. I am trying to compile it on Win7+
VisualStudio2010 environment.
When I was compiling SimGear, , , etc, are required.
But I could not find them anywhere in my system.
(They are natively Linux files.) I tried to download them from the Internet,
and compiled again. This time, I got too many " redefinition"
compile errors, caused by the declarations in the header files.
So, what should I do to fix this problem?
Thanks a lot.
X.Chen
发件人: Renk Thorsten
收件人: FlightGear developers discussions
发送日期: 2012年9月19日, 星期三, 上午 3:59
主题: [Flightgear-devel] Some ideas for better performance
Hi All,
unfortunately, due to personal reasons, I won't have much coding time for the
rest of the year, which means that I probably won't have a chance to do some
things I sort of promised to do (make more shaders work in the atmospheric
light scattering framework, help making atmospheric light scattering work in
Rembrandt...). If anyone else wants to have a go at converting model shaders or
the runway shader, I can still try to help, but right now I've even started up
Flightgear just once during the last 4 weeks, so coding is just not something I
can do.
Anyway - there are some ideas and observations which I made and where I wanted
to follow up, and I thought I just put them up here so that they may be
discussed.
I'm interested in making the appearance of the scenery more realistic with
improved light and procedural texturing, i.e. things that end up in the
shaders. At least on my system, if I run any eye candy features, the bottleneck
is shaders (I can render a normal scene from the ufo without any shader
effects with about 200 fps, on the other hand rendering urban effect on the
whole screen drives me down to ~5 fps - I'm sure various statements which have
been made on this list that our performance would be CPU limited are based on
something, it's just nothing I am able to experience on my system, on my system
it's shaders, more specifically fragment shader). So, that's what I would like
to address - making Flightgear faster while expensive shaders are on.
My general understanding of the situation
There's a tendency for all the high quality eye candy to end up in the fragment
shaders - see urban effect, water sine wave shader or my procedural texturing.
In some sense that's good, because that decouples performance from the
visibility range (since the number of pixels doesn't change), but it may also
be bad if that constant performance is too low. I don't know how it is for
others, but when I switch urban effect on, it relies on not too many patches of
urban terrain in my field of view - if ~1/5 of the scene is urban, I still get
decent performance, but if all I see is urban it becomes unusable and single
digit experience. I guess there's part of the reason Stuart spent so much time
on random buildings... My point being, something like the urban effect doesn't
really generalize, we can't put expensive stuff all into the fragment shader if
we can anticipate that it will fill a lot of the scene.
Shuffling some load into the vertex shader helps a lot in the near zone (where
a triangle has many pixels, and they're all filled based on three expensive
operations at the corners) but loses out at the far edge of the visual range
(where several vertices may fall into a single pixel). At least on my system,
some things only run with usable speed (provided the visibility doesn't exceed
a limit) because there's load in the vertex shader, so there's virtue in making
the vertex shader do stuff.
My understanding of Rembrandt is that essentially all operations go to the
fragment stage since geometry is rendered in one initial pass and then
buffered. If the situation is fragment-shader limited in the default scheme, my
guess is that it will be even worse fragment-shader limited in deferred
rendering. But admittedly what I have to say about deferred rendering is a bit
guesswork.
Clouds are a bit of an unrelated topic, as they can be very heavy on the vertex
shader (all the billboard rotations need to be computed...).
So, ideally I'd like to
* make use of the speedup vertex shading operations can provide in the near
zone without buying into their disadvantages in the far zone
* speed the fragment shaders up as much as possible
Schemes to speed things up vertex shading (and what doesn't work)
The obvious solution to speed up a vertex shader is to drop/pass through
vertices, or to reduce the number of vertices up front. I understand none of
this is much of an issue for Rembrandt where the geomet