bevy/assets
robtfm c99351f7c2
allow extensions to StandardMaterial (#7820)
# Objective

allow extending `Material`s (including the built in `StandardMaterial`)
with custom vertex/fragment shaders and additional data, to easily get
pbr lighting with custom modifications, or otherwise extend a base
material.

# Solution

- added `ExtendedMaterial<B: Material, E: MaterialExtension>` which
contains a base material and a user-defined extension.
- added example `extended_material` showing how to use it
- modified AsBindGroup to have "unprepared" functions that return raw
resources / layout entries so that the extended material can combine
them

note: doesn't currently work with array resources, as i can't figure out
how to make the OwnedBindingResource::get_binding() work, as wgpu
requires a `&'a[&'a TextureView]` and i have a `Vec<TextureView>`.

# Migration Guide

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.

---------

Co-authored-by: Robert Swain <robert.swain@gmail.com>
2023-10-17 21:28:08 +00:00
..
android-res/mipmap-mdpi android example polish (#845) 2020-11-11 16:31:16 -08:00
branding Minor Dark/Light Logo Tweak (#4051) 2022-02-27 02:09:42 +00:00
data Asset system rework and GLTF scene loading (#693) 2020-10-18 13:48:15 -07:00
docs Improve Mesh documentation (#9061) 2023-07-31 18:55:42 +00:00
environment_maps EnvironmentMapLight, BRDF Improvements (#7051) 2023-02-09 16:46:32 +00:00
fonts Add the license for the FiraMono font (#3589) 2022-05-06 19:29:43 +00:00
models Remove monkey.gltf (#9974) 2023-09-30 02:50:31 +00:00
pixel Add pixelated Bevy to assets and an example (#6408) 2022-11-14 22:15:46 +00:00
scenes (De) serialize resources in scenes (#6846) 2023-03-20 21:17:02 +00:00
shaders allow extensions to StandardMaterial (#7820) 2023-10-17 21:28:08 +00:00
sounds Add simple collision sound to breakout (#4331) 2022-04-14 20:20:38 +00:00
textures Add parallax mapping to bevy PBR (#5928) 2023-04-15 10:25:14 +00:00