Skip to content

Commit f5241dd

Browse files
authored
Merge pull request #122928 from MalcolmTyrrell/specificConversionInfoFiles
Specific conversion info files
2 parents 1a0f90b + 17e2ae8 commit f5241dd

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

articles/remote-rendering/how-tos/conversion/configure-model-conversion.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ This chapter documents the options for the model conversion.
1313

1414
## Settings file
1515

16-
If a file called `ConversionSettings.json` is found in the input container beside the input model, then it is 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 additional configuration for the model conversion process.
17+
For example, `box.ConversionSettings.json` would be used when converting `box.gltf`.
1718

1819
The contents of the file should satisfy the following json schema:
1920

@@ -49,7 +50,7 @@ The contents of the file should satisfy the following json schema:
4950
}
5051
```
5152

52-
An example `ConversionSettings.json` file might be:
53+
An example file `box.ConversionSettings.json` might be:
5354

5455
```json
5556
{
@@ -61,15 +62,18 @@ An example `ConversionSettings.json` file might be:
6162

6263
### Geometry parameters
6364

64-
* `scaling` - This parameter scales a model uniformly. Scaling can be used to grow or shrink a model, for example to display a building model on a table top. Since the rendering engine expects lengths to be specified in meters, another important use of this parameter arises when a model is defined in different units. For example, if a model is defined in centimeters, then applying a scale of 0.01 should render the model at the correct size.
65+
* `scaling` - This parameter scales a model uniformly. Scaling can be used to grow or shrink a model, for example to display a building model on a table top.
66+
Scaling is also important when a model is defined in units other than meters, since the rendering engine expects meters.
67+
For example, if a model is defined in centimeters, then applying a scale of 0.01 should render the model at the correct size.
6568
Some source data formats (for example .fbx) provide a unit scaling hint, in which case the conversion implicitly scales the model to meter units. The implicit scaling provided by the source format will be applied on top of the scaling parameter.
6669
The final scaling factor is applied to the geometry vertices and the local transforms of the scene graph nodes. The scaling for the root entity's transform remains unmodified.
6770

6871
* `recenterToOrigin` - States that a model should be converted so that its bounding box is centered at the origin.
69-
Centering is important if the source model is displaced far from the origin, since in that case floating point precision issues may cause rendering artifacts.
72+
If a source model is displaced far from the origin, floating point precision issues may cause rendering artifacts.
73+
Centering the model can help in this situation.
7074

7175
* `opaqueMaterialDefaultSidedness` - The rendering engine assumes that opaque materials are double-sided.
72-
If that is not the intended behavior, this parameter should be set to "SingleSided". For more information, see [:::no-loc text="single sided"::: rendering](../../overview/features/single-sided-rendering.md).
76+
if that assumption isn't true of a particular model, this parameter should be set to "SingleSided". For more information, see [:::no-loc text="single sided"::: rendering](../../overview/features/single-sided-rendering.md).
7377

7478
### Material overrides
7579

@@ -94,10 +98,10 @@ If a model is defined using gamma space, then these options should be set to tru
9498

9599
* `sceneGraphMode` - Defines how the scene graph in the source file is converted:
96100
* `dynamic` (default): All objects in the file are exposed as [entities](../../concepts/entities.md) in the API and can be transformed independently. The node hierarchy at runtime is identical to the structure in the source file.
97-
* `static`: All objects are exposed in the API but cannot be transformed independently.
101+
* `static`: All objects are exposed in the API but they cannot be transformed independently.
98102
* `none`: The scene graph is collapsed into one object.
99103

100-
Each mode has different runtime performance. In `dynamic` mode, the performance cost scales linearly with the number of [entities](../../concepts/entities.md) in the graph, even when no part is moved. It should only be used when moving parts individually is necessary for the application, for example for an 'explosion view' animation.
104+
Each mode has different runtime performance. In `dynamic` mode, the performance cost scales linearly with the number of [entities](../../concepts/entities.md) in the graph, even when no part is moved. Use `dynamic` mode only when it is necessary to move parts individually, for example for an 'explosion view' animation.
101105

102106
The `static` mode exports the full scene graph, but parts inside this graph have a constant transform relative to its root part. The root node of the object, however, can still be moved, rotated, or scaled at no significant performance cost. Furthermore, [spatial queries](../../overview/features/spatial-queries.md) will return individual parts and each part can be modified through [state overrides](../../overview/features/override-hierarchical-state.md). With this mode, the runtime overhead per object is negligible. It is ideal for large scenes where you still need per-object inspection but no per-object transform changes.
103107

@@ -274,6 +278,11 @@ In these use cases, the models often have very high detail within a small volume
274278
* Ray casts are typically an integral part of the application, so collision meshes must be generated.
275279
* Cut planes look better with the `opaqueMaterialDefaultSidedness` flag enabled.
276280

281+
## Deprecated features
282+
283+
Providing settings using the non-model-specific filename `conversionSettings.json` is still supported but deprecated.
284+
Please use the model-specific filename `<modelName>.ConversionSettings.json` instead.
285+
277286
## Next steps
278287

279288
* [Model conversion](model-conversion.md)

articles/remote-rendering/how-tos/conversion/override-materials.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@ ms.topic: how-to
99

1010
# Override materials during model conversion
1111

12-
During conversion, the material settings in the source model are used to define the [PBR materials](../../overview/features/pbr-materials.md) used by the renderer.
12+
The material settings in the source model are used to define the [PBR materials](../../overview/features/pbr-materials.md) used by the renderer.
1313
Sometimes the [default conversion](../../reference/material-mapping.md) doesn't give the desired results and you need to make changes.
1414
When a model is converted for use in Azure Remote Rendering, you can provide a material-override file to customize how material conversion is done on a per-material basis.
1515
The section on [configuring model conversion](configure-model-conversion.md) has instructions for declaring the material override filename.
1616

1717
## The override file used during conversion
1818

19-
As a simple example, let's say that a box model has a single material, called "Default". The albedo color needs to be adjusted for use in ARR.
19+
As a simple example, let's say that a box model has a single material, called "Default".
20+
Additionally, let's say its albedo color needs to be adjusted for use in ARR.
2021
In this case, a `box_materials_override.json` file can be created as follows:
2122

2223
```json
@@ -33,7 +34,7 @@ In this case, a `box_materials_override.json` file can be created as follows:
3334
]
3435
```
3536

36-
The `box_materials_override.json` file is placed in the input container, and a `ConversionSettings.json` is added beside `box.fbx`, which tells conversion where to find the override file (see [Configuring the model conversion](configure-model-conversion.md)):
37+
The `box_materials_override.json` file is placed in the input container, and a `box.ConversionSettings.json` is added beside `box.fbx`, which tells conversion where to find the override file (see [Configuring the model conversion](configure-model-conversion.md)):
3738

3839
```json
3940
{
@@ -46,7 +47,7 @@ When the model is converted, the new settings will apply.
4647
### Color materials
4748

4849
The [color material](../../overview/features/color-materials.md) model describes a constantly shaded surface that is independent of lighting.
49-
This is useful for assets made by Photogrammetry algorithms, for example.
50+
Color materials are useful for assets made by Photogrammetry algorithms, for example.
5051
In material override files, a material can be declared to be a color material by setting `unlit` to `true`.
5152

5253
```json

0 commit comments

Comments
 (0)