bevy v0.6.0 Release Notes
Release Date: 2022-01-08 // over 2 years ago-
โ Added
- New Renderer
- Clustered forward rendering
- Frustum culling
- Sprite Batching
- ๐ Materials and MaterialPlugin
- 2D Meshes and Materials
- ๐ WebGL2 support
- ๐ฑ Pipeline Specialization, Shader Assets, and Shader Preprocessing
- Modular Rendering
- Directional light and shadow
- Directional light
- Use the infinite reverse right-handed perspective projection
- Implement and require
#[derive(Component)]
on all component structs - Shader Imports. Decouple Mesh logic from PBR
- ๐ Add support for opaque, alpha mask, and alpha blend modes
- bevy_gltf: Load light names from gltf
- ๐ bevy_gltf: Add support for loading lights
- Spherical Area Lights
- Shader Processor: process imported shader
- ๐ Add support for not casting/receiving shadows
- ๐ง Add support for configurable shadow map sizes
- ๐
Implement the
Overflow::Hidden
style property for UI - SystemState
- Add a method
iter_combinations
on query to iterate over combinations of query results - Add FromReflect trait to convert dynamic types to concrete types
- More pipelined-rendering shader examples
- ๐ง Configurable wgpu features/limits priority
- ๐ป Cargo feature for bevy UI
- Spherical area lights example
- Implement ReflectValue serialization for Duration
- bevy_ui: register Overflow type
- ๐ป Add Visibility component to UI
- Implement non-indexed mesh rendering
- add tracing spans for parallel executor and system overhead
- ๐ RemoveChildren command
- report shader processing errors in
RenderPipelineCache
- enable Webgl2 optimisation in pbr under feature
- Implement Sub-App Labels
- Added
set_cursor_icon(...)
toWindow
- ๐ Support topologies other than TriangleList
- ๐ Add an example 'showcasing' using multiple windows
- Add an example to draw a rectangle
- Added set_scissor_rect to tracked render pass.
- Add RenderWorld to Extract step
- re-export ClearPassNode
- 0๏ธโฃ add default standard material in PbrBundle
- add methods to get reads and writes of
Access<T>
- Add despawn_children
- โฑ More Bevy ECS schedule spans
- ๐ Added transparency to window builder
- Add Gamepads resource
- ๐ Add support for #else for shader defs
- Implement iter() for mutable Queries
- add shadows in examples
- Added missing wgpu image render resources.
- Per-light toggleable shadow mapping
- ๐ Support nested shader defs
- use bytemuck crate instead of Byteable trait
- ๐ฑ
iter_mut()
for Assets type - EntityRenderCommand and PhaseItemRenderCommand
- add position to WindowDescriptor
- Add System Command apply and RenderGraph node spans
- ๐ Support for normal maps including from glTF models
- MSAA example
- Add MSAA to new renderer
- ๐ Add support for IndexFormat::Uint16
- Apply labels to wgpu resources for improved debugging/profiling
- Add tracing spans around render subapp and stages
- Add set_stencil_reference to TrackedRenderPass
- Add despawn_recursive to EntityMut
- Add trace_tracy feature for Tracy profiling
- Expose wgpu's StencilOperation with bevy
- add get_single variant
- ๐ Add builder methods to Transform
- add get_history function to Diagnostic
- Add convenience methods for checking a set of inputs
- Add error messages for the spooky insertions
- Add Deref implementation for ComputePipeline
- Derive thiserror::Error for HexColorError
- ๐จ Spawn specific entities: spawn or insert operations, refactor spawn internals, world clearing
- Add ClearColor Resource to Pipelined Renderer
- ๐ remove_component for ReflectComponent
- Added ComputePipelineDescriptor
- Added StorageTextureAccess to the exposed wgpu API
- Add sprite atlases into the new renderer.
- ๐ฒ Log adapter info on initialization
- Add feature flag to enable wasm for bevy_audio
- Allow
Option<NonSend<T>>
andOption<NonSendMut<T>>
as SystemParam - Added helpful adders for systemsets
- ๐ฏ Derive Clone for Time
- ๐ฏ Implement Clone for Fetches
- Implement IntoSystemDescriptor for SystemDescriptor
- implement DetectChanges for NonSendMut
- ๐ฒ Log errors when loading textures from a gltf file
- expose texture/image conversions as From/TryFrom
- [ecs] implement is_empty for queries
- Add audio to ios example
- Example showing how to use AsyncComputeTaskPool and Tasks
- Expose set_changed() on ResMut and Mut
- Impl AsRef+AsMut for Res, ResMut, and Mut
- Add exit_on_esc_system to examples with window
- Implement rotation for Text2d
- Mesh vertex attributes for skinning and animation
- load zeroed UVs as fallback in gltf loader
- Implement direct mutable dereferencing
- add a span for frames
- Add an alias mouse position -> cursor position
- Adding
WorldQuery
forWithBundle
- Automatic System Spans
- Add system sets and run criteria example
- EnumVariantMeta derive
- Added TryFrom for VertexAttributeValues
- add render_to_texture example
- Added example of entity sorting by components
- calculate flat normals for mesh if missing
- Add animate shaders example
- โ examples on how to tests systems
- Add a UV sphere implementation
- Add additional vertex formats
- ๐ gltf-loader: support data url for images
- ๐ glTF: added color attribute support
- Add synonyms for transform relative vectors
๐ Changed
- Relicense Bevy under the dual MIT or Apache-2.0 license
- ๐ [ecs] Improve
Commands
performance - ๐ Merge AppBuilder into App
- Use a special first depth slice for clustered forward rendering
- Add a separate ClearPass
- ๐ bevy_pbr2: Improve lighting units and documentation
- gltf loader: do not use the taskpool for only one task
- System Param Lifetime Split
- Optional
.system
- Optional
.system()
, part 2 - Optional
.system()
, part 3 - Optional
.system()
, part 4 (run criteria) - Optional
.system()
, part 6 (chaining) - Make the
iter_combinators
examples prettier - ๐ Remove dead anchor.rs code
- gltf: load textures asynchronously using io task pool
- Use fully-qualified type names in Label derive.
- ๐ Remove Bytes, FromBytes, Labels, EntityLabels
- ๐ StorageType parameter removed from ComponentDescriptor::new_resource
- ๐ remove dead code: ShaderDefs derive
- 0๏ธโฃ Enable Msaa for webgl by default
- Renamed Entity::new to Entity::from_raw
- bevy::scene::Entity renamed to bevy::scene::DynamicEntity.
- make
sub_app
return an&App
and addsub_app_mut() -> &mut App
- 0๏ธโฃ use ogg by default instead of mp3
- enable
wasm-bindgen
feature on gilrs - Use EventWriter for gilrs_system
- Add some of the missing methods to
TrackedRenderPass
- Only bevy_render depends directly on wgpu
- โก๏ธ Update wgpu to 0.12 and naga to 0.8
- Improved bevymark: no bouncing offscreen and spawn waves from CLI
- Rename render UiSystem to RenderUiSystem
- โก๏ธ Use updated window size in bevymark example
- Enable trace feature for subfeatures using it
- โฑ Schedule gilrs system before input systems
- โ Rename fixed timestep state and add a test
- Port bevy_ui to pipelined-rendering
- โก๏ธ update wireframe rendering to new renderer
- ๐ฑ Allow
String
and&String
asId
forAssetServer.get_handle(id)
- Ported WgpuOptions to new renderer
- Down with the system!
- โก๏ธ Update dependencies
ron
winit
& fixcargo-deny
lists - Improve contributors example quality
- Expose command encoders
- Made Time::time_since_startup return from last tick.
- 0๏ธโฃ Default image used in PipelinedSpriteBundle to be able to render without loading a texture
- make texture from sprite pipeline filterable
- โก๏ธ iOS: replace cargo-lipo, and update for new macOS
- increase light intensity in pbr example
- Faster gltf loader
- Use crevice std140_size_static everywhere
- replace matrix swizzles in pbr shader with index accesses
- Disable default features from
bevy_asset
andbevy_ecs
- โก๏ธ Update tracing-subscriber requirement from 0.2.22 to 0.3.1
- โก๏ธ Update vendored Crevice to 0.8.0 + PR for arrays
- change texture atlas sprite indexing to usize
- โก๏ธ Update derive(DynamicPlugin) to edition 2021
- โก๏ธ Update to edition 2021 on master
- Add entity ID to expect() message
- Use RenderQueue in BufferVec
- ๐ removed unused RenderResourceId and SwapChainFrame
- Unique WorldId
- add_texture returns index to texture
- โก๏ธ Update hexasphere requirement from 4.0.0 to 5.0.0
- ๐ง enable change detection for hierarchy maintenance
- Make events reuse buffers
- 0๏ธโฃ Replace
.insert_resource(T::default())
calls withinit_resource::<T>()
- Improve many sprites example
- โก๏ธ Update glam requirement from 0.17.3 to 0.18.0
- โก๏ธ update ndk-glue to 0.4
- ๐ Remove Need for Sprite Size Sync System
- Pipelined separate shadow vertex shader
- Sub app label changes
- Use Explicit Names for Flex Direction
- 0๏ธโฃ Make default near plane more sensible at 0.1
- Reduce visibility of various types and fields
- Cleanup FromResources
- ๐ Better error message for unsupported shader features Fixes #869
- โฑ Change definition of
ScheduleRunnerPlugin
- Re-implement Automatic Sprite Sizing
- ๐ Remove with bundle filter
- Remove bevy_dynamic_plugin as a default
- Port bevy_gltf to pipelined-rendering
- Bump notify to 5.0.0-pre.11
- Add 's (state) lifetime to
Fetch
- move bevy_core_pipeline to its own plugin
- ๐จ Refactor ECS to reduce the dependency on a 1-to-1 mapping between components and real rust types
- Inline world get
- ๐ Dedupe move logic in remove_bundle and remove_bundle_intersection
- ๐ remove .system from pipelined code
- Scale normal bias by texel size
- ๐ Make Remove Command's fields public
- bevy_utils: Re-introduce
with_capacity()
. - โก๏ธ Update rodio requirement from 0.13 to 0.14
- โก๏ธ Optimize Events::extend and impl std::iter::Extend
- Bump winit to 0.25
- Improve legibility of RunOnce::run_unsafe param
- โก๏ธ Update gltf requirement from 0.15.2 to 0.16.0
- ๐ Move to smallvec v1.6
- โก๏ธ Update rectangle-pack requirement from 0.3 to 0.4
- Make Commands public?
- Monomorphize various things
- Detect camera projection changes
- ๐ฑ support assets of any size
- Separate Query filter access from fetch access during initial evaluation
- ๐ Provide better error message when missing a render backend
- par_for_each: split batches when iterating on a sparse query
- Allow deriving
SystemParam
on private types - ๐ Angle bracket annotated types to support generics
- More detailed errors when resource not found
- ๐ Moved events to ECS
- Use a sorted Map for vertex buffer attributes
- Error message improvements for shader compilation/gltf loading
- ๐ Rename Light => PointLight and remove unused properties
- Override size_hint for all Iterators and add ExactSizeIterator where applicable
- ๐ Change breakout to use fixed timestamp
๐ Fixed
- Fix shadows for non-TriangleLists
- Fix error message for the
Component
macro'scomponent
storage
attribute. - ๐ do not add plugin ExtractComponentPlugin twice for StandardMaterial
- load spirv using correct API
- fix shader compilation error reporting for non-wgsl shaders
- bevy_ui: Check clip when handling interactions
- crevice derive macro: fix path to render_resource when importing from bevy
- fix parenting of scenes
- Do not panic on failed setting of GameOver state in AlienCakeAddict
- โก๏ธ Fix minimization crash because of cluster updates.
- Fix custom mesh pipelines
- Fix hierarchy example panic
- Fix double drop in BlobVec::replace_unchecked (#2597)
- ๐ Remove vestigial derives
- Fix crash with disabled winit
- Fix clustering for orthographic projections
- ๐ Run a clear pass on Windows without any Views
- ๐ Remove some superfluous unsafe code
- clearpass: also clear views without depth (2d)
- Check for NaN in
Camera::world_to_screen()
- Fix sprite hot reloading in new renderer
- Fix path used by macro not considering that we can use a sub-crate
- Fix torus normals
- enable alpha mode for textures materials that are transparent
- fix calls to as_rgba_linear
- Fix shadow logic
- fix: as_rgba_linear used wrong variant
- ๐ Fix MIME type support for glTF buffer Data URIs
- ๐ Remove wasm audio feature flag for 2021
- use correct size of pixel instead of 4
- Fix custom_shader_pipelined example shader
- Fix scale factor for cursor position
- โฌ๏ธ fix window resize after wgpu 0.11 upgrade
- Fix unsound lifetime annotation on
Query::get_component
- โก๏ธ Remove double Events::update in bevy-gilrs
- โฑ Fix bevy_ecs::schedule::executor_parallel::system span management
- Avoid some format! into immediate format!
- Fix panic on is_resource_* calls (#2828)
- Fix window size change panic
- 0๏ธโฃ fix
Default
implementation ofImage
so that size and data match - Fix scale_factor_override in the winit backend
- Fix breakout example scoreboard
- Fix
Option<NonSend<T>>
andOption<NonSendMut<T>>
- fix missing paths in ECS SystemParam derive macro v2
- Add missing bytemuck feature
- Update EntityMut's location in push_children() and insert_children()
- ๐ Fixed issue with how texture arrays were uploaded with write_texture.
- โก๏ธ Don't update when suspended to avoid GPU use on iOS.
- โก๏ธ update archetypes for run criterias
- Fix AssetServer::get_asset_loader deadlock
- Fix unsetting RenderLayers bit in without fn
- Fix view vector in pbr frag to work in ortho
- ๐ Fixes Timer Precision Error Causing Panic
- ๐ [assets] Fix
AssetServer::get_handle_path
- Fix bad bounds for NonSend SystemParams
- Add minimum sizes to textures to prevent crash
- ๐ฑ [assets] set LoadState properly and more testing!
- ๐ฑ [assets] properly set
LoadState
with invalid asset extension - Fix Bevy crashing if no audio device is found
- ๐ Fixes dropping empty BlobVec
- ๐ฑ [assets] fix Assets being set as 'changed' each frame
- drop overwritten component data on double insert
- ๐ Despawn with children doesn't need to remove entities from parents children when parents are also removed
- reduce tricky unsafety and simplify table structure
- Use bevy_reflect as path in case of no direct references
- Fix Events:: bug
- ๐ small ecs cleanup and remove_bundle drop bugfix
- Fix PBR regression for unlit materials
- prevent memory leak when dropping ParallelSystemContainer
- fix diagnostic length for asset count
- Fixes incorrect
PipelineCompiler::compile_pipeline()
step_mode - Asset re-loading while it's being deleted
- Bevy derives handling generics in impl definitions.
- Fix unsoundness in
Query::for_each_mut
- Fix mesh with no vertex attributes causing panic
- Fix alien_cake_addict: cake should not be at height of player's location
- fix memory size for PointLightBundle
- Fix unsoundness in query component access
- ๐ fixing compilation error on macos aarch64
- Fix SystemParam handling of Commands
- Fix IcoSphere UV coordinates
- fix 'attempted to subtract with overflow' for State::inactives