Skip to content

@dmarcos dmarcos released this Dec 29, 2019 · 24 commits to master since this release

Bug fixes

Subscribe to the newsletter to continue to support A-Frame!

Fixes

  • Add support for Gear VR controller over WebXR (@Artyom17, @dmarcos)
  • Add support for Oculus Go controller over WebXR (@Artyom17, @arpu, @dmarcos)
  • Fallback to a generic controller when a WebXR gamepad is not recognized (#4376) (@Artyom17, @dmarcos)
  • Match physical and virtual position of Quest and Rift S controllers (fix #4374) (@Artyom17, @dmarcos)
  • Consider initial device orientation for magic window tracking. Fix problem when experience loads in landscape orientation on Android devices (@dmarcos)
  • Listen to DOMContentLoaded if scene is not defined before updating the enter VR UI (#4373) (@mkungla, @dmarcos)
Assets 2

@dmarcos dmarcos released this Dec 23, 2019 · 53 commits to master since this release

Bug fixes

Subscribe to the newsletter to continue to support A-Frame!

Fixes

  • Track DeviceMotionControls yaw delta instead of absolute value to honor initial camera orientation (fix #4368) (@dmarcos)
  • Disable touchmove / mousemove tracking in VR mode. Pose is preserved when exiting VR (@dmarcos)
  • Hide Device Motion permission dialog on desktop requests from mobile devices. Only the alert about requesting mobile page is shown (fix #4369) (@dmarcos)
  • Reset camera rotation to 0 when entering VR to prevent collision between magic window and WebXR poses (fix #4371) (@karanganesan, @dmarcos)
  • Check if headset is connected before disabling mouse controls (fix #4370) (@KrisMerckx, @dmarcos)
Assets 2

@dmarcos dmarcos released this Dec 22, 2019 · 79 commits to master since this release

1.0.0 post release bug fixes.

Subscribe to the newsletter to continue to support A-Frame!

Fixes

  • Reintroduce a-asset-item logic to assign response type to glTF models automatically. It now ignores query parameters that made it fail before. (#4219) (@dmarcos)
  • Prevent zoom on enter VR / AR buttons when double tapping on touch screens (@dmarcos)
  • Apply style to reset the enter AR / VR buttons background on mouseleave. CSS Hover is sticky on mobile devices (@dmarcos)
  • Fix magic window mode in Daydream / ARCore Android devices. Use DeviceOrientationControls for tracking. (#4355) (@MK-LucidWeb, @vincentfretin, @dmarcos)
  • Honor model property in laser-controls (#4354) (@dala00, @dmarcos)
  • Reduce video-sphere / photo-sphere radius to prevent far plane clipping in VR mode on Android devices (#4365) (@AntoineLucidWeb, @dmarcos)

Enhancements

Assets 2

@dmarcos dmarcos released this Dec 14, 2019 · 125 commits to master since this release

WebXR final spec support!

Subscribe to the newsletter to continue to support A-Frame!

Major Changes

Fixes

  • Fix resolution drop on exiting VR mode (#4246) (@tomegz)
  • Don't emit synthetic vrdisplaypresentchange event unless there's native WebVR implementation (#4301) (@dmarcos)
  • Set xrSession to undefined after exiting VR mode (#4321) (@klausw, @dmarcos)
  • Emit cursor mouseup if mousedown if it's only originated on scene (#4249) (@edsilv, @dmarcos)
  • Fix IE 11 fullscreen mode (#4243) (@AlexandraWins)
  • Bump animejs fork to fix flattenArray (#4158) (@ngokevin)
  • Replace undefined check to prevent ReferenceError in JavaScriptCore (#4318) (@nuel, @dmarcos)
  • Fix component.events singleton, events being overridden by components of the same type (#4250) (@ngokevin)
  • Honor embedded mode on loading screen (#4245) (@dmarcos)
  • Fix incorrect response type inference for glb/gltf files (#4219) (@Ely-S)
  • Fix WebVR deep-linking / navigation (#4199) (@Artyom17)
  • Restore render target to canvas to prevent freezes (@dmarcos)
  • Adjust three-bmfont-text to THREE r111 API changes (#4331) (@dmarcos)
  • Don't consider Firefox Reality and Oculus Browser mobile / phone browsers (#4338) (@dmarcos)
  • DracoLoader Path set for THREE v108 (#4272) (@arpu)
  • Use glTF header to determine a-asset-item response type (#4228) (@Ely-S)
  • Remove setTimeout call in tick if not raycaster.showLine (#4192) (@ngokevin)
  • isMobileVR differentiates Samsung Internet for Gear VR from Samsung Internet for Android (#4188) (@DougReeder)
  • Apply handedness to Oculus Go controller (#4162) (@dmarcos)
  • Fix button mapping for Vive Focus (fix #4344) (@dmarcos, @IvoJager)

Deprecations

Assets 2

@ngokevin ngokevin released this May 7, 2019 · 356 commits to master since this release

Follow-up fix to 0.9.1 for fixing vrdisplayactivate and link traversal flow.

Fixes

  • Move vrdisplayactivate handler back earlier to fix auto entering VR in many cases (#4155).
  • Fix vrdisplayactivate and link traversal due to last build having outdated version our three.js fork.
  • Fix Entity.destroy not catching if entity is not attached to scenegraph (#4140).
  • Fix exiting fullscreen on Chrome m71+ (#4136).
  • Fix URL bar not hiding in iOS Safari in fullscreen (#4146).
  • Fix wrong sized canvas in iOS VR by preventing multiple requestPresent calls if already presenting (#4148).
Assets 2

@ngokevin ngokevin released this Apr 18, 2019 · 390 commits to master since this release

Follow-up fixes and improvements to 0.9.0.

Released Hot Module Replacement loader for A-Frame: https://github.com/supermedium/aframe-super-hot-loader

Major Changes

  • Detaching entity from scene will preserve component data. Add
    Entity.destroy() method to clear components and return their memory to the
    pool (#4121).
  • Use controller index to determine left / right controllers which may impact
    cases like Vive Trackers. Will look to make this more robust soon (#4013).

Deprecations

  • Deprecate utils.device.isOculusGo in favor of utils.device.isMobileVR (#4032).

Fixes

  • Updated documentation guides for 0.9.0.
  • Fix text antialiasing from distance (#4039).
  • Improve vrdisplayactivate path for more robust navigation (#4093, 3c2f68e).
  • Clean up object requested from pool by component to prevent pollution of old keys from other schemas (#4016).
  • Fix initial camera position, rotation, scale potentially not getting applied (#4020).
  • Fix utils.coordinates.stringify for zeroed vectors (#4017).
  • Handle if both WebVR and both WebXR APIs are available (#4022).
  • Handle null device from WebXR (#4030).
  • Catch navigator.xr.requestDevice error (#4035).
  • Fix animation for custom vec3 properties (#4051).
  • Fix sound onEnded not setting isPlaying to false (#4061, #4097, #4101).
  • Fix new materials not getting applied to obj-model recursively (#4062).
  • Fix boolean values in .flushToDOM (#4069).
  • Hide navigation buttons on Android (#4090).
  • Fix Chrome gamepads by checking getGamepads on every tick for Chrome (#4116).

Enhancements

  • Add Component.events API to define event handlers that are automatically attached and detached depending on entity lifecycle (#4114).
  • Improve animation error message when passing invalid animation.property (#4122).
  • Have Entity.remove detach entity to match HTML element behavior (#4082).
  • Migrate hand-controls model to glTF (#3932).
  • Add shadow.enabled property to shadow system (#4040).
  • Add renderer.alpha property to renderer system (#4040).
  • Add AFRAME.coreComponents for a list of the core components (#4064).

Performance

  • Use a fork of anime.js that has memory improvements from Kevin (#4028).
Assets 2

@ngokevin ngokevin released this Feb 8, 2019 · 609 commits to master since this release

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. Call scene.renderer.systems.applyColorCorrection on THREE.Colors and THREE.Textures 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 to renderer.antialias.
  • Raycaster events such as raycaster-intersected no longer directly contain intersection data. Use .getIntersection function supplied in event detail or el.components.raycaster.getIntersection(el) to retrieve intersection data. Done to reduce garbage (a87e3b).
  • 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} and Entity.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).
  • 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.
Assets 2
Apr 15, 2018
Bump 0.8.2 dist

@ngokevin ngokevin released this Mar 9, 2018 · 1450 commits to master since this release

0.8.0 (March 9, 2018)

Performance improvements.

Major Changes

  • Updated to three.js r90.
  • Ability to update three.js Object3D position, rotation, scale, and visible directly while being in sync with A-Frame. (#3245)
  • Bubble object3dset and object3dremove events no longer bubble. (#3220)
  • Raycaster intersection and cleared events now emitted once per event, not on every frame. (#3126)
  • Remove VREffect / VRControls for three.js WebGLRenderer API. VR camera pose is managed by three.js. (#3152, #3327)
  • Removed geometry.mergeTo. (#3191)
  • Removed State mixins. addState and removeState event detail modified to be the state name, not object. (#3171)
  • Removed Scene.reload() (#2239)

Deprecations

  • Entity.getOrCreateObject3D. (#3222)

Fixes

  • Clone object type properties into oldData to fix update method not called on referenced objects. (#3409)
  • Fix matrix composition when updating pose for controllers. (#3407)
  • Fix component update getting overridden by mixin due to not passing in the whole attrValue into buildData. (#3302)
  • Remove a-canvas z-index. (#3391)
  • Fix parameters passed to the onButtonEvent function for Windows MR. (#3372)
  • Fix black texture issue with a-sky and a-videosphere components with three r89. (#3370)
  • Fix material array handling in shadow component. (#3348)
  • Postpone the resize operation in iOS to ensure that the window size matches the viewport on orientation changes. (fix #3282) (#3306)
  • Fix utils.entity.getComponentPropertyPath if defaultLightsEnabled not defined
  • Look-controls don't read HMD position if no headset connected. (#3286)
  • Fix raycaster direction. (#3239)
  • Fix raycaster line update that wasn't triggered anymore. (#3124)
  • Fix data from dom not parsed if skipTypeChecking. (#3153)
  • Clone default array property type. (#3095)
  • Fix Gear VR buttons highlighting. (#3103)
  • Do not resize the canvas while presenting on mobile (#3080)
  • Flipped the sign on sampleUV.x in the portal shader used by the link component (#3079)

Enhancements

  • Add spectator camera mode and spectator scene component. (#3280)
  • Support Pointer Lock API. (#3341)
  • Allow mixin composition. (#3305)
  • Add a background component for better performant plain color backgrounds than <a-sky>. (#2908)
  • Use MutationObserver and object3dset and object3dremove events to refresh raycaster list. (#3070)
  • Allow specify container for pool component. (#3392)
  • Expose raycaster.intersections array. (#3289)
  • Remove cameraRig on setupDefaultCamera. (#3364)
  • Add metalnessMap and roughnessMap. (#2722)
  • Add spectator camera mode to the camera component and spectator scene component. (#3280)
  • Add transparent flag to be able to define transparent backgrounds. (#3320)
  • Improve function names in debugger call stacks. (#3310)
  • Allow removal of mixed-in components. (#3275)
  • Add xOffset option to allow text padding. (#3269)
  • Allow disable shadow map auto update, fix shadow system init. (#3214)
  • Use component event handlers insted of bound a-scene methods. (#3213)
  • Support sources in video. (#3176)
  • Make camera system aware of mixins. (#3196)
  • Remove everGotGamepadEvent flag and gamepadconnected / gamepaddisconnected. (#3189)
  • Register cursor event listeners on canvas, not window. (#3179)
  • Do not update style.width and style.height on renderer resize to not override styles applied externally. (#3184)
  • Factor out onButtonEvent method from controllers. (#3169)
  • Add raycaster.enabled property to toggle tick handler. (#3148)
  • Have camera call enter VR handler if scene already entered VR with display activate. (#3149)
  • String-trim primitive attribute values. (#3145)
  • Add customizeable colors to link portal and title. (#3106)
  • Adapt cursor onMouseMove to also accept touchmove events. (#3143)

Performance

  • Save array creations on each raycaster update. (#3317)
  • Optimize event emit. (#3308)
  • Throttle updateControllerList while keeping getGamepads call. (#3112)
  • Get rid of some string split operations. (#3316)
  • Default the raycaster interval/throttle to 0. (#3293)
  • Have getAttribute(visible) return object3D.visible directly. (#3283)
  • Optimize aframe.utils.diff. (#3271)
  • Raycaster fixes and performance improvements. (#3250)
  • Remove garbage for addBehavior/removeBehavior. (#3217)
  • Reduce garbage in axismove in tracked-controls. (#3185)
  • Prevent component leakage in updateComponents (#3212)
  • Cache font image textures for text component (#3158)
  • Remove two array allocations per deepEqual call (#3115)
  • Reduce Object.keys usage in core/schema (#3117)
  • Save object allocation on look-controls.calculateDeltaRotation (#3116)
Assets 2
Oct 18, 2017
bump dist v0.7.1
You can’t perform that action at this time.