1
0
Fork 0
Commit graph

10191 commits

Author SHA1 Message Date
vs
64e5abda41 WS30 shaders:
Add WS3 detailed technique using the "6" slot. Port the ALS haze, lighting, and math parts of the detailed and ultra shaders. The texture lookups are left out.

Shader selection based on terrain quality setting:

- Ultra - ws30-ALS-ultra frag/vert.

- High and Medium - ws30-ALS-detailed frag/vert. The shaders switch code paths based on quality level uniform.

- Low - ws30-ALS frag/vert.

Changelog:

ws30-ALS vertex shaders:

- Ambient colour material colour doesn't seem to be used in the vertex shader, and isn't sent to fragment shaders currently. Regional materials only define non-default ambient colour of vec4(0.0) for water, ocean etc. Otherwise the default value of vec4(0.2, 0.2, 0.2, 1.0) is used.

ws30-ALS.frag:

- Set alpha of color to diffuse_term.a, to be consistent with WS2 implementation.

ws30-ALS-ultra.frag and ws30-ALS-detailed.frag

- World pos is assigned a value to allow noise functions to compile.

- Swatch_size is temporarily set to 2000m instead of the xsize texture dimension to allow noise math to run while landclass search and texture arrays are being looked up. Swatch_size is used to adjust the wavelength of multiple overlay mixing noise wavelengths based on how far the textures are stretched (WiP WS2 feature). There are some noise calculations that could run while the first landclass lookup happens. If this is not enough, the selection of calculated noise wavelengths to add could change based on how far the textures are stretched, instead of changing the wavelengths at calculation time.

- Move photoscenery technique no "4" after technique no "7" without changing the index (in case the low index is needed for photoscenery). This makes viewing a diff with the WS2 effect easier.

Performance: Currently there's only 1 ground texture lookup and landclass transitions for that texture. The ultra shader looks up 5 more textures. Probably transitions for 1 more texture need to be supported, as often a base and overlay texture are mixed contributing heavily to visible colour. The math overhead is mostly present, except for noise math being better hidden than in the eventual version. Some of the texture array lookups in the full version may be hidden by the math - depending on GPU memory handling compared to calculation speed.
2021-11-10 00:25:09 +10:00
Stuart Buchanan
851f47f576 WS30: Fix errors on AMD 2021-11-07 18:08:49 +00:00
Stuart Buchanan
ffe8738065 WS30: Correct phototexture coordinates 2021-11-06 16:21:58 +00:00
Stuart Buchanan
f53283be12 WS30: Correct orthophoto texture coordinates 2021-11-06 15:29:22 +00:00
Stuart Buchanan
b043981992 WS30: Initial photoscenery effect
Very basic - just uses the texture.
2021-11-06 14:46:39 +00:00
vs
78df0cb68c WS30 shaders:
Power users looking to profile on different GPUs: the controls and toggles, as well as a guide on how to get accurate results are now in: Shaders/ws30-ALS-landclass-search-functions.frag .

Changelog:
- Move landclass search functions in ws30-ALS-ultra.frag into a shader include: ws30-ALS-landclass-search-functions.frag . These controls should be removed when appropriate.
- 2 development controls to reduce haze and/or lighting are left at the top of ws30-ALS-ultra.frag .

(cherry picked from commit 5196dbd4ebd5f586a7261dc3ae46aa50218caf91)
2021-11-06 19:12:04 +10:00
Julian Smith
06b3fe62e5 gui/dialogs/flight-recorder.xml: improved layout a little. 2021-11-05 21:57:02 +00:00
Stuart Buchanan
aaa6c3ff42 WS30: Fix merge markers. 2021-11-05 20:03:51 +00:00
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
Stuart Buchanan
bf55997a56 WS30: Improved ambient color
Previous we just applied gl_LightSource[0].ambient without
multiplying it by the texture itself, so it just lightened
everything.

This fixes that.  (ws30-ALS-detailed.frag still to do)
2021-11-05 19:55:05 +00:00
Yves Tolosa-Joas
baba195a36 Updated Traffic for Tunisair Group 2021-11-05 12:53:54 +00:00
Michael Danilov
e9fda0dbbc keyboard.xml: remove duplicate commands (fix by Benedikt Hallinger) 2021-11-05 13:14:43 +01:00
Roman Ludwicki
414c7c4770 Update "nonQt" files for all languages
Update "nonQt" Polish transaltions
2021-11-03 02:16:41 +01:00
Roman Ludwicki
c905e5e5c0 Update the list of options displayed for -h -v
Add missing options
Remove orphaned translations
2021-11-03 00:42:27 +01:00
Yves Tolosa-Joas
c0e667225f Updated Traffic for Transavia NL and Transavia France 2021-10-25 10:28:37 +01:00
Yves Tolosa-Joas
51730bd8bf Updated Traffic for AeroMexico and AeroMexicoConnect 2021-10-25 10:28:37 +01:00
Yves Tolosa-Joas
ed4e88a6a9 Updated Traffic and Liveries for Eastern Airways UK 2021-10-25 10:28:37 +01:00
Stuart Buchanan
63487bbe7b WS30 ultra shader - port ambient lighting fix
commit aca259acaccffbaf1cb264be423dda72c106150e
Author: vs <vs2009@mail.com>
Date:   Sat Oct 23 22:55:56 2021 +1000

    WS30 shaders: varying fix

commit 91b194f6766d432206cb013d99e0a96cd34ff33b
Author: vs <vs2009@mail.com>
Date:   Sat Oct 23 22:17:03 2021 +1000

    WS30 ultra shader: port the ambient lighting fix.
2021-10-24 21:36:39 +01:00
Julian Smith
c81870cff1 Added 'Time mode' dialogue to File menu.
Allows choice of real-time or simple-time modes.
2021-10-24 15:35:47 +01:00
Stuart Buchanan
fc42ef3fe4 WS30: Include ambient light in ALS fragment shader
Previously only the diffuse term was considered in the fragment
shader, leading to very dark scenery and deep shadows.

Now the ambient light term is also included making the scenery
much closer to the way it should be lit.
2021-10-21 21:34:53 +01:00
Stuart Buchanan
0bce3c966f WS30: landclass and texture lookups in fragment shader
commit e131ffaca7b2c934474f0e447b5852cb4c7c8d4a
Author: vs <vs2009@mail.com>
Date:   Fri Oct 15 22:19:42 2021 +1000

    WS30: landclass and texture lookups in fragment shader:

    Changelog:

    - Testing: Procedural random landclass function, get_random_landclass(). 1). Avoids a texture lookup for   profiling. 2). Creates squares of configurable size with controllable random landclass ranges - to test   landclass transition algorithms and quickly profile lots of landclasses in view. It's also possible to put   pressure on GPU memory even with 1 lookup of ground textures per fragment, by reducing size to <20m and   viewing from altitude.

    - Add ALS ultra technique as no 5, move existing ALS technique to no. 6. Add WS30-ALS-ultra frag & vert in   preparation for eventual ALS ultra port. Change comments/variables to match using a texture array instead   of atlas. Sampler name: atlas -> textureArray.

    - Testing/optimisation of de-tiling: WS30-ALS.frag: reorder perlin detiling to make noise source easier to   switch. WS30-ALS-ultra.frag: Create alternative to perlin noise used for reducing tiling that avoids a   texture lookup - to profile and optimise. This is commented out. The performance difference in the final  version depends on memory pressure versus arithmetic load of the full shader. It varies by GPU and what's  in view. In future, once a full ALS  port is done, maybe it'll be more efficient to run a higher quality  de-tiling algorithm all the time to avoid branching overhead due to effects like agriculture which need  more de-tiling. De-tiling code in shaders should /eventually/ match CPU-side de-tiling of texture masks  used for object and vegetation placement. De-tiling code in GPUs might be subject to precision and  numerical artifacts, and if so maybe the texture lookup version would work better. The same applies to  noise used for rendering WS3 water waves and collision queries. One option is to use exactly the same glsl  code, with a C++ header to convert glsl syntax e.g. https://github.com/g-truc/glm .
2021-10-21 21:31:03 +01:00
Stuart Buchanan
38dc00faf1 WS30 - Set Effects for ws30Roads etc. 2021-10-20 23:22:51 +01:00
Richard Harrison
0dcbfdbf53 docs: XML sound changes 2021-10-18 15:31:20 +02:00
Richard Harrison
b5b9568bc7 Local weather: change unknown landcover message to use logprint 2021-10-18 15:31:19 +02:00
Richard Harrison
dc697141b8 Tyre effects (spray, smoke) rework
Spray density realism improved by using a curve for the density and permitting the trigger to be changed (default 0.2)

Touchdown smoke trigerred by WoW changing using the velocity as a factor and then using a low pass filter on this to fade out the smoke. This results in smoke for a brief period that appears to be more realistic. F-14 example: https://i.imgur.com/FkwgoYV.gifv
2021-10-18 15:31:19 +02:00
Richard Harrison
9549655c2e AI: added fallback model for 777 (instead of AF 777)
- adjusted to not show gear
- use lightmap
- use navlights
2021-10-18 15:31:18 +02:00
Yves Tolosa-Joas
dda3fdbc7d Updated Traffic for Blue Air 2021-10-15 09:42:38 +01:00
Yves Tolosa-Joas
df5fe189ff Added Traffic and Livery for SykyLeaseCargo 2021-10-15 09:42:38 +01:00
Yves Tolosa-Joas
2da4f91e27 Moved Blue Air traffic to its new ICAO code BLA 2021-10-15 09:42:38 +01:00
Michael Danilov
e1c4bc1d92 keyboard.xml: fix aileron trim sign. 2021-10-15 03:20:24 +02:00
Roman Ludwicki
dde56304fc Update Polish translations for Qt 2021-10-14 14:11:57 +02:00
Roman Ludwicki
f2756bff81 i18n: refresh the FlightGear-nonQt.xlf files
Remove no more used `menu/interface-config`.

Add `menu/highlighting`, `menu/vr-options`, `options/system-time`,
`options/gmt`, `options/local-aircraft-time`.

Correct tip text from "Hold [Shift] while looking around to move the
view up, down, left or right" to "Hold Ctrl ...".

Corrections for Polish nonQt translations.
2021-10-14 01:14:16 +02:00
Florent Rougon
623bf0ffde Fix typo: locale-aircraft-time -> local-aircraft-time
Fix this before this contaminates all translation files.
2021-10-14 01:01:24 +02:00
Stuart Buchanan
e934445f91 WS30: Remove WS30 LoD range factor
Better handled by camera controls.
2021-10-12 21:48:12 +01:00
b'Fernando Garc\xc3\xada Li\xc3\xb1\xc3\xa1n
75bb602384 Merge /u/amalon/fgdata/ branch vr_3 into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/244/
2021-10-08 14:18:07 +00:00
Julian Smith
8c9e45ade3 Added simple highlighting dialogue on the 'Help' menu.
gui/dialogs/highlighting.xml
    Enable/disable highlighting dialog, plus shows highlighted dialog names
    etc.

gui/menubar.xml
    Added link to highlight dialog to help menu.
2021-10-07 18:21:27 +01:00
Stuart Buchanan
428cbb0abc WS30 - Line feature texturing. 2021-10-01 22:02:44 +01:00
Yves Tolosa-Joas
a24e4d9ad4 Updated Traffic for LOT Polish Airlines, removed duplicated tail number from SAS and Nordstar 2021-09-28 13:33:04 +01:00
Yves Tolosa-Joas
315f0330a4 Updated Traffic for Air Caraibes 2021-09-28 13:33:04 +01:00
Yves Tolosa-Joas
37f43bd671 Updated Traffic for Corsair 2021-09-28 13:33:04 +01:00
Yves Tolosa-Joas
8a219b1924 Updated Traffic for Braethens 2021-09-28 13:33:04 +01:00
Yves Tolosa-Joas
5aee98fdca Updated Livery and Traffic for DirectFlight Airtask Shetland service 2021-09-28 13:33:04 +01:00
Yves Tolosa-Joas
3647ca70fb Updated Liveriy and Traffic fir Cyprus Airways 2021-09-28 13:33:03 +01:00
Yves Tolosa-Joas
2ee8cde6da relocating DirectFlight traffic to under correct ICAO Code DCT 2021-09-28 13:33:03 +01:00
Michael Danilov
ae99e855b5 Advanced graphics options: fix missing rounding of cloud density 2021-09-25 02:27:39 +02:00
James Hogan
43305c09b3
defaults: Add VR visibility-mask property
Add VR visibility-mask property to defaults.xml so it initialises early
and so it is automatically saved.
2021-09-22 10:54:11 +01:00
Yves Tolosa-Joas
2568214ada Repointed Fallback BN Islander to new model 2021-09-21 17:32:00 +01:00
Yves Tolosa-Joas
e143415b57 Updated Liveries for SAS AI models 2021-09-21 17:32:00 +01:00
Durk Talsma
08ecc06204 Add missing closing bracket in conditional (Note to self: NEVER commit untested code... :-) ) 2021-09-20 20:43:30 +02:00
Durk Talsma
382a7af397 Step 1 in converting the Honeycomb Bravo throttle quadrant axis and button bindings to FlightGears HID input structure.This file efffectively replaces all the bindings I had introduced in the joystick binding file, and adds gear up/down control. 2021-09-19 17:48:59 +02:00