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:
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:
- Instancias de modelos cargados que están totalmente fuera del tronco de la vista.
- Modelos o partes de modelos que se cambian a invisible mediante el componente de invalidación del estado jerárquico.
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
yPointsRendered
en la estructuraPerformanceAssessment
. ElPolygonsRendered
/PointsRendered
campo se establece enbad
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.