Releases: gopro/forgejs
Releases · gopro/forgejs
ForgeJS 0.9.5
Release notes
Viewer
- New: you can now set options of the WebGL context in the viewer json configuration.
- New:
onMainConfigLoadComplete
event that is fired when all the configuration has been parsed. So the new event order isonReady
,onConfigLoadcomplete
thenonMainConfigLoadComplete
.
Media
- Fix:
startTime
not taken into account. Medias were always starting at 0s unless it was synced with another media. - New: add a
preview
object to the media, allowing to have a low resolution preview of the displayed media (work for media ofimage
type). - New: ability to load a complex image composed of multiples tiles, for high multi resolution purpose.
Renderer
- New: multiresolution image processing for tiled images through a new background pyramid renderer. See the
multiresolution
andparis26g
samples for use case.
Display
- New: add a
capture
method toFORGE.Canvas
. This allows you to capture the user viewport and get an image withviewer.canvas.capture()
.
Camera
- Update:
onCameraChange
event is now renamed toonChange
. - New: add a
onOrientationChange
event to theFORGE.Camera
. - New: add a
onFovChange
event to theFORGE.Camera
. - Improvement: the lookAt method takes cancelRoll argument into account.
Views
- New: add flat view options to repeat the media on x and y axis.
Video
- New: add a
playbackRate
setter forVideoHTML5
andVideoDash
. - New: add
onRateChange
event for videos.
Hotspots
- New:
Hotspots3D
now support the use of offset values (x, y and z) into thegeometry
configuration object in world unit. - New:
HotspotsDOM
now support the use of offset values (x, y) into thedom
configuration object in pixel units. - New: hotspot has a new
autoScale
parameter in their configuration. This allows the hotspot to keep the same aspect whatever the fov is. - Fix: when destroying a
HotspotDOM
, do not remove the dom but hide it away. Adaptation of the events because of bad reference when destroying it.
Plugins
- New: add
GoogleMaps
plugin to display a GPX track on a Google Maps. - New: add an
Altimeter
plugin to display the altitude extracted from the telemetry sensors of GoPro's cameras. - New: add an
Compass
plugin to display the orientation extracted from the telemetry sensors of GoPro's cameras. - New: add an
Speedometer
plugin to display the speed extracted from the telemetry sensors of GoPro's cameras. - New: add an
Accelerometer
plugin to display the G force extracted from the telemetry sensors of GoPro's cameras. - New: add a
Share
plugin that keeps the url updated according to your camera orientation. That allows the user to share its current view with people through the url. - Update: add playback rate menu to the
VideoControls
plugin. - Update: new version of the
Editor
plugin. You can now manipulate hotspots in space (translation, rotation, scale), change their names, edit the geometry, browse the history. - Update: new version of the
Toolbox
plugin that have a view selector now.
Samples
- New:
telemetry
sample to demonstrate the use of the telemetry plugins (speedometer
,accelerometer
,compass
andaltimeter
). The plugins can be display as hotspots in the 3D world or in screen space in 2D. - New:
multiresolution
sample to demonstrate the performance and the display quality of ForgeJS to handle any kind of panoramic-image size. - New:
paris26g
sample. It is a multiresolution sample with our famous Paris 26 Gigapixels panorama. - New:
googlemaps
sample to demonstrate the use of theGoogleMaps
plugin. - New:
view-flat
sample to demonstrate the options of the flat view. - New
camera-events
sample to log newFORGE.Camera
events in the browser console. - Update: edit
editor
sample for the new version of theEditor
plugin. - Update: edit
multiple-media
sample to demonstrate the flat view options.
Misc
- Update: Omnitone library to 1.0.1
- Update: dash.js library to 2.6.0
ForgeJS 0.9.4
Release notes
!! Warning: We have a regression on Samsung gear VR with this 0.9.4 version. We are working on it, but we want to share this version for people who does not target Samsung gear VR, especially for hotspots DOM which are effective only on desktops
Viewer
- Fix:
Viewer.destroy
crash has been fixed. - Fix: Opening new tab without focusing it crash has been fixed.
- Fix: Mouse position detection on Hotspot click when the viewer in not at full page but in a smaller container in the middle of the page.
Scene
- New: Add scene media events in JSON configuration. (
onPlay
,onPause
,onSeek
,onEnded
). That can be useful to load another scene at the end of the current video scene.
Renderer
- New:
worldToScreen
andscreenToWorld
methods for rectilinear view. - New:
worldToScreen
andscreenToWorld
methods for gopro view. - New:
sphericalToCartesian
andcartesianToSpherical
methods intoFORGE.Math
.
Camera
- Add a
keep
parameter to camera configuration to keep camera orientation from a scene to another.
Hotspots
- New: DOM Hotspots management. Now you can position HTML elements over the 3D scene that will follow a position in space if the camera moves.
- Fix: Better management of the hotspots texture opacity.
Director's cut
- Fix: Seeking event support for Firefox has been added.
Controllers
- New: Add the pinch to
ControllerPointer
in order to be able to change the FOV by pinching on touch screens. - New: Add drag mode to
ControllerPointer
for mouse and touch screens. - New: Add a zoom to pointer option to the
ControllerPointer
.
Device
- New: Device compatibility detection for plugins has been improved to describe complex configurations.
Plugins
- New: First iteration on a hotspots editor plugin called
Editor
. - New:
Toolbox
plugin can now have options to just display the needed panels. - New:
Toolbox
plugin have two new panels that can help you to tweak and test the pointer controller parameters. (mouse and touch). - Fix:
VideoControls
plugin now uses svg and png assets to ensure IE11 compatibility. - Fix:
GyroscopeButton
andWebVRButton
plugins use a new image url.
Website
- New: add copyright licenses for all assets used into the samples.
- New: editor sample to demonstrate the very first version of the Editor plugin.
- New: controller-pointer sample to demonstrate drag vs move modes.
- New: hotspots-dom sample to demonstrate HTML/CSS usage for hotspots that are positionned over the 3d scene.
- Fix: hotspots-states-animation sample doesn't target the right action.
- Fix: hotspots-animation sample use new assets for Firefox, Edge and IE11 compatibility.
- Fix: audio-playlists sample doesn't play the second track on Edge and IE11.
- Fix: vrrroom sample doesn't display the menu on Firefox.
Misc
- New: Unit tests on some mathematics/coordinate functions.
- Upgrade: three.js version to r86.
- Upgrade: dash.js version to 2.5.0.
ForgeJS 0.9.3
Release notes
Viewer
- New: Add the onConfigLoadComplete event to the FORGE.Viewer.
- Fix: Multiple viewers on the same page is now possible as long as the history feature is disabled.
- Fix: Viewer.destroy crash has been fixed.
- Fix: beforeRender and afterRender callbacks are now functional on minified build.
Camera
- Fix: Camera limits are now properly assigned on scene change.
Controllers
- New: Gamepad controllers support has been added.
Audio
- Fix: Omitone ambisonic library has been updated.
- Fix: Ambisonic resume/restart has been fixed.
Display
- Fix: Canvas is now properly resized when browser is in WebVR emulation mode.
Hotspots
- New: Hotspot states are now handling the transform component.
- New: Hotspot states are now handling the sound component.
- New: Hotspot states are now handling the animation component.
- Fix: Animated hotspots are now properly destroyed.
- Fix: Hotspots don't need to be clicked twice on mobile.
- Fix: HotspotGeometry.SHAPE crash when there are less than three points. Add a default behavior.
Director's cut
- Fix: Director's cut bad synchronisation has been fixed.
Post processing
- New: Add Shader pass support in json configuration for post processing.
Plugins
- New: Gamepad monitor plugin to help the Gamepad debug.
Website
- New: hotspots-states-sound sample to demonstrate the sound state change.
- New: hotspots-states-animation sample to demonstrate the animation state change.
- New: multiple-viewers sample to demonstrate the multiple viewers in the same page.
- New: gamepad-controls sample to test the GamepadController.
ForgeJS 0.9.2
Release notes
Viewer
- New: Add of
autoPause
andautoResume
options to viewer configuration. It use the Page Visibility API which lets you know when a webpage is visible or in focus. IfautoPause
is set totrue
, all video and sounds will be automatically paused. - New:
viewer.mainConfig
references the global json configuration object of the project. - New:
viewer.config
references the viewer object of the json configuration.
Story
- New: New events declaration for
viewer.story
in the json configuration. Available events are:onReady
,onGroupChange
,onSceneLoadStart
andonSceneLoadComplete
.
Scene
- Change: The
FORGE.Scene
now owns the media reference. - Change: The
FORGE.SceneParser
has been deleted. - New: The
FORGE.Scene
object now has aonMediaCreate
event. - New: New events declaration for scenes in the json configuration. Available events are:
onLoadStart
,onLoadComplete
,onUnloadStart
andonUnloadComplete
. - New:
scene.load
can now take a time in parameter when you need to load a video scene at a specific time. - New: Video scenes now can be auto time synchronized thanks to the
sync
attribute of the scene configuration. (sync attribute is an array of scene uids to be synched together).
Renderer
- New: Add a
ViewManager
. To get and set the view type you can useviewer.view.type
. - New:
RendererManager
now has adisableVR
method in addition to theenableVR
method. - New: Add a new view called "flat" view to display non spherical media.
Camera
- New: Add a flat camera based on
THREE.OrthographicCamera
.
Device
- New:
FORGE.Device
now emits aonReady
event.
Controllers
- New: Add a
FORGE.ControllerGyroscope
that is enabled by default. - New: Allow the inversion of each axis of
FORGE.ControllerPointer
independently. - New: The
FORGE.ControllerPointer
now switches fullscreen mode on double click by default. - New:
FORGE.ControllerManager
has agetByType
method.
Audio
- New: Interaction with the
autoPause
andautoResume
viewer options.
Video
- New: Interaction with the
autoPause
andautoResume
viewer options. - Fix: Catch the error when
autoPlay
is set totrue
on mobile.
Sprite
- New: Add a
SpriteConfig
object.
Hotspots
- Change: Hotspots that need to be auto rotated to face the center of the scene have to set the
facingCenter
attribute totrue
in its configuration. - New: Sprite animation material support.
- New: Video texture material support.
- New: Basic support of 3D shapes as hotspot geometry.
- Optimization: Hotspot creation and raycasting optimizations.
- Optimization: Texture is now re-used and not created every frame.
- Fix: Hotspot scale fix. The scale used to be applied twice (on geometry then on mesh), now it is only applied on the mesh.
- Fix: Hotspot out method is now called properly.
- Fix: Add
minFilter
toLINEAR
on HotspotMaterial texture to remove the blurry effect. - Fix: Hotspot visible state is now taken into account.
Actions
- New: Actions target is now
window
by default.
Components
- Fix:
FORGE.Textfield.fontWeight
property is now set properly.
Plugins
- New:
Toolbox
plugin that displays a GUI to see the camera values, change the scene or the view type. - New:
GyroscopeButton
plugin to display a gyroscope toggle button if gyro is available on the device. - Fix: Plugin versioning.
Website
- Sample: New hotspot-sprite sample to demonstrate the use of animated sprites as hotspot texture.
- Sample: New hotspot-video sample to demonstrate the use of video as hotspot texture.
- Sample: New scene-sync sample to demonstrate the time synchronization between scenes.
- Sample: New debug sample to demonstrate the debug GUI plugin.
- Sample: New immersive-and-narrative project to demonstrate alternating between spherical (immersive) and non spherical (narrative) media.
- Sample: Edit change-view sample to demonstrate the flat view.
- Sample: Edit multiple-media sample to demonstrate the flat view.
Misc
- Fix: global flags
FORGE.DEBUG
andFORGE.WARNING
are now working properly.
FORGE.js 0.9.1
Release notes
Viewer
- Fix default background configuration for the main container.
Scene
- Fix background configuration on scenes.
Media
- New: Add a new media type "grid" to generate a grid preview with optional parameters
Renderer
- Don't update texture when the video is paused.
- Don't render the background when a scene has no media.
- Unload scene background on scene unload.
- Fix onBeforeRender and onAfterRender events on Hotspot3D objects.
- Fix render routine when pipeline has no fx.
Camera
- Camera is refreshed before rendering every frame.
- Fix camera refresh on viewer resize.
Audio
- Redesign of the HTMLAudioElement loader to solve events never fired on Microsoft Edge.
- Deactivation of the AudioContext suspend and resume methods for Safari browser compatibility.
Video
- Video auto quality improvements when you use multiple video sources as quality levels.
- Fix multiple quality issues on Microsoft browsers.
- Add
playslinline
attribute for HTMLVideoElement to display the video properly on iOS 10.x. - Video levels can now target a specific environement. Useful to prevent the use of a too high video resolution on Safari or Firefox.
Media
- Add a new grid media type to display a 3D grid background.
- Add a
startTime
property on video media type options.
Hotspots
- Hotspot are now able to crop a specified frame in a texture source.
- New hotspot states feature that handles material change on mouse over and custom states.
- Hotspots are now taking account of the
interactive
property in json configuration. - Hotspots cursor is now customizable with the new
cursor
property.
Plugins
- Open a public github repository for plugins.
- Add SafariCORS plugin to handle Safari bug with CORS.
- Add MobileVideoPlay plugin that display a play button on mobile to fix the autoPlay.
- Add PerformanceMonitor plugin based on Stats.js.
- Add PreviousNextButtons plugin to navigate between scenes.
- Add VideoControls plugin to add a GUI on video scenes.
- Add a WebVRButton plugin to display a button to toggle WebVR if the browser is compatible.
Website
- Sample: New multiple-media sample with various media formats.
- Sample: New performance-monitor sample with PerformanceMonitor plugin.
- Sample: New media-grid sample to demonstrate the grid media.
- Sample: New hotspots-states sample to demontrate the new hotspots states feature.
- Sample: Update all samples with video files with SafariCORS and MobileVideoPlay plugins.
- Sample: Update all samples with PreviousNextButtons plugin.
- Plugins: New page for available plugin listing.
- Tutorials: New tutorial for media image.
- Tutorials: New tutorial for media video.
- Tutorials: New tutorial for media grid.
- Tutorials: New tutorial for hotspots states.
- Slack: Create a slack channel for ForgeJS. At the moment you can ask for an invitation on the forum.
Open-source
- Add a template for GitHub issues
Misc
- Update the way we detect Safari browser in FORGE.Device
- Remove unused classes CameraViewFinder.js, CameraViewFinderType.js, Debug.js.
- Cubemap videos on cdn.forgejs.org for testing.
- Array.prototype.keys polyfill for cubemap media type under Internet Explorer 11.
- Package display has been reorganized in sub packages.
- Add a template for GitHub issues.
FORGE.js 0.9.0
Release notes
General
- Dependency: Update threejs to r83.
Documentation
- New API documentation and JSON reference for 0.9.0.
- New tutorial: Creating my first immersive experience.
- New tutorial: How to declare and use actions.
- New tutorial: Create a hotspot.
- New tutorial: Hotspots events.
- New tutorial: Hotspot sound.
- New tutorial: Hotspot animation.
- Sample: Update directors-cut sample.
- Sample: Update hotspots-sounds sample.
- Sample: Update hotspots-animation sample.
Viewer
- Feature: Add an accessor for camera on viewer.
- Feature: Add an accessor for view on viewer.
Scene
- Feature: Scene can now declare a global sound in addition of playlists.
Renderer
- Feature: Hotspots are now rendered in all projections by GPU (vertex shader)
- Feature: Add two callbacks beforeRender and afterRender
- Feature: Add a picking manager to control all 3D objects picking for all projections including VR.
- Feature: Add an accessor type for views.
- Fix: Object picking support for Hotspot3D without texture.
- Architecture: ShaderLib based on THREE.ShaderLib gathering all GLSL code for vertex and fragement shaders
- Architecture: Views are pointing on ShaderLib to define rendering GLSL code
- Refactor: EffectComposer and all passes (shader, render, texture) have been subclassed
- Refactor: All 3D objects are using THREE.RawShaderMaterial with FORGE shaders
VR
- Feature: The camera gaze cursor is now customizable in the JSON configuration.
Audio
- Fix: Sound volume setter check for NaN.
Director
- Refactor: Update "waypoints" to "keyframes".
Hotspots
- Refactor: Update "transforms" to "keyframes" in the animation.