Tamaños de servidor

Azure Remote Rendering está disponible en dos configuraciones de servidor: Standard y Premium.

Límites primitivos

Un primitivo es un único triángulo (en mallas triangulares) o un único punto (en mallas de nube de punto). Se pueden crear instancias de mallas triangulares junto con nubes de puntos, en cuyo caso la suma de todos los puntos y triángulos de la sesión se cuentan con respecto al límite.

Tamaño estándar

Remote Rendering con el servidor de tamaño Standard tiene un tamaño máximo de escena de primitivas de 20 millones. Cuando el representador de un tamaño de servidor Standard alcanza esta limitación, cambia la representación a un fondo de tablero de ajedrez:

Screenshot shows a grid of black and white squares with a Tools menu.

Tamaño Premium

Remote Rendering con el tamaño Premium no exige un máximo forzado, pero el rendimiento puede verse afectado si el contenido supera las funcionalidades de representación del servicio. Además, para las mallas triangulares (y a diferencia de las nubes puntuales), la cantidad disponible de memoria gráfica es un límite estricto. No es posible asignar la cantidad de memoria gráfica a un número específico de triángulos, ya que hay muchos factores de contribución que dependen de la malla de origen y la configuración:

  • número y resolución de texturas,
  • cantidad de geometría única frente a creación de instancias de subred dentro de la malla (vea también la creación de instancias de objetos),
  • flujos de vértices que se usan,
  • el modo de composición de representación usado con el Premium tamaño.

En el caso de las nubes de punto no hay ningún límite real, ya que los recursos en la nube de punto usan el enfoque de streaming de datos. Con el streaming de datos, el representador administra automáticamente el presupuesto de memoria en la tarjeta gráfica, en función de la geometría visible real.

Especificación del tamaño del servidor

El tipo deseado de configuración del servidor tiene que especificarse en el momento de la inicialización de la sesión de representación. No se puede cambiar en una sesión en ejecución. Los ejemplos de código siguientes muestran el lugar en el que debe especificarse el tamaño del servidor:

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
        }
    });
}

Para los scripts de PowerShell de ejemplo, el tamaño de servidor deseado debe especificarse dentro del archivo arrconfig.json:

{
  "accountSettings": {
    ...
  },
  "renderingSessionSettings": {
    "vmSize": "<standard or premium>",
    ...
  },

Procedimientos para que el representador evalúe el número de primitivas

El número de primitivas que se considera para la prueba de limitación es el número de primitivas (triángulos y puntos) que se pasa al representador. Normalmente, esta geometría es la suma de todas las mallas de las que se han creado instancias, aunque también hay excepciones. La siguiente geometría no se incluye:

En consecuencia, es posible escribir una aplicación que se destina al tamaño standard que carga varios modelos con un número de primitivas próximo al límite de cada modelo. Cuando la aplicación muestra únicamente un único modelo cada vez, el tablero de ajedrez no se desencadena.

Procedimientos para determinar el número de primitivas

Hay dos maneras de determinar el número de primitivas de un modelo o una escena que contribuyan al límite del presupuesto del tamaño de configuración standard:

  • En la conversión del modelo, recupere el archivo JSON de salida de la conversión y compruebe la entrada numFaces en la sección inputStatistics. Este número indica el número de triángulos en mallas triangulares y el número de puntos en nubes de puntos, respectivamente.
  • Si la aplicación está tratando con contenido dinámico, el número de primitivas representados se puede consultar dinámicamente durante el tiempo de ejecución. Use una consulta de evaluación de rendimiento y compruebe la suma de los valores de los dos miembros PolygonsRendered y PointsRendered en la estructura PerformanceAssessment. El PolygonsRendered / PointsRendered campo se establece en bad cuando el representador alcanza la limitación primitiva. El fondo de tablero de ajedrez siempre se atenúa con algún retraso para garantizar que se pueda realizar la acción del usuario después de esta consulta asincrónica. La acción del usuario puede consistir, por ejemplo, en ocultar o eliminar instancias de modelo.

Precios

Para obtener un desglose detallado de los precios de cada tipo de configuración, consulte la página Precios de Remote Rendering.

Pasos siguientes