- 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.
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.
- 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.
- 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.
- 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).
Not every GPU supports it under a compatibility context. This is an optimization to reduce bandwidth anyway, so we should be fine using rgb16f for now.
- 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.
Previously osm2city buildings did not render under the
Compositor/ALS pipeline with /sim/rendering/shaders/model>0
Now it does. Thanks to merspieler for assistance in
diagnosing the problem.
This fixes compatibility issues with AMD graphics cards that support a OpenGL
3.1 compatibility profile. Integrated Intel GPUs using the Mesa drivers should set the environment variable:
MESA_GL_VERSION_OVERRIDE="3.1COMPAT"
This might not be a definitive solution to fix z-fighting issues, but it's a
good solution meanwhile and can be implemented easily on any shader just by
adding a few lines.