bevy v0.8.0 Release Notes
Release Date: 2022-07-30 // over 1 year ago-
โ Added
- Callable PBR functions
- Spotlights
- Camera Driven Rendering
- Camera Driven Viewports
- ๐ Visibilty Inheritance, universal
ComputedVisibility
, andRenderLayers
support - ๐ Better Materials:
AsBindGroup
trait and derive, simplerMaterial
trait - โก๏ธ Derive
AsBindGroup
Improvements: Better errors, more options, update examples - ๐ Support
AsBindGroup
for 2d materials as well - Parallel Frustum Culling
- Hierarchy commandization
- Generate vertex tangents using mikktspace
- Add a
SpatialBundle
withVisibility
andTransform
components - Add
RegularPolygon
andCircle
meshes - Add a
SceneBundle
to spawn a scene - Allow higher order systems
- Add global
init()
andget()
accessors for all newtypedTaskPools
- Add reusable shader functions for transforming position/normal/tangent
- ๐ Add support for vertex colors
- ๐ Add support for removing attributes from meshes
- Add option to center a window
- Add
depth_load_op
configuration field toCamera3d
- ๐จ Refactor
Camera
methods and add viewport rect - ๐ Add
TextureFormat::R16Unorm
support forImage
- Add a
VisibilityBundle
withVisibility
andComputedVisibility
components - ๐ Add ExtractResourcePlugin
- Add depth_bias to SpecializedMaterial
- Added
offset
parameter toTextureAtlas::from_grid_with_padding
- Add the possibility to create custom 2d orthographic cameras
- bevy_render: Add
attributes
andattributes_mut
methods toMesh
- Add helper methods for rotating
Transform
s - Enable wgpu profiling spans when using bevy's trace feature
- bevy_pbr: rework
extract_meshes
- Add
inverse_projection
andinverse_view_proj
fields to shader view uniform - Add
ViewRangefinder3d
to reduce boilerplate when enqueuing standard 3DPhaseItems
- Create
bevy_ptr
standalone crate - Add
IntoIterator
impls for&Query
and&mut Query
- Add untyped APIs for
Components
andResources
- Add infallible resource getters for
WorldCell
- ๐ Add
get_change_ticks
method toEntityRef
andEntityMut
- Add comparison methods to
FilteredAccessSet
- Add
Commands::new_from_entities
- Add
QueryState::get_single_unchecked_manual
and its family members - Add
ParallelCommands
system parameter - Add methods for querying lists of entities
- Implement
FusedIterator
for eligibleIterator
types - Add
component_id()
function toWorld
andComponents
- Add ability to inspect entity's components
- Add a more helpful error to help debug panicking command on despawned entity
- Add
ExactSizeIterator
implementation forQueryCombinatonIter
- Added the
ignore_fields
attribute to the derive macros for*Label
types - Exact sized event iterators
- Add a
clear()
method to theEventReader
that consumes the iterator - Add helpers to send
Events
fromWorld
- ๐ Add file metadata to
AssetIo
- Add missing audio/ogg file extensions: .oga, .spx
- ๐ฑ Add
reload_asset
method toAssetServer
- Allow specifying chrome tracing file path using an environment variable
- Create a simple tool to compare traces between executions
- Add a tracing span for run criteria
- Add tracing spans for
Query::par_for_each
and its variants. - ๐ Add a
release_all
method onInput
- Add a
reset_all
method onInput
- ๐ Add a helper tool to build examples for wasm
- bevy_reflect: add a
ReflectFromPtr
type to create&dyn Reflect
from a*const ()
- 0๏ธโฃ Add a
ReflectDefault
type and add#[reflect(Default)]
to all component types that implement Default and are user facing - Add a macro to implement
Reflect
for struct types and migrate glam types to use this for reflection - bevy_reflect: reflect arrays
- bevy_reflect: reflect char
- bevy_reflect: add
GetTypeRegistration
impl for reflected tuples - Add reflection for
Resources
- bevy_reflect: add
as_reflect
andas_reflect_mut
methods onReflect
- Add an
apply_or_insert
method toReflectResource
andReflectComponent
- bevy_reflect:
IntoIter
forDynamicList
andDynamicMap
- bevy_reflect: Add
PartialEq
to reflectedf32
s andf64
s - Create mutable versions of
TypeRegistry
methods - bevy_reflect: add a
get_boxed
method toreflect_trait
- 0๏ธโฃ bevy_reflect: add
#[reflect(default)]
attribute forFromReflect
- bevy_reflect: add statically available type info for reflected types
- Add an
assert_is_exclusive_system
function - ๐ bevy_ui: add a multi-windows check for
Interaction
(we dont yet support multiple windows)
๐ Changed
- Depend on Taffy (a Dioxus and Bevy-maintained fork of Stretch)
- Use lifetimed, type erased pointers in bevy_ecs
- Migrate to
encase
fromcrevice
- โก๏ธ Update
wgpu
to 0.13 - Pointerfication followup: Type safety and cleanup
- bevy_ptr works in no_std environments
- Fail to compile on 16-bit platforms
- Improve ergonomics and reduce boilerplate around creating text elements
- ๐ป Don't cull
Ui
nodes that have a rotation - Rename
ElementState
toButtonState
- ๐ Move
Size
tobevy_ui
- ๐ Move
Rect
tobevy_ui
and rename it toUiRect
- Modify
FontAtlas
so that it can handle fonts of any size - Rename
CameraUi
- Remove
task_pool
parameter frompar_for_each(_mut)
- Copy
TaskPool
resoures to sub-Apps - ๐ Allow closing windows at runtime
- ๐ง Move the configuration of the
WindowPlugin
to aResource
- Optionally resize
Window
canvas element to fit parent element - Change window resolution types from tuple to
Vec2
- โก๏ธ Update time by sending frame
Instant
through a channel - Split time functionality into
bevy_time
- Split mesh shader files to make the shaders more reusable
- Set
naga
capabilities corresponding towgpu
features - Separate out PBR lighting, shadows, clustered forward, and utils from pbr.wgsl
- Separate PBR and tonemapping into 2 functions
- Make
RenderStage::Extract
run on the render world - 0๏ธโฃ Change default
FilterMode
ofImage
toLinear
- bevy_render: Fix KTX2 UASTC format mapping
- Allow rendering meshes without UV coordinate data
- Validate vertex attribute format on insertion
- Use
Affine3A
forGlobalTransform
to allow any affine transformation - Recalculate entity
AABB
s when meshes change - Change
check_visibility
to use thread-local queues instead of a channel - Allow unbatched render phases to use unstable sorts
- Extract resources into their target location
- Enable loading textures of unlimited size
- Do not create nor execute render passes which have no
PhaseItems
to draw - Filter material handles on extraction
- Apply vertex colors to
ColorMaterial
andMesh2D
- Make
MaterialPipelineKey
fields public - Simplified API to get NDC from camera and world position
- Set
alpha_mode
based on alpha value - Make
Wireframe
respectVisibleEntities
- Use const
Vec2
in lights cluster and bounding box when possible - Make accessors for mesh vertices and indices public
- Use
BufferUsages::UNIFORM
forSkinnedMeshUniform
- ๐ Place origin of
OrthographicProjection
at integer pixel when usingScalingMode::WindowSize
- Make
ScalingMode
more flexible - ๐ Move texture sample out of branch in
prepare_normal
- Make the fields of the
Material2dKey
public - ๐ Use collect to build mesh attributes
- Replace
ReadOnlyFetch
withReadOnlyWorldQuery
- ๐ Replace
ComponentSparseSet
's internals with aColumn
- ๐ Remove QF generics from all
Query/State
methods and types - ๐ Remove
.system()
- โก๏ธ Make change lifespan deterministic and update docs
- Make derived
SystemParam
readonly if possible - Merge
matches_archetype
andmatches_table
- Allows conversion of mutable queries to immutable queries
- Skip
drop
whenneeds_drop
isfalse
- ๐ Use u32 over usize for
ComponentSparseSet
indicies - ๐ Remove redundant
ComponentId
inColumn
- ๐ Directly copy moved
Table
components to the target location SystemSet::before
andSystemSet::after
now takeAsSystemLabel
- Converted exclusive systems to parallel systems wherever possible
- Improve
size_hint
onQueryIter
- Improve debugging tools for change detection
- Make
RunOnce
a non-manualSystem
impl - Apply buffers in
ParamSet
- Don't allocate for
ComponentDescriptors
of non-dynamic component types - Mark mutable APIs under ECS storage as
pub(crate)
- โก๏ธ Update
ExactSizeIterator
impl to support archetypal filters (With
,Without
) - ๐ Removed world cell from places where split multable access is not needed
- Add Events to
bevy_ecs
prelude - Improve
EntityMap
API - Implement
From<bool>
forShouldRun
. - Allow iter combinations on custom world queries
- Simplify design for
*Label
s - Tidy up the code of events
- 0๏ธโฃ Rename
send_default_event
tosend_event_default
on world - enable optional dependencies to stay optional
- ๐ Remove the dependency cycles
- Enforce type safe usage of Handle::get
- Export anyhow::error for custom asset loaders
- Update
shader_material_glsl
example to include texture sampling - ๐ Remove unused code in game of life shader
- Make the contributor birbs bounce to the window height
- Improve Gamepad D-Pad Button Detection
- ๐ bevy_reflect: support map insertio
- bevy_reflect: improve debug formatting for reflected types
- bevy_reflect_derive: big refactor tidying up the code
- ๐จ bevy_reflect: small refactor and default
Reflect
methods - Make
Reflect
safe to implement bevy_reflect
: putserialize
into externalReflectSerialize
type- ๐ Remove
Serialize
impl fordyn Array
and friends - Re-enable
#[derive(TypeUuid)]
for generics - ๐ Move primitive type registration into
bevy_reflect
- Implement reflection for more
glam
types - Make
reflect_partial_eq
return more accurate results - Make public macros more robust with
$crate
- Ensure that the parent is always the expected entity
- ๐ Support returning data out of
with_children
- ๐ Remove
EntityMut::get_unchecked
- Diagnostics: meaningful error when graph node has wrong number of inputs
- ๐ Remove redundant
Size
import - Export and register
Mat2
. - Implement
Debug
forGamepads
- โก๏ธ Update codebase to use
IntoIterator
where possible. - 0๏ธโฃ Rename
headless_defaults
example tono_renderer
for clarity - ๐ Remove dead
SystemLabelMarker
struct - ๐ bevy_reflect: remove
glam
from a test which is active without the glam feature - โ Disable vsync for stress tests
- Move
get_short_name
utility method frombevy_reflect
intobevy_utils
- 0๏ธโฃ Derive
Default
for enums where possible - Implement
Eq
andPartialEq
forMouseScrollUnit
- Some cleanup for
bevy_ptr
- Move float_ord from
bevy_core
tobevy_utils
- ๐ Remove unused
CountdownEvent
- Some minor cleanups of asset_server
- Use
elapsed()
onInstant
- โก๏ธ Make paused
Timers
updatejust_finished
on tick - ๐ bevy_utils: remove hardcoded log level limit
- Make
Time::update_with_instant
public for use in tests - Do not impl Component for Task
- ๐ Remove nonexistent
WgpuResourceDiagnosticsPlugin
- โก๏ธ Update ndk-glue requirement from 0.5 to 0.6
- โก๏ธ Update tracing-tracy requirement from 0.8.0 to 0.9.0
- โก๏ธ update image to 0.24
- โก๏ธ update xshell to 0.2
- โก๏ธ Update gilrs to v0.9
- โฌ๏ธ bevy_log: upgrade to tracing-tracy 0.10.0
- โก๏ธ update hashbrown to 0.12
- โก๏ธ Update
clap
to 3.2 in tools usingvalue_parser
- โก๏ธ Updated
glam
to0.21
. - โก๏ธ Update Notify Dependency
๐ Fixed
- bevy_ui: keep
Color
as 4f32
s - Fix issues with bevy on android other than the rendering
- ๐ Update layout/style when scale factor changes too
- Fix
Overflow::Hidden
so it works correctly withscale_factor_override
- Fix
bevy_ui
touch input - Fix physical viewport calculation
- Minimally fix the known unsoundness in
bevy_mikktspace
- โก๏ธ Make
Transform
propagation correct in the presence of updated children StorageBuffer
uses wrong type to calculate the buffer size.- Fix confusing near and far fields in Camera
- Allow minimising window if using a 2d camera
- WGSL: use correct syntax for matrix access
- Gltf: do not import
IoTaskPool
in wasm - Fix skinned mesh normal handling in mesh shader
- Don't panic when
StandardMaterial
normal_map
hasn't loaded yet - Fix incorrect rotation in
Transform::rotate_around
- Fix
extract_wireframes
- Fix type parameter name conflicts of
#[derive(Bundle)]
- ๐ Remove unnecessary
unsafe impl
ofSend+Sync
forParallelSystemContainer
- Fix line material shader
- Fix
mouse_clicked
check for touch - Fix unsoundness with
Or
/AnyOf
/Option
component access - Improve soundness of
CommandQueue
- Fix some memory leaks detected by miri
- Fix Android example icon
- โ
Fix broken
WorldCell
test - ๐ Bugfix
State::set
transition condition infinite loop - Fix crash when using
Duration::MAX
- ๐ Fix release builds: Move asserts under
#[cfg(debug_assertions)]
- Fix frame count being a float
- โ Fix "unused" warnings when compiling with
render
feature but withoutanimation
- ๐ Fix re-adding a plugin to a
PluginGroup
- Fix torus normals
- Add
NO_STORAGE_BUFFERS_SUPPORT
shaderdef when needed