bevy/crates
Marco Buono c2ab3a0402
Do not load prepass normals for transmissive materials (#11140)
Turns out whenever a normal prepass was active (which includes whenever
you use SSAO) we were attempting to read the normals from the prepass
for the specular transmissive material. Since transmissive materials
don't participate in the prepass (unlike opaque materials) we were
reading the normals from “behind” the mesh, producing really weird
visual results.

# Objective

- Fixes #11112.

## Solution

- We introduce a new `READS_VIEW_TRANSMISSION_TEXTURE` mesh pipeline
key;
- We set it whenever the material properties has the
`reads_view_transmission_texture` flag set; (i.e. the material is
transmissive)
- If this key is set we prevent the reading of normals from the prepass,
by not setting the `LOAD_PREPASS_NORMALS` shader def.

---

## Changelog

### Fixed

- Specular transmissive materials no longer attempt to erroneously load
prepass normals, and now work correctly even with the normal prepass
active (e.g. when using SSAO)
2024-01-01 17:04:20 +00:00
..
bevy_a11y
bevy_animation support all types of animation interpolation from gltf (#10755) 2023-12-31 18:01:50 +00:00
bevy_app Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_asset Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_audio Reorder impl to be the same as the trait (#11076) 2023-12-24 17:43:55 +00:00
bevy_core Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_core_pipeline Keep track of when a texture is first cleared (#10325) 2023-12-31 00:37:37 +00:00
bevy_derive Reexport winit::platform::android::activity::* in bevy_winit (#11011) 2023-12-19 20:15:03 +00:00
bevy_diagnostic Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_dylib
bevy_dynamic_plugin
bevy_ecs Implement Deref and DerefMut for In (#11104) 2024-01-01 16:55:07 +00:00
bevy_ecs_compile_fail_tests Rename WorldQueryData & WorldQueryFilter to QueryData & QueryFilter (#10779) 2023-12-12 19:45:50 +00:00
bevy_encase_derive
bevy_gilrs Remove unnecessary path prefixes (#10749) 2023-11-28 23:43:40 +00:00
bevy_gizmos Reorder impl to be the same as the trait (#11076) 2023-12-24 17:43:55 +00:00
bevy_gltf support all types of animation interpolation from gltf (#10755) 2023-12-31 18:01:50 +00:00
bevy_hierarchy Re-export smallvec crate from bevy_utils (#11006) 2023-12-24 15:35:09 +00:00
bevy_input Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_internal Remove unnecessary path prefixes (#10749) 2023-11-28 23:43:40 +00:00
bevy_log Add helper macro's for logging only once (#10808) 2023-12-05 01:56:40 +00:00
bevy_macro_utils Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_macros_compile_fail_tests
bevy_math Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_mikktspace Replace calculation with function call (#11077) 2023-12-23 17:32:26 +00:00
bevy_pbr Do not load prepass normals for transmissive materials (#11140) 2024-01-01 17:04:20 +00:00
bevy_ptr Simplify equality assertions (#10988) 2023-12-16 23:58:41 +00:00
bevy_reflect Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_reflect_compile_fail_tests Fix nested generics in Reflect derive (#10791) 2023-11-29 01:46:09 +00:00
bevy_render Fix Mesh::ATTRIBUTE_UV_0 documentation (#11110) 2024-01-01 16:58:48 +00:00
bevy_scene Rename ArchetypeEntity::entity into ArchetypeEntity::id (#11118) 2024-01-01 16:12:24 +00:00
bevy_sprite refactor collide code (Adopted) (#11106) 2024-01-01 16:57:27 +00:00
bevy_tasks Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_text Replace deprecated elements (#10999) 2023-12-16 23:24:49 +00:00
bevy_time Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_transform Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
bevy_ui Keep track of when a texture is first cleared (#10325) 2023-12-31 00:37:37 +00:00
bevy_utils Fix ci xvfb (#11143) 2023-12-30 09:07:31 +00:00
bevy_window Remove CanvasParentResizePlugin (#11057) 2023-12-21 20:01:22 +00:00
bevy_winit Use WindowBuilder::with_append() to append canvas (#11065) 2023-12-24 17:44:50 +00:00