1
0
Fork 0
Commit graph

56 commits

Author SHA1 Message Date
Fernando García Liñán
6041eed8f7 HDR: Improve the parametrization of the atmosphere 2024-01-08 18:26:24 +01:00
Fernando García Liñán
7b0211031a HDR: Improve stars rendering
Previously we did not take into account the atmospheric transmittance
to render the stars, leading to stars being incorrectly rendered in
low visibility conditions.

Also place the stars in the correct render bin.
2024-01-07 16:18:55 +01:00
Fernando García Liñán
746532f098 HDR: Render the Moon, stars and planets
Moon textures have been adapted from the following webpage:

https://svs.gsfc.nasa.gov/4720
NASA's Scientific Visualization Studio
2023-11-06 14:56:45 +01:00
Fernando García Liñán
e12afa0a7d HDR: Fix "floating" shadows in Screen Space Shadows 2023-10-04 02:41:22 +02:00
Stuart Buchanan
ea982e075c WS30 HDR: Use interface blocks 2023-05-08 19:44:37 +01:00
Fernando García Liñán
5f4f51c8ea HDR: Add support for glTF emissive objects 2023-05-04 06:09:36 +02:00
Fernando García Liñán
1e66c4104a HDR: Improved environment mapping
- Terrain and clouds and now rendered on the envmap, with correct aerial
  perspective.
- Each face is rendered on a separate frame to help with performance.
- All faces are updated every 1.5 minutes. This can be changed through a
  property.
2023-05-03 02:03:10 +02:00
Fernando García Liñán
d38e6bffd6 HDR: Fix building vertex attributes 2023-04-28 23:02:42 +02:00
Fernando García Liñán
649e2a0574 HDR: Simplify water shader 2023-04-28 04:58:24 +02:00
Fernando García Liñán
631bc13e94 HDR: Add tree shaders 2023-04-23 23:11:51 +02:00
Fernando García Liñán
4ab57b15c2 HDR: Add missing GL extension 2023-04-23 21:30:29 +02:00
Fernando García Liñán
8a28ac7131 HDR: Add support for random and OSG buildings 2023-04-23 21:26:26 +02:00
Fernando García Liñán
691337a00e HDR: Add separate fog layer to atmosphere
Also use Nasal to feed the shaders' uniforms. Much better than running
the computations on the GPU.
2023-04-21 02:15:42 +02:00
Fernando García Liñán
10cd3fb8c4 HDR: Normal mapping without precomputed tangents
Also tidy up model and terrain shaders. Inputs and outputs to vertex and
fragment shaders are now interface blocks.
2023-04-17 05:09:24 +02:00
Fernando García Liñán
82d415cbd4 HDR: Add remaining aerosol types
Now the properties of the atmospheric medium can be changed through the
property tree.
2023-04-16 07:19:22 +02:00
Fernando García Liñán
e77e5bad9c HDR: Fix aerial perspective banding 2023-04-13 05:57:01 +02:00
Fernando García Liñán
f53a170539 HDR: Better bloom effect
We also now pre-expose our lighting before writing to the HDR buffers.
This solves some precision issues and prevents the Sun from producing
infinite values.
2023-04-13 00:30:02 +02:00
Stuart Buchanan
ce24a3f05f HDR: WS30 basic terrain shader 2023-04-12 18:11:41 +01:00
Fernando García Liñán
23b4e6e26f Fix typo 2023-04-11 17:59:44 +02:00
Fernando García Liñán
8af67bfb2f HDR: Complete refactoring of shader style and naming
See https://wiki.flightgear.org/Shader_Style_Guide.
2023-04-11 15:53:47 +02:00
Fernando García Liñán
c4d19877cf HDR: Significant update
- New atmosphering rendering technique based on my own work.
- Attempt to fix some remaining transparency issues.
- Use a luminance histogram for auto exposure.
- Add support for clustered shading.
- Add WS 2.0 shaders.
- Add 3D cloud shaders.
- Add orthoscenery support.
2023-04-06 00:18:29 +02:00
Stuart Buchanan
d723b0b518 WS30 - Uniform Arrays and lighting model
Use Uniform Arrays instead of Texture1D.

Use ambient/diffuse/specular/shininess material
properties consistently across all WS30 shaders.

Use consistent shading model for photoscenery vs.
landclass to minimize visual difference.
2021-11-10 22:58:44 +00: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
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
a789c24209 HDR: Fix model-combined when not using a normal map 2021-08-25 16:49:08 +02:00
Fernando García Liñán
beb4381ad1 HDR: Fix model-combined objects without normal maps 2021-08-25 15:16:38 +02:00
Fernando García Liñán
aaf6bb9309 HDR: Improve ACES tone mapping curve
The previous one tended to over-expose the final image.
2021-08-25 15:15:57 +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
356ff8ff34 Fix indentation 2021-08-25 04:25:09 +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
b79d09d45f HDR: Prevent materials with roughness=0 from blowing out the lighting 2021-08-22 18:01:30 +02: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
765a7d88f5 HDR: Use precomputed uniforms in the skydome shader 2021-08-19 14:06:25 +02:00
Fernando García Liñán
94f4007793 HDR: Use precomputed uniforms for atmospheric scattering 2021-08-19 12:50:16 +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
Fernando García Liñán
4d34115177 HDR: Increase maximum distance of aerial perspective 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
a00f7ddfaf HDR: Fix Earth appearing to be "rounder" than normal
We have to compensate for the fact that the sky-view LUT contains the view from the camera, but the skydome remains fixed on the ground.
2021-07-29 11:55:01 +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