Skip to content

Releases: SceneView/sceneview-android

0.9.0 - RIP RenderableInstance for ModelNode + Fix AR positioning

18 Aug 00:50
Compare
Choose a tag to compare

Features

  • RIP RenderableInstance for ModelNode directly access FilamentAsset
  • Added RenderableNode for all types of rendered nodes
  • Added hitTest functions at ArSceneView level
  • Get hitTest from Position at ArFrame level
  • Added cameraFacingDirection directly to ArSceneView
  • Added model animator extensions
  • Changed ModelNode to use applyAnimation and updateBoneMatrices directly with frame time instead of using an ObjectAnimator

Fixes

  • Fixed wrongs AR placement
  • Moved placementMode and onMove() from ArNode to ArModelNode for coming next AugmentedFaceNode and AugmentedImageNode
  • Refactor approximateDistanceMeters to approximateDistance
  • Fix wrong model animations interpolations

Documentation

  • Added more documentation in the source code

0.7.0 - Fixed rendering synchronization + Fixed and improved gestures + Improved materials + Added more samples to README.md

24 Jun 19:48
Compare
Choose a tag to compare

Temporary Changes ⚠️

  • The anchorPoseUpdateInterval property is set to null by default. This means that the node pose is never updated to the anchor actual pose. Set this property to one second, for example, to benefit from the anchor pose updates.
  • ARCore was rolled back to 1.30.0 since there were some performance issues encountered. You can still use the latest version of ARCore in your build.gradle file.

Features

  • Made the pan pan gesture configurable (it can be now disabled)
  • Replaced ArNode.onTrackingChanged with ArNode.onPoseChanged
  • Made the click duration in the CursorNode configurable
  • Added constructors for the ModelNode and ArModelNode that accept a path to a glTF model
  • Supported using multiple listeners for the Augmented Image updates
  • Improved node selection
  • Refactored materials to use the Filament MaterialInstance
  • Added a listener for the smooth transformation end
  • Added a listener for the model change in the ModelNode
  • Added an extension function to convert a Pose to a Transform (a transformation matrix)
  • Supported limiting the number of hit tests in the PlaneRenderer
  • Replaced ArModelNode.autoAnchor with ArModelNode.instantAnchor
  • Supported disabling the ArModelNode pose updates based on hit tests
  • Replaced TextureLoader.loadTexture with TextureLoader.loadImageTexture

Fixes

  • Fixed model picking (the touch coordinates are now correct)
  • Fixed synchronization of the 3D scene state and the camera frames
  • Fixed the default node position (while also fixing the selection visualizer position)
  • Fixed tap events and listeners for the SceneView and models (they are now using Filament picking)
  • Fixed destroying the PlaneVisualizer
  • Fixed setting the isShadowCaster and isShadowReceiver properties
  • Fixed canceling smooth transformations
  • Fixed the move gesture

Documentation

  • Added more documentation in the source code
  • Added more samples to README.md

0.6.0 - ARCore 1.31.0

11 May 20:05
Compare
Choose a tag to compare
  • ARCore Geospatial API
    The new ARCore Geospatial API utilizes data from Google Earth 3D models and Street View image data from Google Maps to enable your app for immersive, global-scale, location-based augmented
    reality experiences.

    • Earth provides localization ability in geospatial coordinates.
      Earth.createAnchor() creates a new Anchor at the specified latitude, longitude, altitude, and orientation.
    • Earth.Earthstate describes the current state of Earth, including its TrackingState.
    • GeospatialPose describes a specific latitude, longitude, altitude, and compass heading.
  • ARCore Depth API improvements
    The maximum range of Depth measurements has increased from 8191mm to 65535mm. The Depth API now uses all 16-bits to represent depth, where previously only 13 bits were used for depth values.

0.5.2 - New AR Camera Stream + Imporvements

06 May 21:34
Compare
Choose a tag to compare

Features

  • Completely renewed ARCameraStream by moving it to Kotlin and 100% Filament
    • Cleaned and resource consumption improved
    • Moved to multithreaded rendering pipeline to improve quality and move to Filament stream less texture creation
  • Improved gesture rotation
  • Improved LightEstimation consumption
  • Changed ArNode anchor update interval
  • Material synchronous loading
  • Added Node custom name
  • Added Renderable extensions
  • Access SceneView within the Lifecycle
  • KTXLoader synchronous loading
  • Allow gesture detectors to be changed at runtime (#69)

Fixes

  • Fixed some possible wrong session config applying

0.5.1 - New memory management system based on Lifecyle + Ensure everything is destroyed when the SceneView is detached

20 Apr 20:38
Compare
Choose a tag to compare

Features

  • RIP CleanupRegistry welcome LifecycleObservers: Filament 3D Entities (Models, Materials, Textures, Lights,...), Engine and Loaders/Managers creation and destroy are now completely made around Android Lifecycle observers. They were previously managed by the Garbage collector.
    We now insure that every single consuming resource is destroyed when the Activity/Fragment/SceneView is destroyed and when it is not needed anymore internally.
    The only counterpart is that you have to give a lifecycle parameter when building a Filament entity that can be any of the Activity/Fragment/SceneView one.

e.g. You now have to give a Lifecycle parameter instead of the CoroutineScope when loading a model

  • RIP IEngine, FilamentEngineWrapper, EngineInstance,... welcome Filament single retainable object that contains the engine instance and every linked Filament Loaders/Managers. The Filament Engine can now be shared between different SceneViews. The last releasing retainer will destroy the Engine and the Loaders/Managers.

  • Allowed gesture detectors to be changed at runtime: GestureDetectors are vars and can be changed at any time

Fixes

  • Fixed wrong SceneView MainLight and Environment initialisation because of NullPointerException when getting ArSceneView lifecycle
  • Fixed Camera Stream init
  • Fixed Filament Engine not destroyed
  • Fixed move gesture: Some conditions for the move gesture are inverted
  • Fixed some double Filament entity destroys causing exception when the SceneView was destroyed

0.4.1 - Improved AR environmental lighting performance

14 Apr 07:02
Compare
Choose a tag to compare

Features

  • Added a precision parameter for updating the ArNode pose from the anchor

Fixes

  • Allow setting gesture listeners without inheriting the SceneView or ArSceneView
  • Improved performance for estimation of AR environmental lighting

0.4.0 - ArNode and Camera manipulators + Improved AR environmental lighting and reflections + Simpler ARCore session configuration + Enabling auto focus without pausing and resuming ARCore session

11 Apr 19:08
Compare
Choose a tag to compare

Features

  • Added an ArNode manipulator for moving, rotating and scaling nodes in the ArSceneView and a Camera manipulator for panning and zooming the camera in SceneView
  • Improved AR environmental lighting and reflections by removing spectacular filtering
  • Added a precision parameter for estimation of AR environmental lighting to increase performance by skipping frames
  • Made the ARCore session configuration simpler

Fixes

  • Fixed the order of destroying the Filament resources to avoid an exception
  • Enabling the auto focus without pausing and resuming the ARCore session

0.3.0 - Cloud Anchors support + Setting world properties of Node

07 Apr 17:04
Compare
Choose a tag to compare

Features

  • Added Cloud Anchor support to the ArNode and a sample application
  • Supported setting the world position, quaternion, rotation and scale of the Node

0.2.1 - ARCore 1.30.0 + Fix sources sets + Use Gltf folders + Instant placement fallback

30 Mar 08:31
Compare
Choose a tag to compare

Features

  • ARCore 1.30.0
  • Fix Android SourceSets for sources.jar = You should now have access to SceneView sources from your project when using maven dependency
  • Add Gltf folder model source: You can use a .gltf and its folder as 3D model from Renderable call
  • Add instant placement fallback to PlacementMode: You can enable an instant plcament fallback when your current placement mode is not available yet or at all.
  • Added code style and contributing guidelines
  • Gradle 7.1.2

Fixes

  • Fix Instructions enable/disable

0.2.0 - Increased rendering performances and AR precision + Fixed too yellow rendering

17 Mar 10:38
Compare
Choose a tag to compare

Features

  • Improved rendering quality: Removed 3D rendering frames skipped based on FPS
  • Improved AR Precision: Removed and cleaned AR frame skipped
  • Reduced PlaneRender consumption when not visible
  • Reduced ArFrame consumption when no updated trackables (Plane, AugmentedImage, AugmentFace) are required
  • Refactored FrameTime to Kotlin
  • Retrieve current frame FPS
  • Added ModelNode.doOnModelLoaded to handle modifying the model when loaded
  • New cleaned Node smooth thresholds
  • No AR maxHitsPerSecond by default = Max precision
  • Added configurable session features
  • Added some colorOf functions with different parameters
  • Create an Anchor from an HitResult
  • Pose multiple rotations types
  • Added RenderableInstance object culling setter
  • Improved CursorNode
  • Added NodeSelection default SelectionVisualizer
  • Refactored session -> arSession and sessionConfig -> arSessionConfig
  • Change material parameter to Color
  • Retrieve Pose Euler Angles
  • Changed IblGenerator to handle hdr environment directory input instead of file
  • AR model viewer sample: Hide the plane renderer when the node is anchored
  • Public RenderableInstance.entity

Fixes

  • Fixed the too yellow model default reflection: Changed the default environment to a white studio
  • Fixed top most plane rendering and restored previous parameters (#46)
  • PlaneRenderMode.RENDER_ALL was set as the default mode but the doc states clearly that this mode is very expensive (#39)
  • Fixed ArSceneView and SceneView lifecycle listeners
  • Fixed CursorNode default placement mode
  • Fixed AugmentedImageInfoNode alignment
  • Refactored HDREnvironment
  • Fixed HDREnvironment double cubemap
  • Fixed session config order
  • Renamed Node.onFrameUpdate to onFrame
  • Changed ModelViewer sample background
  • Fixed model loading error not thrown

Documentation

  • Dokka Doc Markdown GFM (GitHub)
  • Dokka published to SceneView/sceneview.github.io
  • API reference link inside README.md
  • Issue and PR Autoclose
  • Added dictionary with spelling for renderable and renderables (#41)