You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/remote-rendering/how-tos/conversion/configure-model-conversion.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ This chapter documents the options for the model conversion.
13
13
14
14
## Settings file
15
15
16
-
If a file called `<modelName>.ConversionSettings.json` is found in the input container beside the input model `<modelName>.<ext>`, then it will be used to provide additional configuration for the model conversion process.
16
+
If a file called `<modelName>.ConversionSettings.json` is found in the input container beside the input model `<modelName>.<ext>`, then it will be used to provide extra configuration for the model conversion process.
17
17
For example, `box.ConversionSettings.json` would be used when converting `box.gltf`.
18
18
19
19
The contents of the file should satisfy the following json schema:
@@ -127,7 +127,7 @@ If a model is defined using gamma space, then these options should be set to tru
127
127
*`gammaToLinearVertex` - Convert :::no-loc text="vertex"::: colors from gamma space to linear space
128
128
129
129
> [!NOTE]
130
-
> For FBX files these settings are set to `true` by default. For all other file types, the default is `false`.
130
+
> For FBX, E57, PLY and XYZ files these settings are set to `true` by default. For all other file types, the default is `false`.
131
131
132
132
### Scene parameters
133
133
@@ -252,12 +252,13 @@ The properties that do have an effect on point cloud conversion are:
252
252
* `scaling` - same meaning as for triangular meshes.
253
253
* `recenterToOrigin` - same meaning as for triangular meshes.
254
254
* `axis` - same meaning as for triangular meshes. Default values are `["+x", "+y", "+z"]`, however most point cloud data will be rotated compared to renderer's own coordinate system. To compensate, in most cases `["+x", "+z", "-y"]` fixes the rotation.
255
-
* `gammaToLinearVertex` - similar to triangular meshes, this flag can be used when point colors are expressed in gamma space. In practice, when enabled, makes the point cloud appear darker.
255
+
* `gammaToLinearVertex` - similar to triangular meshes, this flag indicates whether point colors should be converted from gamma space to linear space. Default value for point cloud formats (E57, PLY and XYZ) is true.
256
+
256
257
* `generateCollisionMesh` - similar to triangular meshes, this flag needs to be enabled to support [spatial queries](../../overview/features/spatial-queries.md). But unlike for triangular meshes, this flag doesn't incurs longer conversion times, larger output file sizes, or longer runtime loading times. So disabling this flag can't be considered an optimization.
257
258
258
259
## Memory optimizations
259
260
260
-
Memory consumption of loaded content may become a bottleneck on the rendering system. If the memory payload becomes too large, it may compromise rendering performance or cause the model to not load altogether. This paragraph discusses some important strategies to reduce the memory footprint.
261
+
Memory consumption of loaded content may become a bottleneck on the rendering system. If the memory payload becomes too large, it may compromise rendering performance, or cause the model to not load altogether. This paragraph discusses some important strategies to reduce the memory footprint.
261
262
262
263
> [!NOTE]
263
264
> The following optimizations apply to triangular meshes. There is no way to optimize the output of point clouds through conversion settings.
Copy file name to clipboardExpand all lines: articles/remote-rendering/overview/features/performance-queries.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ Client-side application performance might be a bottleneck, too. For an in-depth
18
18
19
19
## Client/server timeline
20
20
21
-
Before going into detail regarding the various latency values, it is worthwhile to have a look at the synchronization points between client and server on the timeline:
21
+
Before going into detail regarding the various latency values, it's worthwhile to have a look at the synchronization points between client and server on the timeline:
@@ -66,7 +66,7 @@ The retrieved `FrameStatistics` object holds the following members:
66
66
| VideoFramesReceived | The number of frames received from the server in the last second. |
67
67
| VideoFrameReusedCount | Number of received frames in the last second that were used on the device more than once. Non-zero values indicate that frames had to be reused and reprojected either due to network jitter or excessive server rendering time. |
68
68
| VideoFramesSkipped | Number of received frames in the last second that were decoded, but not shown on display because a newer frame has arrived. Non-zero values indicate that network jittering caused multiple frames to be delayed and then arrive on the client device together in a burst. |
69
-
| VideoFramesDiscarded | Very similar to **VideoFramesSkipped**, but the reason for being discarded is that a frame came in so late that it can't even be correlated with any pending pose anymore. If this discarding happens, there is some severe network contention.|
69
+
| VideoFramesDiscarded | Very similar to **VideoFramesSkipped**, but the reason for being discarded is that a frame came in so late that it can't even be correlated with any pending pose anymore. If this discarding happens, there's some severe network contention.|
70
70
| VideoFrameMinDelta | Minimum amount of time between two consecutive frames arriving during the last second. Together with VideoFrameMaxDelta, this range gives an indication of jitter caused either by the network or video codec. |
71
71
| VideoFrameMaxDelta | Maximum amount of time between two consecutive frames arriving during the last second. Together with VideoFrameMinDelta, this range gives an indication of jitter caused either by the network or video codec. |
72
72
@@ -76,7 +76,7 @@ The sum of all latency values is typically much larger than the available frame
76
76
77
77
Lastly,`TimeSinceLastPresent`, `VideoFrameMinDelta`, and `VideoFrameMaxDelta` give an idea of the variance of incoming video frames and local present calls. High variance means instable frame rate.
78
78
79
-
None of the values above gives clear indication of pure network latency (the red arrows in the illustration), because the exact time that the server is busy rendering needs to be subtracted from the roundtrip value `LatencyPoseToReceive`. The server-side portion of the overall latency is information that is unavailable to the client. However, the next paragraph explains how this value is approximated through additional input from the server and exposed through the `NetworkLatency` value.
79
+
None of the values above gives clear indication of pure network latency (the red arrows in the illustration), because the exact time that the server is busy rendering needs to be subtracted from the roundtrip value `LatencyPoseToReceive`. The server-side portion of the overall latency is information that is unavailable to the client. However, the next paragraph explains how this value is approximated through extra input from the server and exposed through the `NetworkLatency` value.
80
80
81
81
## Performance assessment queries
82
82
@@ -118,11 +118,12 @@ Contrary to the `FrameStatistics` object, the `PerformanceAssessment` object con
118
118
| UtilizationGPU | Total server GPU utilization in percent |
119
119
| MemoryCPU | Total server main memory utilization in percent |
120
120
| MemoryGPU | Total dedicated video memory utilization in percent of the server GPU |
121
-
| NetworkLatency | The approximate average roundtrip network latency in milliseconds. In the illustration above, this value corresponds to the sum of the red arrows. The value is computed by subtracting actual server rendering time from the `LatencyPoseToReceive` value of `FrameStatistics`. While this approximation is not accurate, it gives some indication of the network latency, isolated from the latency values computed on the client. |
122
-
| PolygonsRendered | The number of triangles rendered in one frame. This number also includes the triangles that are culled later during rendering. That means, this number does not vary a lot across different camera positions, but performance can vary drastically, depending on the triangle culling rate.|
121
+
| NetworkLatency | The approximate average roundtrip network latency in milliseconds. In the illustration above, this value corresponds to the sum of the red arrows. The value is computed by subtracting actual server rendering time from the `LatencyPoseToReceive` value of `FrameStatistics`. While this approximation isn't accurate, it gives some indication of the network latency, isolated from the latency values computed on the client. |
122
+
| PolygonsRendered | The number of triangles rendered in one frame. This number also includes the triangles that are culled later during rendering. That means, this number doesn't vary a lot across different camera positions, but performance can vary drastically, depending on the triangle culling rate.|
123
+
| PointsRendered | The number of points in point clouds rendered in one frame. Same culling criteria as mentioned above for `PolygonsRendered` apply here.|
123
124
124
125
To help you assess the values, each portion comes with a quality classification like **Great**, **Good**, **Mediocre**, or **Bad**.
125
-
This assessment metric provides a rough indication of the server's health, but it should not be seen as absolute. For example, assume you see a 'mediocre' score for the GPU time. It is considered mediocre because it gets close to the limit for the overall frame time budget. In your case however, it might be a good value nonetheless, because you are rendering a complex model.
126
+
This assessment metric provides a rough indication of the server's health, but it shouldn't be seen as absolute. For example, assume you see a 'mediocre' score for the GPU time. It's considered mediocre because it gets close to the limit for the overall frame time budget. In your case however, it might be a good value nonetheless, because you're rendering a complex model.
Copy file name to clipboardExpand all lines: articles/remote-rendering/reference/vm-sizes.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -73,7 +73,7 @@ For the [example PowerShell scripts](../samples/powershell-example-scripts.md),
73
73
74
74
### How the renderer evaluates the number of primitives
75
75
76
-
The number of primitives that are considered for the limitation test are the number of primitives that are actually passed to the renderer. This geometry is typically the sum of all instantiated meshes, but there are also exceptions. The following geometry is **not included**:
76
+
The number of primitives that are considered for the limitation test are the number of primitives (triangles and points) that are actually passed to the renderer. This geometry is typically the sum of all instantiated meshes, but there are also exceptions. The following geometry is **not included**:
77
77
* Loaded model instances that are fully outside the view frustum.
78
78
* Models or model parts that are switched to invisible, using the [hierarchical state override component](../overview/features/override-hierarchical-state.md).
79
79
@@ -83,7 +83,7 @@ Accordingly, it's possible to write an application that targets the `standard` s
83
83
84
84
There are two ways to determine the number of primitives of a model or scene that contribute to the budget limit of the `standard` configuration size:
85
85
* On the model conversion side, retrieve the [conversion output json file](../how-tos/conversion/get-information.md), and check the `numFaces` entry in the [*inputStatistics* section](../how-tos/conversion/get-information.md#the-inputstatistics-section). This number denotes the triangle count in triangular meshes and number of points in point clouds respectively.
86
-
* If your application is dealing with dynamic content, the number of rendered primitives can be queried dynamically during runtime. Use a [performance assessment query](../overview/features/performance-queries.md#performance-assessment-queries) and check for the `polygonsRendered` member in the `FrameStatistics` struct. The `PolygonsRendered` field will be set to `bad` when the renderer hits the primitive limitation. The checkerboard background is always faded in with some delay to ensure user action can be taken after this asynchronous query. User action can, for instance, be hiding or deleting model instances.
86
+
* If your application is dealing with dynamic content, the number of rendered primitives can be queried dynamically during runtime. Use a [performance assessment query](../overview/features/performance-queries.md#performance-assessment-queries) and check for the sum of the values in the two members `PolygonsRendered` and `PointsRendered`in the `PerformanceAssessment` struct. The `PolygonsRendered` / `PointsRendered` field will be set to `bad` when the renderer hits the primitive limitation. The checkerboard background is always faded in with some delay to ensure user action can be taken after this asynchronous query. User action can, for instance, be hiding or deleting model instances.
0 commit comments