Version: 2021.1
Actualizarse a Unity 5.3
Actualizando a Unity 5.0

Actualizándose a Unity 5.2

Global Illumination

El empaquetamiento UV para Baked UVs que no llenan el espacio 0–1 (menor o mayor) se ha arreglado. Hace que la resolución asignada a cada objeto funcione mucho más fiables si el unwrap del objeto no está llenando el espacio 0–1 y también cuando sus limites no son cuadrados. Por favor revisar la resolución de sus instancias para baked lightmaps.

Shader variant stripping was fixed for realtime lightmaps. Now each lightmaps mode (non-directional, directional and directional specular) variant can be picked for baked and realtime GI separately. Please review your settings if you previously selected a specific lightmaps mode variant in the Graphics window to make that mode work for realtime lightmaps.

La escala de rebote ha cambiado de un valor arbitrario de 0.7 a 1.0. El rebote es producto de la escala albedo y bounce. Los artistas deberían configurar los valores de albedo de vida real (el no-metálico más brillante es la nieve con 0.9). Esta es nuestra referencia de PBS http://forum.unity3d.com/threads/official–5–0-pbr-calibration-charts.289416/

Ya que debería ser el creador de una albedo físicamente correcto, tiene sentido para nosotros configurar la escala cerca a 1. Ya hemos clamp valores albedo en un meta pass, por lo que la escala de bounce (rebote) debe ser justamente 1.0f.

Por favor tenga en cuenta que si escoge configurar albedo a 1.0 en una meta pass personalizado sin clamping, entonces la escena se puede ver como si estuviera explotando con luz.

Shaders

Shaders del estilo “Fixed Function” (función fija) (los que utilizan SetTexture, Lighting On etc.) internamente se convierten en shaders en el tiempo de importación del shader. La ventaja es que ahora funcionan en todas las plataformas (previamente no funcionaban en consolas), y con más consistencias. También, mucho del código e ineficiencias relacionadas a fixed function fueron quitadas del runtime, haciendo que el rendering sea un poco más rápido. Lo malo es que, crear fixed function shaders en tiempo de ejecución - utilizando new Material(fixedFunctionShaderString) - no funciona ya. Ese constructor se convirtió obsoleto en Unity 5.1 y ahora en 5.2 paro de funcionar para fixed function shaders.

Reflection Probes

Hemos cambiado como los Reflection Probes ahora son renderizados cuando se utiliza Deferred Shading, con el fin de lograr efectos “screen space reflections” (reflejos en el espacio de pantalla) en el futuro. La versión corta es: en deferred shading, los reflection probes son por pixel en vez de ser por objeto ahora.

Comparación del comportamiento actual (reflection probes por objeto; en algunos casos difícil de evitar duras transiciones de reflexión entre objetos grandes) y reflection probes por pixel (las transiciones son mucho menos visibles; y suceden en los limites del probe y no en los limites del objeto):

Antes (5.0 y 5.1)

  • Los Reflection Probes son muestrados durante el pase del G-buffer, en la manera exacta como forward rendering. Están escritos al “emission” buffer conjunto con light probes, lightmaps y partes de materiales emisores.

  • Esto significa que usted obtiene un (o dos, cuando el probe blending está prendido) reflection probes por objeto.

  • Las reflexiones que están juntas con emission/lightmaps en el mismo buffer significa que hacer SSRR “adecuadamente” es difícil. SSRR proporciona reflejos por sí ( y se fall back a reflection probes cuando no puede), pero no sabe qué partes del color del “emission buffer” viene del reflection probes.

Ahora (5.2)

  • Cuando utilice deferred shading, no muestree reflection probes durante el G-buffer pass.

  • Más bien, después del que G-buffer haya terminado, realice un pass separado de “deferred reflections” que dibuja reflection probes como cajas en el espacio de pantalla; que coloca la información output de reflejo en un render target separado.

  • [Futuro: Efecto SSRR utilizará este reflections buffer separado]

  • Combina el reflections buffer & emission buffer al final.

Qué significa esto? (todo lo de abajo solamente afecta deferred shading)

  • Reflection probes ya no son por-objeto; estos son efectivamente por-pixel. Es más fácil tener grandes objetos que están afectados por muchos reflection probes.
    • También los probes tienen una “blend distance” que define qué tanto espacio alrededor del probe se utiliza para blending (mezclar) con otros probes.
    • Los probes más pequeños “anulan” los más grandes.
  • Reflection probe Renderer flags (probe blending, etc.) se ignoran; todo es afectado por reflection probes de la misma manera (ya que sucede en screenspace (espacio de la pantalla) ahora). Esto es muy similar a cómo la flag de “recibir sombras” se ignora en deferred shading.

  • Sus shaders escritos de manera personalizada que hacen deferred shading deben en su mayoría seguir funcionando (en el peor caso, estarán muestrando un reflection cubemap negro). Si usted hace unas cosas totalmente locas en los shaders, estas podrían tener que actualizarse para que funcionen con deferred shading en 5.2.
    • Si usted está utilizando un custom deferred shading ligh pass shader (con un BRDF personalizado etc.), probablemente quisiera utilizar un deferred reflection shader personalizado también, con el mismo BRDF aplicado al reflection probes.

Shuriken

Las partículas ahora son generadas en el espacio del mundo, que podrían requerir de una actualización a cualquier vertex shader personalizado. Este cambio fue hecho con el fin de permitir la re-utilización de los buffers de la partícula entre cada ojo para VR.

Las Mesh Particles ahora soportan el módulo de Texture Sheet Animation. Vale la pena revisar que sus efectos existentes no tienen esto habilitado por accidente, de lo contrario podría ver un cambio en el comportamiento.

El parámetro Dampen en el módulo de Limit Velocity over Lifetime solía tener una efecto más fuerte en framerates más altos. Esto se ha arreglado, y si su juego está apuntando 30fps, sus efectos viejos no se afectarían por este cambio. Sin embargo, si su juego apunta a un FPS diferentes, usted puede actualizar el valor Dampen utilizando esta formula, para asegurarse que su efecto no cambio en 5.2:

newDampen = 1.0f - pow(1.0f - oldDampen, targetFPS / 30.0f);

Gráficos (Otros items)

Material.CopyPropertiesFromMaterial ahora también copia las palabras clave shader y cola de render. Si usted dependía que no fueran copiadas, tendrá que cambiar su código.

Los materiales SpeedTree ahora necesitan re-generarse ya que hay cambios a los shaders integrados de SpeedTree. Debería hacerlo seleccionando los prefabs SpeedTree en su proyecto y oprimiendo el botón “Apply & Generate Materials”. Por favor tenga en cuenta que al hacer esto, sus personalizaciones a los assets de material generados (si alguno) serán sobre-escritos.

UI (Interfaz de Usuario)

En 5.2 hemos combinando los shaders de texto y UI de elementos de rendering de usuarios. Un efecto secundario de esto es que si usted específica una fuente de textura manual en un formato 32bit entonces los canales de color serán honrados. Esto significa que los canales de textura oscuros resultarán en un texto negro dónde el texto previo debería ser blanco (solamente miramos el alpha). Si desea utilizar unas texturas personalizadas de sus fuentes haga una cosa de las siguientes:

  1. Cambie el formato de importación de la textura a A8. Esto solamente mantendrá el componente alpha y Unity generará el texto como blanco por defecto.
  2. Especifique un color / colores en la textura para que Unity utilice cuando renderice el texto

Multi-jugador

La manera que la identificación del proyecto se maneja ha cambiado en Unity 5.2, ahora el proyecto es registrado automáticamente y usted no necesita ingresar de manera manual un ID dónde sea. Hay un panel Multi-jugador en la ventana de Services (ábralo con el icono de la nube en la esquina superior derecha) y ahí usted puede encontrar un enlace profundo directamente al proyecto en la página web (Go to dashboard). Cuando haya sido configurado, la configuración Multiplayer aparecerá aquí.

Actualizarse a Unity 5.3
Actualizando a Unity 5.0