Skip to content

Referencia de Scalers

Web Adaptive Performance incluye un conjunto de Scalers especializados (módulos de optimización). El Indexer selecciona automáticamente qué Scaler implementar en función de su impacto visual (Visual Impact) y del tipo de cuello de botella actual (Target: CPU o GPU).

Matriz de Compatibilidad

A continuación se muestra la matriz de compatibilidad y una descripción de todos los módulos disponibles.

ScalerPipelineTargetDescripción
ResolutionBiRP URPGPUReduce la resolución de renderizado, disminuyendo radicalmente la carga en el Fillrate de la GPU. Ve los detalles a continuación.
Shadows QualityBiRP URPGPUDesactiva las sombras por fases.
En URP, primero desactiva las sombras suaves, luego las sombras de luces adicionales y, finalmente, las sombras principales.
En BiRP, cambia las sombras al modo Hard Only antes de desactivarlas por completo.
Shadow CascadesBiRP URPCPU/GPUReduce el número de cascadas de sombras. Disminuye las Draw Calls de la CPU y la carga en la GPU.
Shadow DistanceBiRP URPGPUAcorta la distancia de dibujado de las sombras.
Shadow ResolutionBiRP URPGPUReduce la resolución de los mapas de sombras (Shadow Maps).
Anti AliasingBiRP URPGPUDisminuye la calidad del anti-aliasing (MSAA) hasta su completa desactivación.
LOD BiasBiRP URPGPUObliga a Unity a cambiar a modelos LOD de bajos polígonos a una distancia más corta de la cámara.
Camera ClipBiRP URPGPUReduce el parámetro Far Clip Plane en las cámaras de destino, eliminando los objetos distantes del renderizado.
Layer CullingBiRP URPCPUReduce proporcionalmente la distancia de descarte (Culling Distance) para capas de objetos específicos.
Physics StepBiRP URPCPUDisminuye la frecuencia de los cálculos físicos. Salva el rendimiento durante cargas físicas pesadas en el navegador.
LUTSolo URPGPUReduce el tamaño de las tablas LUT de Color Grading al mínimo.
Mesh LOD ThresholdUnity 6+GPUAltera el parámetro meshLodThreshold, introducido en Unity 6.2, para cambios agresivos de LOD.

Cuidado con el Physics Step Scaler

El Scaler de física altera directamente el parámetro Time.fixedDeltaTime. Si un controlador de personaje o la mecánica del juego dependen estrictamente de fotogramas físicos fijos sin interpolación (Interpolation), el movimiento de los objetos puede volverse tartamudo ("gaguejante") en niveles de baja calidad.

Restablecimiento de la Configuración de los Scalers

Si has experimentado con los parámetros del Scaler (por ejemplo, modificando el Min Bound o Max Level) y deseas volver a los valores predeterminados, simplemente apaga y enciende el interruptor en la ventana de Project Settings. El plugin recreará automáticamente el módulo con la configuración base.

Análisis: Resolution Scaler

Esta es la herramienta más potente del plugin, que garantiza el mayor aumento de FPS. Su funcionamiento varía drásticamente según el pipeline activo.

En Modo URP (Universal Render Pipeline)

En URP, el escalado funciona a la perfección. El plugin interfiere directamente con la propiedad renderScale en el UniversalRenderPipelineAsset. La interfaz (UI) permanece nítida automáticamente, ya que URP es capaz de renderizar el Canvas sobre un mundo 3D escalado.

En Modo BiRP (Built-in Render Pipeline)

Históricamente, BiRP carece de una configuración de Render Scale integrada que funcione en WebGL sin romper la interfaz o causar fallos (FBO Feedback Loop). WebAP resuelve esto ofreciendo dos estrategias exclusivas.

Modo 1: NativeBrowserScaling (Escala Nativa del Navegador)

El plugin escala el elemento HTML <canvas> directamente a través de Native Loop Spoofing (inyectando en los parámetros devicePixelRatio del navegador).

  • Pros: Máximo rendimiento, cero sobrecarga del lado de la GPU.
  • Contras: La interfaz del juego se vuelve borrosa junto con los gráficos 3D. Este modo solo funciona en una build compilada de WebGL (ningún cambio será visible en el Unity Editor).

Modo 2: RenderTextureScaling

El plugin redirige la renderización de las cámaras de destino a una textura compartida comprimida y utiliza una Compositor Camera oculta para presentar la imagen.

  • Pros: El mundo 3D se escala, mientras que la interfaz de usuario (texto, botones) permanece nítida.
  • Contras: Agrega una carga marginal a la GPU debido a la operación Blit (copiando la textura a la pantalla).

Corrección de Clics del Ratón (Raycasts)

Cuando se usa RenderTextureScaling, las coordenadas de la pantalla virtual se comprimen. Para garantizar que los clics del ratón en objetos 3D continúen funcionando correctamente, el plugin reemplaza automáticamente los componentes estándar PhysicsRaycaster y Physics2DRaycaster en las cámaras de destino con componentes personalizados WebScaledPhysicsRaycaster. La precisión de los rayos sigue siendo infalible a cualquier escala.

¿Cómo Preservar la Claridad de la UI? (Para BiRP RenderTextureScaling)

Para mantener la interfaz nítida mientras se escalan los gráficos 3D en BiRP con RenderTextureScaling, debes configurar tu Canvas correctamente. Selecciona una de estas dos opciones:

Opción 1: Screen Space - Overlay (Recomendada)

El método más simple y confiable. El plugin maneja todo el trabajo automáticamente.

  1. Selecciona tu Canvas en la jerarquía de la escena.
  2. En el componente Canvas, establece el Render Mode en Screen Space - Overlay.
    Resultado: Unity renderiza la interfaz encima del mundo 3D comprimido a una resolución del 100% nativa.

Opción 2: Screen Space - Camera (Para Capas Complejas)

Se usa si necesitas mezclar modelos 3D, partículas y UI. Tendrás que separar el renderizado en dos cámaras.

  1. Cámara Principal (3D): Asegúrate de que su etiqueta (tag) esté especificada en la matriz Target Tags del Scaler. En el campo Culling Mask, desmarca la capa UI. Establece el Depth en 0.
  2. Cámara de UI (Nueva): Crea una nueva cámara para renderizar la interfaz. No agregues su etiqueta a la configuración del Scaler.
    • Establece Clear Flags en Depth Only (para que la cámara no borre el fondo 3D).
    • Establece el Culling Mask exclusivamente en la capa UI.
    • Establece el Depth en 1 (mayor que el de la cámara principal).
  3. Configuración del Canvas: Establece el Render Mode en Screen Space - Camera y arrastra tu nueva Cámara de UI a la ranura Render Camera.