你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
服务器大小
Azure 远程渲染有两种服务器配置:Standard
和 Premium
。
基元限制
基元是单个三角形(在三角形网格中)或单个点(在点云网格中)。 三角网格可以与点云一起实例化,在这种情况下,会话中所有点和三角形的总和都计入限制。
标准大小
使用 Standard
大小服务器的远程渲染的最大场景大小为 2 千万个基元。 在“标准”服务器大小上的渲染器达到此限制时,它会将渲染切换为黑白方格图案背景:
高级版大小
使用 Premium
大小的远程渲染不会强制实施硬性最大值,但如果内容超出该服务的渲染能力,则性能可能会下降。 此外,对于三角网格(与点云不同),可用的图形内存量是硬性限制。 无法将图形内存量映射到特定数量的三角形,因为有许多因素取决于源网格和设置:
- 纹理的编号和分辨率,
- 网格内的唯一几何图形与子网格实例化量(另 请参阅实例化对象),
- 正在使用的顶点流 ,
- 用于
Premium
大小的呈现合成模式。
对于 点云 ,没有真正的限制,因为点云资产使用 数据流式处理方法。 使用数据流式处理,呈现器根据实际可见几何图形自动管理图形卡上的内存预算。
指定服务器大小
必须在渲染会话初始化时指定所需服务器配置类型。 在正在运行的会话中无法更改该类型。 下面的代码示例显示了必须指定服务器大小的位置:
async void CreateRenderingSession(RemoteRenderingClient client)
{
RenderingSessionCreationOptions sessionCreationOptions = default;
sessionCreationOptions.Size = RenderingSessionVmSize.Standard; // or RenderingSessionVmSize.Premium
CreateRenderingSessionResult result = await client.CreateNewRenderingSessionAsync(sessionCreationOptions);
if (result.ErrorCode == Result.Success)
{
RenderingSession session = result.Session;
// do something with the session
}
}
void CreateRenderingSession(ApiHandle<RemoteRenderingClient> client)
{
RenderingSessionCreationOptions sessionCreationOptions;
sessionCreationOptions.Size = RenderingSessionVmSize::Standard; // or RenderingSessionVmSize::Premium
client->CreateNewRenderingSessionAsync(sessionCreationOptions, [](Status status, ApiHandle<CreateRenderingSessionResult> result) {
if (status == Status::OK && result->GetErrorCode() == Result::Success)
{
ApiHandle<RenderingSession> session = result->GetSession();
// do something with the session
}
});
}
对于示例 PowerShell 脚本,必须在 arrconfig.json
文件中指定所需服务器大小:
{
"accountSettings": {
...
},
"renderingSessionSettings": {
"vmSize": "<standard or premium>",
...
},
渲染器如何计算基元数量
进行限制测试时考虑的基元的数量是实际传递到渲染器的基元(三角形和点)的数量。 此几何图形通常是所有已实例化的网格的总和,但也有例外。 以下几何图形未包括在内:
- 完全在视锥外的已加载的模型实例。
- 使用分层状态替代组件切换为不可见的模型或模型部件。
因此,可以针对 standard
大小编写一个应用程序,用于加载基元计数接近每一个模型的限制的多个模型。 在该应用程序一次只显示一个模型时,不会触发黑白方格。
如何确定基元的数量
对于会影响 standard
配置大小的预算限制的模型或场景,若要确定它们的基元数量,可以使用两种方法:
- 在模型转换端,检索转换输出 json 文件,并检查 inputStatistics 节中的
numFaces
条目。 此数字分别表示三角网格中的三角形计数和点云中的点数。 - 如果你的应用程序要处理动态内容,则可以在运行时动态查询渲染的基元的数量。 使用性能评估查询并检查
PerformanceAssessment
结构中PolygonsRendered
和PointsRendered
两个成员的值之和。 当呈现器达到基元限制时,该PolygonsRendered
/PointsRendered
字段设置为。bad
黑白方格图案背景在淡入时始终会带有一些延迟,以确保可以在此异步查询后执行用户操作。 例如,用户操作可能会是隐藏或删除模型实例。
定价
若要详细了解每种配置类型的定价明细,请参考远程渲染定价页。