Actualización del proyecto Cycles X ofreciendo micro-jittering

Actualización del proyecto Cycles X ofreciendo micro-jittering. La Fundación Blender ha publicado un resumen de las últimas características de Cycles X. Se ha reescrito el código del motor de render Cycles para adaptarlo a Blender, antes de su lanzamiento estable en Blender 3.0 la próxima semana.

Los cambios desde la versión alfa inicial incluyen una mejor representación del cabello y de la piel; funcionamiento de la oclusión ambiental mejorado y se elimina más ruido que en las versiones anteriores. Además de ofrecer soporte para micro-jittering.

Cycles X también será compatible con sistemas AMD y GPU de Nvidia trabajando sobre sistemas operativos Windows. El soporte para la GPU AMD bajo Linux estará disponible a partir de Blender 3.1, junto con un nuevo backend Metal para macOS.

Ya habíamos hablado sobre Cycles X en otra publicaciones anteriores, ahora vamos a de centrarnos en ver qué novedades trae la última compilación.

Mejor rendimiento en volúmenes y cabello

Anunciado por primera vez en abril, Cycles X es una reescritura importante del principal motor de renderizado de producción de Blender, destinado a ser el motor oficial durante los próximos 10 años.

Las pruebas iniciales mostraron que Cycles X renderizaba hasta siete veces más rápido que Cycles en las escenas de referencia de Blender cuando se ejecutaba una GPU Nvidia Quadro RTX 6000.

Ese aumento de velocidad máxima es ligeramente mayor en la compilación actual. Los resultados del benchmark en la publicación del blog muestran que Blender 3.0 se renderiza entre una y ocho veces más rápido que Blender 2.93 en la última GPU RTX A6000 de Nvidia.

Ciertos tipos de escenas se benefician más, en particular aquellos con volúmenes; ya que la representación de volúmenes de GPU no se admitía en las compilaciones alfa iniciales de Cycles X.

Actualización del proyecto Cycles X ofreciendo micro-jittering
Actualización del proyecto Cycles X ofreciendo micro-jittering

Solucionado el problema que ralentizaba el cabello o pelo en capas

Si bien la mayoría de las escenas de referencia se renderizaban más rápido con Cycles X, algunas que involucraban muchas capas de cabello transparente mostraban regresiones de rendimiento.

El problema es que en la representación de GPU, cuando un pequeño subconjunto de toda la imagen es lento de renderizar (como el cabello de un personaje), la ocupación de la GPU sería baja. Esto se mejoró al hacer que el algoritmo estimara el número de muestras a renderizar en un lote de manera más inteligente.

Otra parte de la solución fue cambiar la programación del kernel de sombras (Shaders). Anteriormente, para continuar con el siguiente rebote se tenía que esperar a que todas las luces y sombras se resolvieran en el rebote anterior. Ahora esto está desvinculado, y el trabajo de rastreo de sombras para muchos rebotes se puede acumular en una cola. Esto da un mayor número de rayos de sombra para rastrear a la vez, mejorando la ocupación de la GPU. Resulta importante especialmente cuando solo una pequeña cantidad de píxeles rebota profundamente en el cabello transparente, como en la escena de primavera.

Además, encontraron que la transparencia en el cabello suele ser bastante simple, ya sea un valor fijo o un gradiente simple para desvanecerse desde la raíz hasta la punta. En lugar de evaluar el sombreador para cada intersección de sombras. Ahora bakeamos la transparencia en las curvas del cabello y simplemente las interpolamos. Los resultados del renderizado son idénticos en todas las pruebas. A continuación se muestran dos imágenes de muestra para comparar los resultados.

Otras mejoras importantes en Cycles X

Según la publicación oficial, desde entonces, han restaurado la representación de volúmenes y lo que conlleva un aumento del rendimiento en la representación por GPU en escenas de volumen.

También se ha mejorado el manejo de la oclusión ambiental y las escenas con muchas capas de cabello transparente.

Se ha restaurado el soporte para las pasadas de profundidad del denoiser y se ha mejorado la eliminación de volúmenes.

El soporte para micro-jittering mejora aún más el rendimiento al renderizar en GPU Nvidia bajo OptiX.
Las compilaciones actuales de Cycles X ahora admiten la codificación de distancia. También conocida como “micro-jittering”, cuando se usan las opciones Sobol o Progressive Multi-Jitter para muestrear la iluminación en una escena.

Actualización del proyecto Cycles X con codificación de distancia

Los usuarios pueden establecer el valor de codificación de distancia manualmente o hacer que Cycles elija un valor automáticamente.

Según la Blender Foundation, la codificación a distancia puede mejorar el rendimiento entre un 1 y un 5 por ciento al renderizar en GPU. Aunque hay que tener claro que esto solo supone un beneficio constante cuando se usa el backend OptiX.

Cuando se utiliza el backend CUDA, el uso de la codificación automática de distancia actualmente aumenta los tiempos de renderizado en la mayoría de las escenas de referencia estándar.

Blender 2.93 vs Blender 3.0 en AMD
Blender 2.93 vs Blender 3.0 en AMD

Cycles X admite la representación por GPU en AMD y GPU Nvidia

Si bien las compilaciones iniciales eran solo para Nvidia, las actuales admiten la representación por GPU en hardware AMD a través del marco HIP (Heterogeneous-computing Interface for Portability); que reemplaza al antiguo backend OpenCL de Cycles.

Tienes más información sobre el proyecto Cycles X y su trayectoria en el blog oficial. También por supuesto en el foro, donde podrás encontrar todas las novedades, sigue leyendo…