A-Frame v0.9.0 Release Notes
Release Date: 2019-02-07 // about 5 years ago-
๐ Performance improvements, WebXR support, Inspector updates!
โ We continued to battle test A-Frame to produce native-like VR experiences and
๐ continue to add large performance gains. We have also introduced initial WebXR
๐ support! Although the spec is heavily in flux and yet to have feature parity
โ with WebVR 1.1, we had A-Frame get a head start to help test it out and smooth
out the changes.Major Changes
- โฌ๏ธ Bump to three.js r101 on a branch with a few extra patches for WebXR support (f9f314).
- ๐ WebXR support (#3875).
- โ Remove
<a-animation>
in favor of new animation component (#3678). - โ Remove
collada-model
component (#3866). - โ Add
renderer.colorManagement
property (disabled by default) to accurately match colors against modeling tools, but may changes in scene colors when flipped on.renderer.gammaFactor
will be set to 2.2. Callscene.renderer.systems.applyColorCorrection
onTHREE.Color
s andTHREE.Texture
s to normalize changes (#3757). - ๐ Have raycasters only intersect against objects defined via
.setObject3D
.raycaster.objects
should be specified (e.g.,objects: [data-raycastable] or objects: .raycastable
) because raycasting is expensive.raycaster.recursive
property removed (#3980) but will default to be recursive only under objects defined via.setObject3D
(#3652). - โ Add
renderer
component (#3757). - ๐
antialias
attribute moved torenderer.antialias
. - Raycaster events such as
raycaster-intersected
no longer directly contain intersection data. Use.getIntersection
function supplied in event detail orel.components.raycaster.getIntersection(el)
to retrieve intersection data. Done to reduce garbage (a87e3b). - 0๏ธโฃ Disable link portal appearance by default (
link.visualAspectEnabled
), link component defaults to purely to listening to an event to trigger navigation (#3743).
๐ Fixes
- Frame-independent easing for
wasd-controls
to prevent judders during framedrops (#3830). - โก๏ธ Enable matrix auto updates for
tracked-controls
to fix children of camera and controllers not following parent (#3867). - ๐ Fix removing mixins not removing components (#3982).
- ๐ Fix timing issues with mixins on still-initializing entities (#3859).
- setPoseTarget to underlying object3D to fix issues with entities as child of camera (#3820).
- โก๏ธ Don't disable
matrixAutoUpdate
for tracked-controls outside VR (643fdc). - Render spectator view after VR submit frame (#3577).
- ๐ Fix mouse cursor events not being re-enabled on resume (#3904).
- ๐ Allow components to write to camera Z rotation when look-controls enabled (9a78a)
- Clear raycaster intersections when toggling disabled (#3594).
- Postpone renderer until scene is appended to DOM (#3574).
- ๐ Fix canvas textures (b47f20).
- ๐ Fix faces and vertices numbers on stats panel (#3573).
- ๐ Fix magic window mode on Chrome (aaa3bf).
- ๐ Fix audio asset preloading (2a899c).
- ๐ Fix raycaster flatten to only include objects part of
el.object3DMap
versus arbitrary children (8809e7). - ๐ Fix canvas getting squished on orientation change on mobile (64ed3d).
- โก๏ธ Update position, rotation, scale components when calling
.setAttribute
on them (#3738). - โก๏ธ Update canvas bounds for mouse cursor on renderer resize (a4cf08).
- ๐ Fix controller reconnecting on Oculus Go and GearVR (dc8662).
- ๐ Fix playing sound on event with
sound.on
(#3844). - ๐ Fix Chrome WebView (#3852).
- ๐ Fix raycaster not grabbing all entities when
raycaster.objects
is not set. But you should always set it (#3840). - ๐ Fix WebVR polyfill buffer scale override (#3863).
- ๐ Fix text when used with other geometry types (#3909).
- ๐ Fix
daydream-controls
trigger not working with cursor by default (#3916). - ๐ Fix accessing Inspector in pointer lock mode (#3947).
- ๐ Fix mouse cursor not emitting click when fuse is set (#4000).
- ๐ Fix screenshots (#3998).
- ๐ Fix camera offset getting applied when entering 2D fullscreen (#3902).
โจ Enhancements
- โ Add
oculus-go-controls
, thanks Oculus! (cbbe75) - โ Add
vive-focus-controls
(#3876). - โ Add
loading-screen
component (#3760). - โ Add
?inspector={selector}
andEntity.inspect()
to automatically launch Inspector and focus on entity (#3894). - โ Add
renderer.highRefreshRate
to enable 72hz mode on Oculus Browser (#3967). - โ Add
tracked-controls.autoHide
property to configure whether controllers automatically hide when connected or disconnected (#3912). - Enable multiple raycasters on an entity (fc18cd).
- ๐ Support custom enter VR buttons through vr-mode-ui (#3606).
- โ Add
material.blending
property (#3543). - โ Add
light.shadowRadius
property (21b38). - โ Add ability to cap canvas size to pixel value (92b2f9).
- โฌ๏ธ Reduce npm bundle (53f58f).
- Allow double underscores in component IDs (e.g.,
animation __foo__ bar
) (030023). - โ Add
renderer.logarithmicDepthBuffer
option (d210a2). - โ Add
look-controls.reverseTouchDrag
property (#3761). - Switch to jsdelivr with rawgit going away.
- ๐ Support preprocessing of sound in
sound.playSound()
(2b2819). - ๐
Consolidate fullscreen styles under single CSS class (
html.a-fullscreen
) (#3828). - Emit
displayconnected
event when headset connected (#3918). - 0๏ธโฃ Enable antialias by default on Oculus Go (#3942).
- โก๏ธ Update to webvr-polyfill v0.10.10 (#3993).
๐ Performance
- ๐จ Large refactor of core component update path, reducing memory allocation and using object pooling (#3772).
- โก๏ธ Skip
buildData
if updating component directly. 2x speed boost on.setAttribute
(#3835). - โ Remove spamming
navigator.getGamepad
calls in tracked-controls (#3816). - โก๏ธ Optimize coordinates / vector utilities (#3908).
- โ Remove object allocation in
.setAttribute(component, propertyName, value)
(#3812). - Simplify text shader hacks and make text alpha look prettier (#3557).
- โ Remove garbage and bubbling from tracked-controls (#3589).
- โ Remove redundant matrix world update in raycaster (ae7eba).
- Replace Oculus OBJ model with a glTF one (#3539).
- โก๏ธ Optimize coordinate parse (bf66ba).
- Simply wasd-controls tick (#3763).
- โก๏ธ Optimize text component (#3768).
- โ Remove memory allocations in material code (#3789).
- โ Remove garbage in sound component (2b2819).
- ๐ Improve grabbing class cursor performance in 2D look-controls (#3790).
- โ Remove unused and redundant mixin observers (#3831).
- โ Add warning to developers to specify
raycaster.objects
(#3839). - Cache asset property type regex (#3854).
Inspector
Kevin spent some time getting the Inspector into ship shape.
Major Changes
- โก๏ธ Introducing the A-Frame Watcher to sync updates of entities with IDs from Inspector to HTML files.
- โ Remove HTML exporter.
- โ Remove old A-Frame Registry code.
- โ Remove broken Uploadcare uploader.
- โ Remove motion capture tools.
โจ Enhancements
- Orthographic cameras.
- ๐ Improve raycasting to picking entities.
- Syntax highlighting of entities.
- Highlight and describe entities on viewport bar when hovering.
- โ Added
?inspector={selector}
to automatically launch Inspector and focus on entity. - ๐ Show bounding box of selected entities.
- ๐ Show with icon what entities contain text in scenegraph.
- Sort component properties alphabetically.
- Display class names on entity panel.
- Only show camera and light helpers when respective entity is selected.
- ๐ Improve position when focusing on entity.
- ๐ Polish components panel.
- Center editor controls to the scene camera position.
- ๐ Support arrow keys for number widgets.
- .glb export.
- โ Add
o
shortcut to toggle transform widget. - โ Add
esc
shortcut to unselect entity. - ๐จ Refactor most everything (modularize, data flow, Stylus, Prettier).
- ๐ Tweak grid colors.
- Bigger checkboxes.
- ๐ Fix color picker in components panel.
- ๐ Fix display of mixins.
๐ Performance
- Don't load 50 images when opening the Inspector.
- โก๏ธ Optimize and fix helpers for position, rotation, scale.
- Speed up scene graph search.
- โ Remove global mutation observer.