Releases: Azure/azure-remote-rendering
Release 1.2.32
Important Service Updates
- SDK updated to version 1.2.32
API Changes
- All spatial query methods now take a new parameter
OverlapTestMode
inSpatialQueryAabb
/SpatialQuerySphere
/SpatialQueryObb
.- This mode determines the granularity at which overlap tests are performed.
- Default mode is
OverlapTestMode.PartBoundingBox
, which uses old behavior. - The new mode,
OverlapTestMode.Primitives
tests the volume against actual triangles/points of the mesh parts. - While the new mode is much more accurate when testing against actual model surfaces, the
PartBoundingBox
mode has its justification when the test should report hits when the test volume is completely inside a closed shape without touching the surface.
Sample Updates
- The near interaction in Showcase now makes use of the new
OverlapTestMode
. This addresses Issue #124: Hand ray and pointer don't work when inside a 3D model in ShowCase. - Sample scripts: Conversions through the
Conversion.ps1
script can now use Entra authentication if-UseConnectedStorageAccount
is specified.
Release 1.2.30
Important Service Updates
- SDK updated to version 1.2.30.
Bug Fixes
- Fixed more promises and async APIs to be properly failed on graceful or ungraceful disconnect, which were missed in 1.2.20.
- Fixed a rare bug where the client could crash on connect, if session is disconnected before connection was fully established.
Release 1.2.29
Important Service Updates
- SDK updated to version 1.2.29
API Changes
- Outlines can now be color-tinted by a screen-aligned texture mask. See additional parameters in global
RenderingConnection.OutlineSettings
object. See Outline Rendering documentation page for details.
Release 1.2.28
Important Service Updates
- SDK updated to version 1.2.28
Bug Fixes
- Unity: Fixed Azure Remote Rendering not considering Quality-level URP settings.
- Conversion service: Fixed output json file. The
numFaces
entry (input statistics section) and thenumPrimitives
entry (output statistics section) did not consider geometry instancing, so it was not a valid metric for the render size limit. For future conversions, these numbers have been fixed and can now be used to determine whether a model fits into Standard SKU.
Sample Updates
- Showcase: Added support for loading model thumbnails when using AAD for authentication by loading thumbnails via Storage SDK instead of generating SAS URLs.
1.2.27
Important Service Updates
- SDK updated to version 1.2.27
Sample Updates
- Improved documentation for Showcase
Release 1.2.26
Important Service Updates
- SDK updated to version 1.2.26
Features
- The
HierarchicalStateOverrideComponent
can now be used to render subgraphs of models with a single material. This can be used to implement certain highlighting effects without cumbersome per-node material switches. This feature is exposed through the newHierarchicalStates.UseOverrideMaterial
flag and theHierarchicalStateOverrideComponent.OverrideMaterial
property. - The
ColorMaterial
now exposes a mode to define the generation mode of texture coordinates. Beside using the UV sets from the source model, there are now two new modesTextureCoordinateGenerationMode.PlanarWorldSpace
andTextureCoordinateGenerationMode.PlanarObjectSpace
. These modes generate the texture coordinates from vertex distance to two user-defined planes. The two planes are exposed throughColorMaterial.TexCoordPlaneU
andColorMaterial.TexCoordPlaneV
. Use case for these texturing modes are highlighting effects where a texture is projected in world/object space. - Added proper support for MRC capture on HoloLens 2 / OpenXR. Captures will now have 3D content rendered in the camera's view instead of the left eye view. This requires more rendering resources. To restore the old behaviour, check "Disable First Person Observer" in the "OpenXR / Mixed Reality Features" section of the Unity project's settings.
Bug Fixes
- Unity: Fixed
ARRServiceUnity
not fully resetting and unable to start new session after callingForgetSession
while a session is still starting.
Release 1.2.25
Important Service Updates
- SDK updated to version 1.2.25
Features
- Added a
SolidEdgeSize
parameter toCutPlaneComponent
, which allows to customize the pixel width of the hard color edge rendered at intersections of cutplanes with geometry.
API Changes
- Added a new
struct Plane
in the runtime API. In case this collides with Unity's plane class, use an explicit namespace.
Bug Fixes
- Conversion: Better handling of edge cases when model contains broken UTF-8 text encodings.
Sample Updates
- Tutorial-Complete: Fixed PC Standalone builds due to missing import settings on "Microsoft.Identity.Client.dll".
- Showcase: Fixed non-build-breaking errors showing in the console when building for PC Standalone or Quest.
Release 1.2.24
Important Service Updates
- SDK updated to version 1.2.24
API Changes
- The Unity package includes a new extension method
IsValid()
to check ifUnityEngine.Bounds
are valid.
Sample Updates
- Quickstart and Showcase: use the new
IsValid()
check. - Showcase: Reworked remote casting for pointers, fixing multi stepped pointers like the
ParabolicTeleportPointer
and providing a more smooth and responsive remote pointer UX in general.
Release 1.2.23
Important Service Updates
- SDK updated to version 1.2.23
- Conversion service:
- For triangular mesh conversions, the number of output primitives (triangles/lines) has been added to the "outputstatistics" section of the .info.json file.
- When converting an .fbx with unsupported geometry types (Splines/NURBS) an output warning is issued through the result.json file. If the converted arrAsset ends up with no valid geometry at all, another warning is issued.
Bug Fixes
- Fixed edge case on HoloLens and Desktop where remote content could partially disappear despite not occluded by local content.
- Fixed a bug for triangular meshes converted with an unsupported texture UV index causing a crash when loading the model.
Sample Updates
- Showcase: Fixed
arr.account.xml
not being loaded on Quest devices.
Release 1.2.21
Important Service Updates
- SDK updated to version 1.2.21
API Changes
New scene graph traversal helpers
The following new client-side runtime API functions have been added to accelerate some special purpose scene graph traversal use cases:
Entity.GetRootPath
: Builds a path string that consists of entity names with separators up to the root level, for example "root\path\to\this\entity".Entity.FindByPath
/TryFindByPath
: Finds one or more entities with a given path under an entity.Entity.FindComponentsOfTypeInHierarchy
/TryFindComponentsOfTypeInHierarchy
: Finds all occurrences of a specific component in the graph under an entity.Entity.FindEntitiesByNameInHierarchy
/TryFindEntitiesByNameInHierarchy
: Finds all entities with a matching name in the graph under an entity.
The same functionality could have been accomplished through manual traversal / the visitor function, however these functions have been implemented purely on the native side, so they are orders of magnitudes faster than their counterparts implemented in C#.
RemoteRendering.StringComparison
. This might collide with the System.StringComparison
type. To fix issues with this, you'll have to fully qualify the name of these enums in your code.
Utility class to find the best rendering region based on ping times
A useful utility function has been added to the Unity binding code. It allows for pinging endpoints for a selectable set of rendering regions and then returns the list of regions ordered by best ping times. This utility function can either be used as-is in production, or it can serve as sample code for similar implementations.
Here is some sample code:
List<RegionPingResult> sortedResults = await RegionPingUtility.PingArrRegionsAsync(null);
string bestRegion = sortedResults[0].Region