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.
| Scaler | Pipeline | Target | Descripción |
|---|---|---|---|
| Resolution | BiRP URP | GPU | Reduce la resolución de renderizado, disminuyendo radicalmente la carga en el Fillrate de la GPU. Ve los detalles a continuación. |
| Shadows Quality | BiRP URP | GPU | Desactiva 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 Cascades | BiRP URP | CPU/GPU | Reduce el número de cascadas de sombras. Disminuye las Draw Calls de la CPU y la carga en la GPU. |
| Shadow Distance | BiRP URP | GPU | Acorta la distancia de dibujado de las sombras. |
| Shadow Resolution | BiRP URP | GPU | Reduce la resolución de los mapas de sombras (Shadow Maps). |
| Anti Aliasing | BiRP URP | GPU | Disminuye la calidad del anti-aliasing (MSAA) hasta su completa desactivación. |
| LOD Bias | BiRP URP | GPU | Obliga a Unity a cambiar a modelos LOD de bajos polígonos a una distancia más corta de la cámara. |
| Camera Clip | BiRP URP | GPU | Reduce el parámetro Far Clip Plane en las cámaras de destino, eliminando los objetos distantes del renderizado. |
| Layer Culling | BiRP URP | CPU | Reduce proporcionalmente la distancia de descarte (Culling Distance) para capas de objetos específicos. |
| Physics Step | BiRP URP | CPU | Disminuye la frecuencia de los cálculos físicos. Salva el rendimiento durante cargas físicas pesadas en el navegador. |
| LUT | Solo URP | GPU | Reduce el tamaño de las tablas LUT de Color Grading al mínimo. |
| Mesh LOD Threshold | Unity 6+ | GPU | Altera 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.
- Selecciona tu Canvas en la jerarquía de la escena.
- 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.
- Cámara Principal (3D): Asegúrate de que su etiqueta (tag) esté especificada en la matriz
Target Tagsdel Scaler. En el campoCulling Mask, desmarca la capa UI. Establece elDepthen0. - 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 FlagsenDepth Only(para que la cámara no borre el fondo 3D). - Establece el
Culling Maskexclusivamente en la capa UI. - Establece el
Depthen1(mayor que el de la cámara principal).
- Establece
- Configuración del Canvas: Establece el Render Mode en
Screen Space - Cameray arrastra tu nueva Cámara de UI a la ranuraRender Camera.
