1
0
Fork 0
Commit graph

617 commits

Author SHA1 Message Date
Stuart Buchanan
ffe8738065 WS30: Correct phototexture coordinates 2021-11-06 16:21:58 +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
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
Fahim Imaduddin Dalvi
ae119f29cf Fixed FOV side effect on light sprite size.
The light sprite diminished to zero size as the FOV was decreased
(in sim zoom), and increased considerably as the FOV was increased.
This commit fixed this by taking the FOV into account to keep the light
sprite size roughly constant across the valid FOV range.
2021-09-04 13:41:02 +03:00
Fernando García Liñán
96a6e6c9bf HDR: Implement GTAO (Ground Truth Ambient Occlusion) 2021-09-01 04:26:03 +02:00
Fernando García Liñán
c21951407d HDR: Better technique ordering 2021-08-31 18:42:21 +02:00
Fernando García Liñán
e505c79618 Better handling of transparent objects in Classic
- model-combined-transparent is deprecated.
- model-transparent can be used to let some rendering pipelines know that
an object is transparent.
- In the case of Classic, model-transparent just inherits from model-default
and the object is rendered normally.
2021-08-31 18:25:28 +02:00
Fernando García Liñán
3459e7ddfe HDR: Use gl_VertexID instead of the MVP matrix in fullscreen passes 2021-08-31 18:02:38 +02:00
Fernando García Liñán
9f39644199 HDR: Optimize the G-Buffer and do not separate the occlusion texture
- The G-Buffer layout has been redesigned to be 96 bits per pixel. There are 24
unused bits that can be used for extra material parameters later (like
clearcoat).
- Add better debug views for the G-Buffer.
- Use octahedron normal encoding. This yields the same results as the previous
method but uses 16 bits less.
- Use rg11fb10f for the environment mapping cubemaps.
- Tweak the shadow mapping parameters and add a colored debug mode.
- Only render shadow maps for objects that inherit from model-default.eff or
model-pbr.eff instead of having a fallback Effect. Now transparent objects
should be ignored (if they are marked as such with model-transparent or
similar).
- Remove the separate occlusion texture. Now the PBR Effect expects a single
texture where R=occlusion, G=roughness and B=metallic.
2021-08-27 00:03:43 +02:00
Fernando García Liñán
55410e9d35 HDR: Port chrome.eff 2021-08-25 14:32:22 +02:00
Fernando García Liñán
9983a0c68c HDR: Water rendering 2021-08-25 04:17:09 +02:00
Fernando García Liñán
eea955168e HDR: Organize shadow-related files and add screen space shadows 2021-08-24 23:38:56 +02:00
Fernando García Liñán
eed433ce9f HDR: Use stencil buffer for optimization purposes 2021-08-23 12:44:26 +02:00
Fernando García Liñán
8662ce0a86 HDR: Add SMAA as the default antialiasing technique 2021-08-23 01:05:41 +02:00
Fernando García Liñán
2443c5bce7 HDR: Fix WS 2.0 ocean tiles and remove hdr-geometry fallback Effect 2021-08-22 18:15:23 +02:00
Stuart Buchanan
a442615c68 WS30: Fix WS30 fragment shaders 2021-08-21 17:15:15 +01:00
Fernando García Liñán
b52fe3bf34 HDR: Remove glass.eff minimum alpha hack 2021-08-19 20:19:55 +02:00
Fernando García Liñán
7ff31e9004 HDR: Properly handle AC3D transparent materials 2021-08-19 18:20:37 +02:00
Fernando García Liñán
212f8fdab9 HDR: Add support for glTF transparent objects 2021-08-19 01:42:32 +02:00
Fernando García Liñán
05994100ea HDR: Better handling of model-combined for backwards compatibility 2021-08-18 12:27:03 +02:00
Fernando García Liñán
f5bc6df9fb HDR: Use a reversed depth buffer to increase precision and avoid Z-fighting 2021-08-17 20:58:48 +02:00
Fernando García Liñán
13df616ca6 HDR: Support glTF models 2021-08-16 17:10:01 +02:00
Fahim Imaduddin Dalvi
81af0f37c2 Shader-based scenery lights.
This commit implements shader-based scenery lights with support for
efficient rendering of a large number of lights, animations and
directionality. Detailed commit log can be found at [1]. Detailed
discussions can be found on the mailing list [2][3][4].

[1] https://sourceforge.net/u/fahimdalvi/fgdata/ci/feat/scenery-shader-lights/~/tree/
[2] (Timed animation stops working in certain configurations) https://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/4A7AC359-63B3-4D8A-815B-09823BCEFF27%40gmail.com/#msg37095923
[3] (Shader-based scenery lights) https://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/63E3C131-7662-4F59-B2E6-03208C78EF96%40gmail.com/#msg37190517
[4] (Shader-based scenery lights Part 2) https://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/74F18179-CA34-4901-A44E-15498ECC230A%40gmail.com/#msg37331695
2021-08-07 21:42:20 +03:00
Fernando García Liñán
e745684c33 HDR: Use a better DFG LUT
The previous one had 8 bit precision, this one has 16 bit precision and is stored on a DDS texture.
2021-07-31 19:13:19 +02:00
Fernando García Liñán
467468ef3a HDR: Improve exposure and bloom handling 2021-07-31 19:13:19 +02:00
Fernando García Liñán
526491790e HDR: Improve envmap pre-filtering 2021-07-31 19:13:19 +02:00
Fernando García Liñán
5c1c28c536 HDR: Improve PBR Effect 2021-07-31 19:13:19 +02:00
Fernando García Liñán
871654c16f HDR: Better handling of the Sun
Add transmittance to the Sun illuminance value to get correct colors at every time of day.
Also improved the Sun disk rendering.
2021-07-31 19:13:19 +02:00
Fernando García Liñán
af29642423 HDR: miscellaneous changes
- Add an utility linearizeDepth function to help visualize the depth buffer for debug purposes.
- Use 'color0' instead of 'color' for all color attachments.
- Do not write to the HDR buffer if a fragment doesn't need shading (depth = 1).
2021-07-29 08:45:17 +02:00
Fernando García Liñán
9b9ae5cf38 HDR pipeline: even better atmospheric scattering
Implementation of "A Scalable and Production Ready Sky and Atmosphere Rendering Technique" by Sébastien Hillaire (2020).
2021-07-28 09:40:04 +02:00
Fernando García Liñán
016585e176 HDR pipeline: Use MRT to prefilter the environment map 2021-07-26 17:21:20 +02:00
James.Hester
c6b526f343 Create overlay mixing scales based on texture scale. 2021-07-26 11:13:00 +01:00
Fernando García Liñán
9eaef501c7 HDR pipeline: a lot of improvements to atmospheric scattering 2021-07-26 12:11:37 +02:00
Fernando García Liñán
1215f1eba2 HDR pipeline: add placeholder shaders for WS 3.0 2021-07-24 13:35:53 +02:00
Fernando García Liñán
96313e7eb0 Initial commit of the HDR pipeline 2021-07-23 07:46:05 +02:00
Fernando García Liñán
49fa42faac Add shaders for osgText 2021-05-14 22:45:36 +02:00
Erik Hofman
55209d40b5 Cleanup:
- water.eff: technique 2: air_pollution uniform is not used by water-ALS-base.frag
- water.eff: ocean_flag is now a parameter
- water-inland.eff now inherits from water.eff as it's a copy, except for ocean_flag value
2021-05-10 11:52:28 +02:00
Stuart Buchanan
8a94ffa7e1 WS30 Use proper inheritance for ws30water 2021-05-08 20:41:58 +01:00
Erik Hofman
5abacfbaf4 Also use the new Gray-Alpha texture for water depth information for ws30 water too. 2021-05-07 15:39:48 +02:00
Erik Hofman
e741d069ab Use the new Gray-Alpha texture for water depth information for inland water too 2021-05-07 15:24:47 +02:00
Erik Hofman
055ce55be4 Use a Gray-Alpha texture for water depth information and use the globe-colors.jpg texture for water color. 2021-05-07 15:14:56 +02:00
Stuart Buchanan
c87798c610 WS30i: Initial coastlines 2021-05-03 15:47:13 +01:00
Erik Hofman
6d0c1439f0 There is no reason not to keep ocean_depth_1 as a JPEG file saving around 120MB of diskspace (and installer space) 2021-05-01 12:55:16 +02:00
Fernando García Liñán
3497d531fc Add dummy techniques to model-combined.eff
This should fix issues with empty techniques in effects inheriting from model-combined.
2021-04-29 12:44:58 +02:00
Stuart Buchanan
4db5d00c16 Simplify building.eff, fix lack of orthoTexCoord 2021-04-25 21:36:02 +01:00
James Turner
bde07c8862 Fix inherits-from breaking lightmap.eff fallback 2021-04-22 10:29:59 +01:00
Fernando García Liñán
23f908665f Fix random buildings shader errors 2021-04-16 07:46:35 +02:00
Fernando García Liñán
b6c0e65a38 Fix terrain-overlay.eff not properly checking for geometry shaders 2021-04-02 21:44:17 +02:00
Fernando García Liñán
69387f09f4 Reduce shader complexity and implement graphics presets
- All non-ALS Effects have been removed (except generic ones from model-default and terrain-default).
- The rendering dialog has been reworked to accomodate the changes.
- All necessary properties have been added to graphics-properties.xml
- Five graphics presets have been added: Minimal, Low, Medium, High and Ultra.
- Some unused properties have been removed from defaults.xml
2021-03-31 04:05:34 +02:00
Stuart Buchanan
bd4b4ffbec WS30: Clean up WS30 Effect.
Remove redundant and possibly confusing texture assignment
2021-03-28 19:48:14 +01:00
Stuart Buchanan
0e578c1e78 WS30: Initial Water Effect and configuration
Separate Effect and configuration in landclass-mapping.xml
to identify which landclasses should use it.
2021-03-20 21:52:36 +00:00
Erik Hofman
f3ded8b3c2 Add support for snow on the rooftops 2021-03-02 11:51:27 +01:00
Scott Giese
09d6163ef7 Maintenance: cityLM Effort
remove leading slash
2021-02-27 00:26:39 -06:00
Stuart Buchanan
9d357e58e6 WS30: Improve ALS frame-rate
... by removing depth buffer check for scenery.
2021-02-06 18:01:58 +00:00
Stuart Buchanan
580c375d4b WS30: Use perlin texture to reduce tiling
Use a perlin noise texture to rotate some of the landclass
textures to reduce tiling.

Also add a quality=1 technique which uses it.
2021-01-26 20:17:17 +00:00
Stuart Buchanan
d058b514f2 WS30: Add basic shaders 2021-01-23 17:15:12 +00:00
Fernando García Liñán
916322d0ed Add clustered shading support to most Effects and shaders 2020-12-23 11:10:34 +01:00
Fernando García Liñán
7158dfdff3 Revert "Add clustered shading support to most Effects and shaders"
This reverts commit b3237e207a.
2020-12-22 17:22:05 +01:00
Fernando García Liñán
b3237e207a Add clustered shading support to most Effects and shaders 2020-12-22 10:53:31 +01:00
Stuart Buchanan
ba89f4c153 WS30: Improved material atlas
Add
- texture size
- shininess
- diffuse
- specular

from material.xml into the fragment shader via sampler1D.
2020-12-08 21:15:13 +00:00
Stuart Buchanan
3e3593119c WS30: Shader change to use texture atlas
These changes use the generated Texture2DArray for
texture lookup, supporting arbritary sets of material
textures.
2020-12-05 13:11:59 +00:00
Fernando García Liñán
6a15207b42 Fix taxiway flickering at lower shader quality levels 2020-12-03 19:25:01 +01:00
Scott Giese
76f7f1b698 Photoscenery: Initial commit
Author: Nathaniel Warner
2020-11-23 19:48:01 -06:00
Stuart Buchanan
2a30377124 WS3.0: Remove Effect dependence on ALS.
For the moment, as we have only one technique, stop it from
only being active if ALS is active.
2020-11-21 22:07:40 +00:00
Fernando García Liñán
7c16104149 Add the possibility to use shadow mapping on model-interior 2020-11-17 17:21:01 +01:00
Fernando García Liñán
d2e5ad9d60 Remove unused fallback Effect 2020-11-17 15:28:01 +01:00
Fernando García Liñán
9b589f8061 Change shadow fallback technique index to -10
Canvas displays stop working with a technique index of 1000. There is no apparent reason for this, but changing it to 0 or a lower value fixes the issue. There doesn't seem to be any negative consequences from doing this.
2020-11-17 15:28:01 +01:00
Fernando García Liñán
ed3cbf96ff Make model-interior use a separate vertex shader
generic-ALS-base.vert uses shadows, while model-interior does not.
2020-11-17 00:57:56 +01:00
Fernando García Liñán
fc33a8d71a Fix non-ALS runway shader not implementing shadows 2020-11-17 00:41:02 +01:00
Fernando García Liñán
d35c160a50 Add a dummy technique with index 7 to model-combined
This keeps backwards compatibility with aircraft that implement technique 7 from Rembrandt.
2020-11-17 00:15:09 +01:00
Fernando García Liñán
a3a8f9123e Make Compositor default
- Remove all Compositor Effects and Shaders.
- Unify the low-spec and ALS pipelines in a single pipeline called 'Classic'.
- Readd shadow mapping.
- Move the WS30 Effect and fragment shader out of the Compositor-specific directories.
2020-11-16 13:46:30 +01:00
James.Hester
8de70d32d2 Remove requests to generate normals as these are no-ops, because
the Shaders do not access the generated attributes.
2020-05-03 07:29:34 +01:00
Stuart Buchanan
fc27175690 Reduce shader attribute usage by packing floats
Previously we required 6 shader attributes to pass
in all the required information for the building shader.
By using packing techniques this has been reduced to 4.

This should improve support for integrated graphics cards.
2020-03-26 22:06:21 +00:00
Delta Echo
e727d6d4e3 Implement rotation into wingflex shader 2020-02-23 17:49:02 +00:00
Delta Echo
3bf12ce8e7 Minor changes, use int for type instead of organic bool 2020-02-01 11:38:39 +01:00
Delta Echo
be7e278f1c Improve wingflex shader+effect 2020-01-31 16:52:20 +01:00
Stuart Buchanan
5a0fc45853 Fix Building share when model shader off. 2020-01-27 13:38:22 +00:00
Stuart Buchanan
119fb5efe2 Random Buildings - improved texture mapping
Previously the front and side faces of random/OSM buildings
had identical texture coordinates.  This resulted in the sides
of buildings texture mapping being squeezed or stretched.

This change generates a separate texture mapping for the sides
of the buildings.
2019-11-23 17:08:04 +00:00
Fernando García Liñán
fb7f1545a0 Compositor: Ported most Effects to the compositor 2019-10-26 01:42:48 +02:00
Stuart Buchanan
564e7b31fd Shader buildings multiple roof types
Shader buildings now support different roof types
- flat
- gabled
- hipped
- pyramidal

Primarily for osm2city use.
2019-10-08 21:39:40 +01:00
Stuart Buchanan
87e9118965 Shader buildings - split wall and roof tex index
Previously there was very limited texture variations
as a given texture index was used for both the wall
and ceiling.  Now these can be specified separately,
allowing for more variation in both STG defined and
random buildings.

Requires simgear commit 053bda26a43314a91b01b08cd4617da82f7ab807
2019-09-25 21:56:22 +01:00
Stuart Buchanan
4784a929d7 Instance based random buildings
Replace random buildings with one using proper instancing.
Also implement more control over rendering of random buildings.
see README.scenery for details.
2019-08-20 17:02:27 +01:00
Scott Giese
f43ea66022 Cliffs effect and fragment shader by James Hester.
Based on rock-ALS.frag and rock.eff.
2019-03-31 15:28:34 -05:00
Thorsten Renk
3e4234717b ALS: Traffic shader uses car images on texture - artwork by Gilberto Agostinho 2019-01-14 13:57:02 +02:00
Thorsten Renk
7552c2921e ALS: Add display effect - dust overlay texture provided under GPL 2+ by Martin Litzenberger 2018-09-01 09:54:42 +03:00
Thorsten Renk
a4960e14fa ALS: Detailed scattering model for light on Cirrus clouds 2018-09-01 09:42:34 +03:00
Thorsten Renk
3ebc1af5ac Add building flag to cityLM (OSM structure effect) to get fallback up direction 2018-09-01 09:25:59 +03:00
Thorsten Renk
cce0fac2f8 ALS: New cloud rendering detail level with more dramatic Mie scattering at cloud fringes done inside fragment shader 2018-08-30 09:17:36 +03:00
Thorsten Renk
69e8d90247 ALS: Tentative fix for random building fog issue II - fall back to old up-vector computations when building flag is set 2018-02-11 09:46:21 +02:00
Thorsten Renk
6575f2f71e Traffic shader: disable normal map request in effect as we don't seem to supply one and the fallback produces odd results 2018-01-30 10:06:04 +02:00
Thorsten Renk
d5a8eb4713 ALS: Tentative fix for cloud shadows on overlay layer 2018-01-29 09:38:28 +02:00
Thorsten Renk
d9e55dc2e5 Improvements to Earthview: enable changing cloud density, fix aurora z-ordering issue, let moonlight give a relief effect to clouds 2018-01-29 09:25:38 +02:00
Thorsten Renk
e5f4b0a511 More infrastructure for perception filtering of moonlight 2017-11-13 10:27:25 +02:00
Thorsten Renk
405e754583 Tentatively fix z-ordering issues with geometry shader grass 2017-11-13 09:49:35 +02:00
Thorsten Renk
a913d3be38 Fix missing display size uniforms for ALS glass shader with filter option 2017-09-19 11:46:30 +03:00
Thorsten Renk
a3b8131a97 Change overlay render bin (seems to be better-behaved) 2017-09-18 13:16:29 +03:00
Thorsten Renk
a7e2ffc869 Some fixes for the ALS overlay shader 2017-09-18 12:47:21 +03:00
Thorsten Renk
7df5690f08 ALS terrain overlay shaders, not yet used, terrain definitions will follow post-release 2017-09-16 09:44:18 +03:00
Thorsten Renk
7c72687ed7 ALS: rotor wash effect for volumetric grass and water shaders 2017-06-27 11:01:23 +03:00