Release date: 17.03.2021
Release info: General Release
This is a major update for VisionLib which adds:
2.0.0. Semantic Versioning expresses versions as MAJOR.MINOR.PATCH, where MAJOR introduces one or more breaking changes, MINOR introduces one or more backward-compatible API changes, and PATCH only introduces bug fixes with no API changes at all.Also, support for Unity versions below 2019.4 LTS has ended with this release.
Thank you to all our users for giving feedback.
maxImageSize to make the behavior of AutoInit independent of the size of the tracking image. It is set to 640 by default. To restore the previous behavior, increase the value to at least the size of your tracking image.VisionLib > About window, which can be found in the main menu of the Unity Editor.TrackerEventsProvider component, that lets you react to events like OnTrackerInitialized and OnTrackerStopped easily through the inspector, without the need to write code.VLPosterTracker prefab that can be used to call poster tracker related commands.azureKinect.disableExternalSLAM, which used to enforce using the internal implementation of extendible tracking.lineModelRenderSize from 0 to 1024. To restore the old behavior and use the size of the tracking image for the lineModelImage, set the lineModelRenderSize to 0 manually.file URI scheme now works correctly with absolute file paths on Windows (e.g. file:///c:/models/model.obj will internally get resolved to C:\models\model.obj).vlErrorCode::VL_ERROR_FILE_SYNTAX_ERROR. This is thrown if there is a syntax error in the loaded .vl file.vlErrorCode::VL_ERROR_NO_CAMERA_ACCESS error will get produced. Previously, the tracking would start, but only generate black camera images without reporting an error.SimpleWorkSpace as a simple mode to define the WorkSpace for AutoInit.AdvancedWorkSpace does.Advanced- and SimpleWorkSpaces. The WorkSpace will use the selected GameObject from the hierarchy as its destination and add itself to a TrackingAnchor in its parents, if one exists. If there is no WorkSpaceManager in the scene, it will be created automatically when using one of those context menu entries.SimpleWorkSpace and the Sphere geometry of the AdvancedWorkSpace.AdvancedWorkSpace will no longer be adjusted to fill the whole image if put to far away and will instead be used as provided by the user.NotificationDisplay component, which activates UI notifications in addition to the console logs and is part of the new VLNotifications prefab. Its position in the hierarchy defines in which canvas the notifications will be displayed.GeneralSettings component that can be used to control the global log level of notifications and console logs.GeneralSettings component. Use the log level Info to receive additional information during development, e.g. the selected cameras deviceID and tracking events.VLHoloLensModelTrackingInput, VLHoloLensPosterTrackingInput and VLHoloLensImageRecorderInput. Each of them contains sets of voice commands and key codes to trigger general VisionLib events without the need to set in-scene references manually.TrackingManager (former VLWorkerBehaviour) will now pause and resume tracking if the tracking was already initialized.InitCamera component (former VLInitCameraBehaviour) will now also work when it is enabled while the tracker is already running.baseTransform property of models. Transformations can still be set by using the transform property. If you used both before, multiply them together like this: metaioModelURIs. See Model Tracker, parameter metaioLineModelURI for further usage.Scripts
VL prefix and the Behaviour or Wrapper postfix of several scripts| Former Name | New Name |
|---|---|
| VLWorkerBehaviour | TrackingManager |
| VLWorkerReferenceBehaviour | TrackingManagerReference |
| VLModelTrackableBehaviour | TrackingModel |
| VLTrackedObjectBehaviour | TrackingStateProvider |
| CameraCalibrationExampleBehaviour | CameraCalibration |
| VLRenderBackgroundImageBehaviour | BackgroundImageRenderer |
| VLDetectScreenChangeBehaviour | ScreenOrientationObserver |
| VLCameraCalibration | CameraCalibrationResult |
| VLInitIssuesToEventsAdapter | IssuesToEventsAdapter |
| VLGeometry | WorkSpaceGeometry |
| VLWebCamBehaviour | WebCamInputDevice |
| VLUnitySdk | VLSDK |
| ChangeModelBehaviour | ModelSwitcher |
| SetTextBehaviour | InvariantCultureTextField |
| WindowsSpeechRecognitionBehaviour | WindowsSpeechInput |
| KeyDownEventDispatcher | KeyboardInput |
Methods and Parameters
VLWorkerReferenceBehaviour.workerBehaviour to TrackingManagerReference.trackingManagerVLUnitySdk.LogLevel.Fatal to VLSDK.LogLevel.Error according to the new naming in the native sdkVLModelTrackableBehaviour.UpdateTransformation to TrackingModel.UpdateModelPropertiesVLModelTrackableBehaviour.UpdateModel to TrackingModel.AddModelDataVLAnchorCommand to AnchorSetWorkSpaceCommand to better fit its purposePrefabs
VLModelTracker_v1.prefab to VLModelTracker.prefabVLRuntimeParameters_ModelTracker_v1.prefab to VLModelTrackerParameters.prefabOthers
MutableModelTracking example scene to ModelPartsTrackingcar.vl -> SimpleModelTrackingConfiguration.vl)TrackingStateProvider (former VLTrackedObjectBehaviour):justTrackedEvent -> trackedjustCriticalEvent -> trackingCriticaljustLostEvent -> trackingLostEnableAnchorCommand are now located in the MultiModelTrackerCommands namespace.VLWorkerBehaviour to CameraCalibration.VLHoloLensModelTrackerCommands.SetGlobalObjectPoseCmd to ModelTrackerCommands.SetGlobalObjectPoseCmdVLInitIssueNotifications and VLLogEventsBehaviour. The corresponding logs are now shown automatically.VLLogTrackingInfoBehaviour. Add the VLTrackingInfoList prefab as a child of your canvas instead.Notice.LogInitPoseBehaviour since the InitPose can be investigated via the InitCamera.trackedEvent, criticalEvent and lostEvent of the TrackingStateProvider (former VLTrackedObjectBehaviour) that have been fired continuously. Please use the events tracked, trackingCritical and trackingLost instead, that will only be fired once on a tracking state change.VLAbstractApplicationWrapperStartTrackingWithCameraSelectionBehaviourAutoStartLogTrackingEventsBehaviourShowInitWarningEventBehaviourCameraResolutionSelectorVLEventsToTextAdapterVLIssuesVLTrackingIssuesVLWorkSpaceManagerEditorVLWorkerBehaviourEditorVisometry.VisionLib.SDK.Core: Contains components that are used to add tracking functionality and to setup or interact with VisionLib's tracking.Visometry.VisionLib.SDK.Core.API: Contains classes that are used to directly communicate with the VisionLib engine, e.g. command classes.SceneContent GameObject) in the inspector of the TrackingModel (former VLModelTrackableBehaviour) component, because it will no longer be set automatically from the content parameter of the HoloLensTracker component.TrackingManagerReference (former VLWorkerReferenceBehaviour) and tries to access the trackingManager or worker parameter, the according reference will now be searched automatically. If the reference was not found, a TrackingManagerNotFoundException or WorkerNotFoundException will be thrown respectively. The former process of calling InitWorkerReference to find the references has been deprecated.OnTrackerStopped, OnTrackerRunning, OnTrackerResetHard) have been changed to only be fired on success.TrackingManager.OnTrackerStopped will now also trigger, if the initialization of the tracker failed.async functions, so you can either await them before continuing the execution or - by default - execute them in a separate thread:VLWorkerBehaviour.OnIssuesTriggered event has been changed to TrackingManager.OnIssueTriggered which will be sent for each issue that arose and does not longer store a list of warnings and errors, but the specific issue itself.VLWorker.pushCommand are now private. Please use the corresponding async Task function. These functions also provide the correct result of the command as the Task template parameter. For details see Updating the VisionLib Package[vlUnitySDK] to [VisionLib]. Logs that originate from the native VisionLib engine will now have the prefix [VisionLib-Native] instead of [VisionLib].vlLogLevel::VL_LOG_FATAL to vlLogLevel::VL_LOG_ERROR, which better fits general naming conventions.vlLogLevel::VL_LOG_INFO and vlLogLevel::VL_LOG_NOTICE. vlLogLevel::VL_LOG_DEBUG will now have value 3.models and json objects to define the transformation instead.vlNew_Worker and vlNew_SyncWorker. The functions no longer require an AbstractApplicationWrapper or nullptr.ImageRecorder (start, stop and reset) no longer return any values.write jsonCommand of the camera calibration now requires the uri parameter inside a param object.getModelData jsonAndBinaryCommand now returns the model descriptions (models) in the result object.name and an updateCount.addModelData jsonAndBinaryCommandmodels if supplied the name of an existing model. Instead, it will return an error, stating that the model name was already used.addedModels object inside the result object.param.models instead of models.setModelProperties or setMultipleModelProperties commands instead if you just want to update the data. See Model Parts Trackingurl is supplied with the model definition.addModel, removeModel, setModelProperty) changed. Please refer to Model Parts Tracking .setModelProperty to setModelProperties and changed its parameters.setMultipleModelProperties to set multiple model properties at once.CameraCalibration pipeline. For possible implications on application, that let end users calibrate their camera, please refer to Updating the VisionLib PackageCameraCalibration no longer return a stateChanged object in the result.state string.getResults command has been changed. The former calibration object is now the root json object.param json object.| CommandName | param value until 20.11.1 | param value since 2.0.0 |
|---|---|---|
| createTracker | "param": FILE_URI | "param": {"uri": FILE_URI} |
| setTargetFPS | "param": FPS | "param": {"targetFPS": FPS} |
| getAttribute | "param": ATTRIBUTE_NAME | "param": {"att": ATTRIBUTE_NAME} |
| writeInitData | "param": INIT_DATA_URI | "param": {"uri": INIT_DATA_URI} |
| readInitData | "param": INIT_DATA_URI | "param": {"uri": INIT_DATA_URI} |
| removeModel | "param": MODEL_NAME | "param": {"modelName": MODEL_NAME} |
| enableAnchor | "param": ANCHOR_NAME | "param": {"anchorName": ANCHOR_NAME} |
| disableAnchor | "param": ANCHOR_NAME | "param": {"anchorName": ANCHOR_NAME} |