> We have to accept some inconsistencies if we want even vaguely tolerable > performance, and pretty much everything you said convinces me we should > switch to the 'b' approach, or family of them (see below), as the > default option after 2.10, to get as much test and feedback as possible > before 2.12
Okay, I;m taking your and Stuart's feedback then as input to draft a plan (and I do hope for 3.0 then rather than 2.12). The 'classic' terrain rendering could then be organized into quality levels as follows: 0) - default skydome, all shader effects off 1) - atmospheric light scattering on, no terrain shader effects, only one base texture per terrain type is loaded 2) - atmospheric light scattering on, up to three textures per landclass (base, de-tiling/gradient, hires overlay), some 8 procedural noise frequencies, terrain pixel postprocessing (snow, dust, wetness,...) 3) - atmospheric light scattering on, up to 6 textures per landclass (base, de-tiling/gradient1, hires overlay, gradient2, grain overlay, hires dot-noise overlay), full spectrum of procedural Perlin and sparse dot noise frequencies, terrain pixel postprocessing That'd be one shader per quality level, which is doable to maintain, because these are ubershaders, so there's no need to maintain too many distinct terrain effect shaders (currently we would have runway, airport grass cover, water and urban in addition - I'm still toying with the idea of writing a fully procedural rock shader though...). Also, I can then simplify the structure of the shader code to remove conditionals. As evident from the list, I have adapted the ultra such that it allows a two-tier transition on slopes just like the existing transition shader, and I've introduced a 'transition_model' parameter which can be declared in materials.xml which governs the behaviour of the de-tiling texture - if set to 1, it reproduces together with the gradient2 texture the exact behaviour of the current transition effect, if set to 0 it just does a random overlay without taking slope into account, if set to 0.5 it reproduces the current behaviour doing a mixture of randomness and slope to determine the overlay texture). I will also make the slopes at which the transition happens configurable. So in essence the whole scheme is controlled from materials.xml only, and it is largely not needed to make special effects for landclasses, which should make things easier for regional texture designers. I will make a wiki page documenting how the materials declaration influences the terrain. What is currently lost are things like the exact heightmap effect on terrain, also the crop shader. If anyone wants those, he needs to go the old way and use a dedicated effect rather than the ubershader, the same way the urban or water effecst are done, I would not convert them. What is also lost is the inverse slope transition (this effect changes for instance a 'Rock' landclass to grass or forest appearance if the terrain is not sloped, giving flat mountaintops a grass cover). I dropped this intentionally, because it makes the strong assumption that Rock can only exist on steep slopes - inverse slope changes rock on Alaskan coastline to forests for instance, also open flat rock can exist in desert areas. What would also currently be lost are smaller effects like the flag (there are a bunch of shaders in the directory for which I'm not sure what they're doing...) - the maintainers would have to port those themselves to ensure the correct response to fog and light. I don't know too much about models - I would convert the ubershader, but there are probably aircraft which just go via specular map or normal map shaders - these would have to be converted to the ubershader by the aircraft maintainers. There are also implementations of landing lights outside Rembrandt - I would not support those and rather focus on Rembrandt for secondary light source simulation. With regard to Rembrandt, my plan of attack would be the hope that Fred (or someone else) can get the base framework done so that I can learn the workflow from a running example, and I could then help adding the various effects to that. * Thorsten ------------------------------------------------------------------------------ Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery and much more. Keep your Java skills current with LearnJavaNow - 200+ hours of step-by-step video tutorials by Java experts. SALE $49.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122612 _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel