> I'm not sure this is necessary. I think an opt-in checkbox would
> suffice. After all FlightGear has been around for personal experiments
> for a very long time. So why not this option.

I don't mind leaving it - the rational for deleting it is that the texture 
sheets take up space and download bandwidth and the shader instructions take up 
GPU registers for everyone - even those who are not interested.


So, let me just try to explain better, because we do have a case study to see 
what's likely to happen next.

Lauri introduced the skydome shader a while ago. That was controlled by 
Rayleigh, Mie and density sliders. I think these are pretty technical terms - 
I'm not sure the average user knows or is interested in what Rayleigh 
scattering is. So we have a new project with impressive graphics arriving on 
the scene. What was the reaction?

The developer community largely supported it, someone coded a place in the GUI. 
What I did not hear are Mathias' remarks that all this is a very bad idea and 
Lauri should have done it differently. I did not hear that Rayleigh, Mie and 
density are complicated concepts and we need to simplify that because the user 
gets confused otherwise. I did not hear that cranking density all the way down 
or up it is completely possible to generate an airless Mars-sky or a 
super-dense greenish gas giant atmosphere and that we need to prevent the user 
from moving the sliders that way. I did not hear that we shouldn't implement 
this because it produces glaring graphical artefacts due to the mismatch with 
the terrain shading. I did not hear that it doesn't work under any amount of 
heavier fog, because the skydome is never fogged.

The user by and large community loved it. There are series of screenshots from 
the time where you can see that users happily accept playing with Rayleigh and 
Mie, accept looking at obvious mismatches with the terrain just to get the sky 
pictures.

(Well, there was one rather critical voice - that was me. But since I believe 
in constructive criticism, I didn't point out the flaws before I had read up 
O'Neill's original article, concluded that he doesn't understand what he's 
really solving, re-derived the scheme from scratch by just solving the 
integrals analytically, and then concluded what was missing in order to make 
things realistic, and when I started pointing out the flaws, I could offer a 
clear path to correct them. As it turned out, I also ended up implementing it 
myself.)

We may conclude that the user loves shiny and exciting graphical features, is 
willing to accept an un-intuitive GUI that can produce unrealistic outcome and 
is even willing to accept massive graphical artefacts under some conditions.

The funny thing is - when I finally fixed the artefacts by writing the matching 
terrain shader, THEN everyone started complaining why effect XY didn't work any 
more when the skydome was on. It was irrelevant that the artefacts matching 
terrain and skydome were gone, but the fact that one could not longer have 
bumpmapped planes together with the skydome shader really bugged people. We may 
conclude that the user *really* loves shiny graphics, no matter the cost 
otherwise.

(Btw, - could anyone tell Mathias what the end user wants? The user wants an 
ubershader - that's the single most requested feature I had to deal with in the 
last year...)

Of course, the skydome shader is a non-trivial beast with lots of dynamics in, 
so once one changes from the isotropic default skydome to the dynamical beast, 
the minimal matching terrain shader suddenly uses 220 lines of light and fog 
code rather than just 2 lines. Pretty much anyone can tell you that if you make 
a system 100 times more complex, it's going to take some time to get it free of 
all trouble. At which point it's very helpful if the surrounding community 
realizes that simple fact and tries for some constructive input - which may be 
as simple as one or two more folks who explain forum users how the FG shader 
system works and why effects can't simply be switched on in a new framework and 
why this is not a bug, or helps by diagnosing flaws rather than just pointing 
at them.

It turns out that in the event I was also able to remap the 
Rayleigh/Mie/density parameter space to a 2-parameter space covering all the 
situations relevant for the Earth atmosphere, ths preventing unrealistic input, 
 handing one of the new parameters to the weather system and leaving the other 
under user control. In principle this implies we could have removed the 
Rayleigh/Mie/density control - but when I asked if that should be done, the 
decision was made here to keep it (!). 

So, what do I learn from that case study as it applied to a potential 
procedural season model?

1) Users are likely to love it, no matter if the GUI has three additional 
sliders or not. Enthusiastic forum responses seem to confirm that.

2) In the case of the skydome, I was able to get a heuristics throwing out the 
unrealistic input. Anders suggests to build a similar heuristics here. 
Realistically, who is going to do that? I've been thinking for the last 1 1/2 
month about the problem, and I have concluded that I can't do it. So if anyone 
thinks it can be done, please give me a concrete sketch of how, or I will stick 
with my opinion.

3) Some amount of support from the devel community is essential if the project 
is complex. A complicated project has to be embraced and backed by a decision 
to do it. That doesn't mean everyone helps coding, but it does mean people help 
communicating to users why strange results occur, help providing ideas for the 
GUI, help out in small ways (for instance, 'gluon' gave me a better (rgb) 
triplet for the base color of the sky, which improved the results tremendously 
- it's not big in terms of coding, but costs lots of time and patience to get 
right). If there are competing ideas around (as in the case here discussing 
static season schemes, like Stuart's tree scheme would be) and there is at this 
point support for the static scheme, but not for the dynamic scheme, then it 
makes no sense to compete.

4) The current scheme allows obviously unrealistic input - I can select winter 
textures for Jamaica, and I will see the snow-covered Caribbean. This hasn't 
bothered anyone for years. Among the first things I get to hear about 
procedural seasons at at proof of concept stage is: It doesn't fit autumn as in 
the UK at full slider position. I'd perhaps think that even a semi-realistic 
autumn at any slider position is better than no autumn at all. Procedural snow 
by texture was in for a long time before I started working on it. It didn't 
bother anyone that trees didn't automatically adapt before, but one talk about 
procedural seasons start, this gets on the table. Rayleigh/Mie/density was 
actively kept in the GUI even given that we have a model which allows to remap 
them into intuitive parameters - but the prospect of having to adjust more than 
one seasonal slider is suddenly very scary and confusing for users. Given that, 
I predict a high probability that whatever goes wrong in the scheme, several 
people will immediately point out 'told you so, was a stupid idea to begin 
with, I've always said...'

5) What I do on my harddisk is my business. I don't have to worry about a 
fool-proof GUI, I don't have to deal with hardware incompatibilities, I don't 
have to explain for the nth time why X is not so easy, I only get to deal with 
users who specifically want the feature and are hence constructive.

Given the alternatives, I'd say that 5) has a lot of appeal. Coming up with a 
procedural continuous season model is a complex task, everyone here knows my 
track record for dealing with complex environment models and can draw 
conclusions if I'm up to the task or not, there is an existing proof of 
concept, given my track record and the proof of concept the feedback was very 
negative, so my conclusion is that the project has insufficient support. I am 
specifically not looking forward to complaints along 'but in my region, trees 
turn yellow and not red' or 'shouldn't the trees be different as a function of 
altitude' or 'this is really bad because I need to reduce my tree density from 
1.5 to 1.3 in order to get the same framerate as before.

So, please feel free to use what is committed, please feel free to ask me if 
you want to have whatever I develop beyond that, but that's where it stops for 
me. I've fought twice  to make real two rather complex projects a reality, in 
both cases the level of support up-front was higher than for the procedural 
season idea, I'm not going to do it a third time. Either you see the potential 
in it, or you don't, I'm not going to argue for days to make everyone else see 
it.

Cheers,

* Thorsten
------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, 
is your hub for all things parallel software development, from weekly thought 
leadership blogs to news, videos, case studies, tutorials, tech docs, 
whitepapers, evaluation guides, and opinion stories. Check out the most 
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to