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: metaioModelURI
s. See Model Tracker, parameter metaioLineModelURI
for further usage.Scripts
VL
prefix and the Behaviour
or Wrapper
postfix of several scriptsFormer 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.trackingManager
VLUnitySdk.LogLevel.Fatal
to VLSDK.LogLevel.Error
according to the new naming in the native sdkVLModelTrackableBehaviour.UpdateTransformation
to TrackingModel.UpdateModelProperties
VLModelTrackableBehaviour.UpdateModel
to TrackingModel.AddModelData
VLAnchorCommand
to AnchorSetWorkSpaceCommand
to better fit its purposePrefabs
VLModelTracker_v1.prefab
to VLModelTracker.prefab
VLRuntimeParameters_ModelTracker_v1.prefab
to VLModelTrackerParameters.prefab
Others
MutableModelTracking
example scene to ModelPartsTracking
car.vl
-> SimpleModelTrackingConfiguration.vl
)TrackingStateProvider
(former VLTrackedObjectBehaviour
):justTrackedEvent
-> tracked
justCriticalEvent
-> trackingCritical
justLostEvent
-> trackingLost
EnableAnchorCommand
are now located in the MultiModelTrackerCommands
namespace.VLWorkerBehaviour
to CameraCalibration
.VLHoloLensModelTrackerCommands.SetGlobalObjectPoseCmd
to ModelTrackerCommands.SetGlobalObjectPoseCmd
VLInitIssueNotifications
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.VLAbstractApplicationWrapper
StartTrackingWithCameraSelectionBehaviour
AutoStart
LogTrackingEventsBehaviour
ShowInitWarningEventBehaviour
CameraResolutionSelector
VLEventsToTextAdapter
VLIssues
VLTrackingIssues
VLWorkSpaceManagerEditor
VLWorkerBehaviourEditor
Visometry.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} |