1
0
Fork 0
No description
Find a file
Stuart Buchanan e5123eeb46 WS30 : terrain shaders from vs
Squashed commit of the following:

commit e7c89ffb600d1bf5cee2936b7dbff31089452745
Author: vs <vs2009@mail.com>
Date:   Fri Nov 5 23:44:35 2021 +1000

    WS30 shaders:

    - WS30-ALS and WS30-ALS-ultra fargment and vertex shaders: Fix NDotL being used before it is initialised. Rename varying diffuse_term from WS2 terrain shaders to light_diffuse_comp as the full diffuse term is not calculated until the fragment shader.
    - WS30-ALS-ultra.frag: Enable haze and lighting by default.

commit 9b55ad051a8d7f3568dfdcd6890655942999e8d0
Author: vs <vs2009@mail.com>
Date:   Wed Nov 3 22:50:29 2021 +1000

    WS30 terrain shaders: ws30-ALS-ultra.frag

    - For power users looking to profile transitions on different GPUs: The test phase toggles and settings for different transition options are available at the start of ws30-ALS-ultra.frag, along with explanations, and how to get accurate profile results on different GPUs. Just need to change a few numbers, save, and debug menu > configure dev extensions > reload shaders to activate.

    - Note: at a minimum, small scale transitions to remove the 'squareness' due to the landclass texture need to be used even on old GPUs.

    - All transition options are off by default. ws30-ALS-ultra.frag is active when the terrain quality slider is set to Ultra. Start by turning one of small or large scale transitions.

    - Texture mixing for small and large scale transitions don't work together, to reduce texture lookups. Turn one off when using the other.

    - Landclasses with contrasting colours make transition issues more visble. The driver control panel texture filtering settings reduces issues with seams at landclass borders.

    - ws30-ALS.frag is left untouched in this commit, for comparison and reviewing. ws30-ALS.frag is active when terrain quality slider is set High to Low.

    Changes:

    - Implement large scale transitions and small scale de-pixelisation of landclasses by searching the landclass texture. Several options and quality levels are available for profiling on different GPUs.
    - There are fixes for multiple issues dealing with texture rendering.

    Changelog:

    1.0 - Small-scale transitions:
    -- a) Remove squareness due to landclass texture by growing neighbour landclasses onto others depending on a growth priority. This feature uses 2 landclass texture lookups, 1 noise lookup, and only 1 ground texture lookup per point. For now the growth priority is simply the landclass id number. If this approach is used, growth priority would be a materials parameter. A way to set default growth priority by landclass via an xml file would be needed. There is flickering noise at long ranges due to small scale detail in the noise function used for growing landclasses. Partial derivative are used to turn off the feature, but turning off the feature too quickly still shows some square ness in distant landclasses.
    -- b) Reduce squareness due to landclass texture by mixing base textures of neighbouring landclasses. This is not perfect, as perfectly square shapes turn into perfectly square shapes with perfectly smudged edges. This uses 2 landclass texture lookups, and 2-3 ground texture lookups.
    -- c) - a) and b) can be run at once. This option will also fade the growths  gradually with distance. This uses 2 landclass texture lookups, 1 noise lookup, and 2-3 ground texture lookups.

    2.0 - Large scale transitions:
    -- a) Implemented by searching the landclass texture. The search pattern is current landlcass for the fragment at the center, and n search points in four directions along the s and t axes forming a cross. The search directions are configurable in the code, adn a minimum of 3 directions are needed. The step size is configurable. The fewer the steps, the larger the bands formed in the transitions. There are 1+4*n landclass lookups per n search points. e.g. 1 search point: 5 lookups, 4 search points:17 lookups, 10 search points: 41 lookups.
    -- b) An option to dither the transition bands by adding mixing noise is availble. This breaks up the visual impact of bands.
    -- c) There is some functionality to grow neighbours on a large scale. No growth priority is used - bothe neighbours will lose definition. A more advanced implementation can use several material parameters to define the nature of the transition: some transitions are very sharp in nature like with agriculture, other transitions can be very gradual, some transitions are patchy. Materials can have competing parameters, to determine which neighbour grows or has a shorter transition on one side. These parameters will need a way of specifying defaults by landclass.

    3.0 - Fixes
    -- a) - Fix seams at landclass borders. These are caused by different ground textures being stretched by different amounts. At the border, an incorrect mip-map level is looked up, causing a colour disontinuity in addition to the difference between landclasses. The reason the mip-map LoD is incorrect is because GPUs use 4 neighbouring pixels to figure out how fast texture coordinates change with respect to screenspace x and y (i.e. partial derivaitves), and use that information to pick a mip-map level. At a landlcass border, this calculation is incorrect.
    -- b) Fix seams at borders caused by the current detiling function. This is due to the detiling function changing the amount textures are stretched, as well as messing with coordinates.
    -- c) The solution to a) and b) is to use textureGrad() to lookup textures. It allows specifying partial derivatives. The partial derivatives for the normal texture coordinates are obtained by built-in funcions, and these need to be multiplied by each stretching factor, including different stretching inside conditionals. All future texture lookups that use custom coordinate scaling/manipulation need to use textureGrad. This fixes various signs of incorrect mip-map lod with distance and view angle (textures look stable/solid).
    -- d) Fix ground textures being stretched out of proportion in the detiling function. This is caused by tile dimensions not being unequal and texture stretching.
2021-11-05 19:59:32 +00:00
AI Updated Traffic for Tunisair Group 2021-11-05 12:53:54 +00:00
Aircraft Add lines to the ufo output that can directly be mass imported 2021-09-16 11:35:24 +01:00
Aircraft-aisim Add some documentation. Updates from validates data for aircraft. 2020-10-01 08:04:46 +02:00
Aircraft-uiuc fix path for beech99 doco 2002-05-01 01:27:18 +00:00
Airports WS3: Renew apt.dat file 2021-02-27 00:29:01 -06:00
Astro Expanded stars catalog from Chris 2019-03-03 11:46:47 +00:00
ATC Improvements to spoken ATIS 2016-04-24 10:45:57 +02:00
Compositor HDR: Implement GTAO (Ground Truth Ambient Occlusion) 2021-09-01 04:26:03 +02:00
Docs docs: XML sound changes 2021-10-18 15:31:20 +02:00
Effects WS30: landclass and texture lookups in fragment shader 2021-10-21 21:31:03 +01:00
Environment Fix issue 2537, re-enable the wind interpolation when live data is (temporarily) unavailable. 2021-02-08 09:44:31 +01:00
Fonts add fonts: B612 2019-02-19 17:13:33 +00:00
Geodata Add a description of the red channel 2020-12-04 09:27:23 +01:00
gui Added 'Time mode' dialogue to File menu. 2021-10-24 15:35:47 +01:00
HLA hla: Bring the object model in line with fgviewer. 2012-12-16 17:46:34 +01:00
Huds Huds/Instruments/ladder.xml: fix position of pitch=0 to match horizon. 2020-11-01 09:32:39 +00:00
Input Add missing closing bracket in conditional (Note to self: NEVER commit untested code... :-) ) 2021-09-20 20:43:30 +02:00
Lighting Cancel specular highlights due to sun at night 2012-07-12 09:27:35 +02:00
Materials WS30 - Set Effects for ws30Roads etc. 2021-10-20 23:22:51 +01:00
Models Remove wildfire code from fgdata and move to fgaddons 2021-08-31 20:06:14 +01:00
MP Sync with VirtualAir (http://virtualair.sourceforge.net/). 2010-02-10 10:41:25 +00:00
Nasal Local weather: change unknown landcover message to use logprint 2021-10-18 15:31:19 +02:00
Navaids Add Truman TACAN to carrier navaids 2017-09-01 12:35:05 +03:00
Phi Fix attributes for multiplayer and AI airplanes in Phi (fix #2274) 2020-06-25 11:11:39 +01:00
Protocol David Megginson: here are the generic protocols I implemented for ForeFlight's sim integration (also supported by Garmin Pilot). The XATT one isn't fully working in Garmin Pilot (I've checked that the output is correct by sending it to a file), so I'd be grateful if anyone with an iOS device could try it in ForeFlight. The XGPS one is working flawlessly in Garmin Pilot on Android. 2017-07-05 09:03:45 +02:00
Shaders WS30 : terrain shaders from vs 2021-11-05 19:59:32 +00:00
Sounds Add turbojet fan sound by Bjoern K; edited to remove pops/cracks 2021-06-18 12:58:09 +01:00
Textures HDR: Add SMAA as the default antialiasing technique 2021-08-23 01:05:41 +02:00
Timezone Add missing timezone definitions: When not within country boudnaries ZoneDetect switches to ETC/GMT. This fixes the crash James was seeing. 2021-03-13 11:22:02 +01:00
Translations Update "nonQt" files for all languages 2021-11-03 02:16:41 +01:00
Video gui/dialogs/vr-options: Add mirror options 2021-09-11 23:43:55 +01:00
.gitignore Add gitignore file. 2012-02-18 14:26:17 +01:00
AtlasPalette Fix type 2005-01-31 14:20:38 +00:00
AUTHORS Updates in preparation for the 0.9.8 release. 2004-12-21 00:21:11 +00:00
ChangeLog text file updates. 2002-02-18 15:37:50 +00:00
COPYING Updates in preparation for the 0.9.8 release. 2004-12-21 00:21:11 +00:00
defaults.xml WS30: Remove WS30 LoD range factor 2021-10-12 21:48:12 +01:00
httpd-settings.xml Phi: move URL to the browsers root directory 2015-04-18 13:03:46 +02:00
joysticks.xml joysticks.xml: Manual revert of unintended changes from Alexis merge. 2010-10-29 20:43:09 +02:00
keyboard.xml keyboard.xml: remove duplicate commands (fix by Benedikt Hallinger) 2021-11-05 13:14:43 +01:00
location-presets.xml Updated default location to BIKF 2019-05-24 11:43:13 +01:00
mice.xml mice.xml: don't let mouse move control surfaces while paused or replaying. 2021-01-01 17:19:08 +00:00
NEWS Preparation for 0.9.11-pre1 release. 2007-05-15 16:09:55 +00:00
options.xml Update the list of options displayed for -h -v 2021-11-03 00:42:27 +01:00
README spelling fixes 2007-11-20 18:09:20 +00:00
README-textures-ng Stat adding Direct Draw Surface terrain textures 2011-09-05 12:01:45 +01:00
runfgfs.bat Initial revision. 2001-06-11 22:11:49 +00:00
Thanks Credit Martin's work for the world scenery 2016-01-31 20:49:21 +01:00
version Set version information 2020-10-13 22:31:39 +01:00

Welcome to the FlightGear Flight Simulator project.
===================================================

The primary web page for this project is: http://www.flightgear.org

For basic installation instructions see the "INSTALL" file.

Before you can run FlightGear you will also need to download and
install the "base" package which is a collection of textures, sounds,
sample scenery, and other data files needed by the sim.

For additional install help for specific platforms please browse the
"docs-mini/" subdirectory.

More complete documentation is available from our web page as a
separate distribution.

Please take a look at the "Thanks" file for a list of people who have
contributed to this project.  If you have contributed something but
don't find your name in this file.  Please send a polite reminder to
http://www.flightgear.org/~curt

For a summary of changes/additions by version see the "NEWS" file.

This project is GPL'd.  For complete details on our licensing please
see the "COPYING" file.

For information on available mailing lists, mailing list archives, and
other available source code and documentation, please visit our web
site.

FlightGear is a product of the collaboration of large international
group of volunteers.  FlightGear is a work in progress.  FlightGear
comes with no warranty.  We hope you enjoy FlightGear and/or find it
of some value!