@@ -714,6 +1138,22 @@ Shadows cast by directional lights or spotlights now have smoother edges. To rev
+### [pbr shader cleanup](https://github.com/bevyengine/bevy/pull/10105)
+
+
+
+in custom material shaders:
+
+- `pbr_functions::pbr` no longer calls to `pbr_functions::alpha_discard`. if you were using the `pbr` function in a custom shader with alpha mask mode you now also need to call alpha_discard manually
+- rename imports of `bevy_pbr::mesh_vertex_output` to `bevy_pbr::forward_io`
+- rename instances of `MeshVertexOutput` to `VertexOutput`
+
+in custom material prepass shaders:
+
+- rename instances of `VertexOutput::clip_position` to `VertexOutput::position`
+
### [`*_PREPASS` Shader Def Cleanup](https://github.com/bevyengine/bevy/pull/10136)
@@ -722,13 +1162,94 @@ Shadows cast by directional lights or spotlights now have smoother edges. To rev
When using functions from `bevy_pbr::prepass_utils` (`prepass_depth()`, `prepass_normal()`, `prepass_motion_vector()`) in contexts where these prepasses might be disabled, you should now wrap your calls with the appropriate `#ifdef` guards, (`#ifdef DEPTH_PREPASS`, `#ifdef NORMAL_PREPASS`, `#ifdef MOTION_VECTOR_PREPASS`) providing fallback logic where applicable.
-### [Allow extensions to StandardMaterial](https://github.com/bevyengine/bevy/pull/7820)
+### [allow extensions to StandardMaterial](https://github.com/bevyengine/bevy/pull/7820)
+
+
+
+manual implementations of `AsBindGroup` will need to be adjusted, the changes are pretty straightforward and can be seen in the diff for e.g. the `texture_binding_array` example.
+
+### [chore: use ExtractComponent derive macro for EnvironmentMapLight and FogSettings](https://github.com/bevyengine/bevy/pull/10191)
+
+
+
+No migration needed
+
+### [Variable `MeshPipeline` View Bind Group Layout](https://github.com/bevyengine/bevy/pull/10156)
+
+
+
+- `MeshPipeline::view_layout` and `MeshPipeline::view_layout_multisampled` have been replaced with a private array to accomodate for variable view bind group layouts. To obtain a view bind group layout for the current pipeline state, use the new `MeshPipeline::get_view_layout()` or `MeshPipeline::get_view_layout_from_key()` methods.
+
+### [update shader imports](https://github.com/bevyengine/bevy/pull/10180)
+
+
+
+naga_oil 0.10 reworks the import mechanism to support more syntax to make it more rusty, and test for item use before importing to determine which imports are modules and which are items, which allows:
+
+- use rust-style imports
+
+```rust
+#import bevy_pbr::{
+ pbr_functions::{alpha_discard as discard, apply_pbr_lighting},
+ mesh_bindings,
+}
+```
+
+- import partial paths:
+
+```rust
+#import part::of::path
+...
+path::remainder::function();
+```
+
+which will call to `part::of::path::remainder::function`
+
+- use fully qualified paths without importing:
+
+```rust
+// #import bevy_pbr::pbr_functions
+bevy_pbr::pbr_functions::pbr()
+```
+
+- use imported items without qualifying
+
+```rust
+#import bevy_pbr::pbr_functions::pbr
+// for backwards compatibility the old style is still supported:
+// #import bevy_pbr::pbr_functions pbr
+...
+pbr()
+```
+
+-
+
+allows most imported items to end with `_` and numbers (naga_oil#30). still doesn’t allow struct members to end with `_` or numbers but it’s progress.
+
+-
+
+the vast majority of existing shader code will work without changes, but will emit “deprecated” warnings for old-style imports. these can be suppressed with the `allow-deprecated` feature.
+
+-
+
+partly breaks overrides (as far as i’m aware nobody uses these yet) - now overrides will only be applied if the overriding module is added as an additional import in the arguments to `Composer::make_naga_module` or `Composer::add_composable_module`. this is necessary to support determining whether imports are modules or items.
+
+### [Bind group entries](https://github.com/bevyengine/bevy/pull/9694)
-Manual implementations of `AsBindGroup` will need to be adjusted, the changes are pretty straightforward and can be seen in the diff for e.g. the `texture_binding_array` example.
+- Calls to `RenderDevice::create_bind_group({BindGroupDescriptor { label, layout, entries })` must be amended to `RenderDevice::create_bind_group(label, layout, entries)`.
+- If `label`s have been specified as `"bind_group_name".into()`, they need to change to just `"bind_group_name"`. `Some("bind_group_name")` and `None` will still work, but `Some("bind_group_name")` can optionally be simplified to just `"bind_group_name"`.
### [Detect cubemap for dds textures](https://github.com/bevyengine/bevy/pull/10222)
@@ -747,6 +1268,14 @@ If you are matching on a `TextureError`, you will need to add a new branch to ha
Replace calls to the `Image::size()` method with `size_f32()`.
Replace calls to the `Image::aspect_2d()` method with `aspect_ratio()`.
+### [Use “specular occlusion” term to consistently extinguish fresnel on Ambient and Environment Map lights](https://github.com/bevyengine/bevy/pull/10182)
+
+
+
+- If Fresnel highlights from Ambient and Environment Map lights are no longer visible in your materials, make sure you’re using a higher, physically plausible value of `reflectance` (⪆ 0.35).
+
### [Fix fog color being inaccurate](https://github.com/bevyengine/bevy/pull/10226)