BLENDER 360. MASHUP
Traemos ao noso LAB-AP un proxecto de realidade virtual elaborado por Víctor Sixto en Imaxe e Son.
Blender 360. Mashup é unha colección de contornos tridimensionais nos que os obxectos se moven de modos moi diferentes ao redor de nós. É un vídeo para explorar con calma, visonándoo unha e utra vez. A cada reprodución descubriremos detalles novos, sutilezas, guiños e referencias. Unha proposta ambiciosa cun resultado de altísima calidade.
O ideal para apreciar o proxecto en toda a súa magnitude sería reproducilo usando unhas gafas de RV, pero tamén é posible desfrutar da experiencia inmersiva se usamos un dispositivo móbil (smartphone ou tablet).
Neste texto o propio Víctor fálanos do proxecto:
Hola, soy Víctor Sixto de 2ºBach (2019/20) y os voy a resumir rápidamente el proceso de creación del proyecto Blender360.
En primer lugar se me ocurrió mezclar Blender, con el que ya tenía experiencia, con la realidad virtual para añadirle inmersión al proyecto y la posibilidad de probar a crear algo nuevo para mí desde cero. Comencé a reunir información acerca de la posibilidad de crear un vídeo en 360º desde Blender y tras muchas páginas y vídeos encontré la forma más segura de hacerlo funcionar. Entonces conseguí configurar un archivo .blend para poder exportar vídeo en 360º, utilizando el "Spatial Media Metadata Injector" para añadirle la función de rotación e hice varios tests simples que subí a Vimeo para visualizarlos. Ahora ya estaba en condiciones para organizar mis ideas y empezar a trabajar en el proyecto final.
Decidí intentar abarcar el máximo de escenarios posible para dar al espectador el máximo de situaciones y de experiencias posible en el poco tiempo que podía efectuar una animación por límites de hardware. Empecé navegando por Sketchfab, una página de modelos 3D, con una vaga idea de lo que quería hacer y terminé con esa idea formada casi al completo junto a media centena de modelos que habría tardado años en crear. Introducción, transición entre animaciones, choque de cuerpos rígidos, barco tambaleándose con las olas, la ilusión de altura, vehículos terrestres, el espacio, objetos voladores a cámara lenta, el horror de no poder moverse y la posibilidad de ser tan alto como la hierba. Éstas fueron mis ideas iniciales y fueron tomando forma a medida que las creaba, desechando posibilidades e ideando otras.
Al tener todos los escenarios listos para renderizar en vídeo, necesitaba encontrar una forma de conseguir tal capacidad de procesamiento como para transformarlos en vídeo. Xabier estuvo a punto de hablar con el CESGA para poder utilizar su superordenador durante un período corto de tiempo, algo que no pensé que fuera posible, antes de que irrumpiese el coronavirus. Desgraciadamente al comenzar el confinamiento esta opción ya no fue posible y tuve que recurrir a mi segunda opción, la "granja de renderizado" Sheep it, una comunidad que conecta a cientos de ordenadores para renderizar proyectos de todo el mundo. Gracias a esto pude realizar todas las animaciones necesarias, no sin problemas, en poco menos de dos semanas. Descansé unos días antes de ponerme a terminar el proyecto, llevaba ya un mes trabajando.
Tenía que juntar todos los escenarios en un vídeo y añadirle audio que conseguí de Freesound. Me tomó unos días decidir el orden y los audios, además de coordinar la imagen con el sonido y crear los créditos, que son todas los usuarios de Sheep.it que me ayudaron a renderizar mi proyecto en esas semanas. Finalmente lo terminé y lo subí como punto y final a los vídeos individuales que había estado subiendo a mi cuenta de YouTube para encontrar errores.
Ha sido un proyecto único y de los más largos que he decidido hacer, espero que lo disfrutéis :)
Neste outro texto afonda en cuestións de carácter técnico:
Para cualquiera que esté interesado en los aspectos más técnicos de este proyecto y hasta quiere intentar reproducirlo, explicaré los pasos que seguí.
Utilicé la opción que tiene el sistema de renderizado Cycles de Blender para hacer un vídeo en 360º. Se podría hacer en Eevee pero habría que utilizar varias cámaras y se complica mucho. La desventaja que tiene el Cycles es que es extremadamente lento e intensivo para el ordenador. No sería la primera vez que se cierra el programa por olvidarme de cambiar de Eevee, con el que veo una versión cutre del resultado final, a Cycles para hacer el renderizado final.
Intentando disminuir el sufrimiento de mi ordenador decidí bajar la calidad a la mínima necesaria para hacer un vídeo 360º bueno, con una resolución de 4K, 25fps, 20 "samples" (operaciones que hace el Cycles para renderizar, cuantas más mejor calidad).
Por último para resolver el ruido presente usé la función "denoise" en el apartado de "render layers". Esto hace que se vea mucho más limpia la imagen final. Se puede utilizar una función similar en "compositing" que hace uso de una IA para hacer un trabajo mejor pero para vídeo de alta definición tardaría décadas.
Era necesario encontrar una forma de renderizar estas escenas mounstruosas de forma efectiva así que descubrí Sheep it, que se define como "granja de renderizado", donde se conectan los PCs de toda la gente que se une para renderizar juntos los proyectos individuales que se envían. Esta página funciona con un sistema de puntos en el que se te los conceden por poner tu PC a disposición de proyectos que necesitan renderizarse y te los quitan cuando necesitas renderizar un proyecto tuyo con ayuda de la página. Normalmente te dan más de los que te quitan, pero puede variar.
Aun dejando a mi pobre ordenador renderizando durante varias semanas unas 8h al día, donde conseguí unos 50.000 puntos, al finalizar el trabajo terminé en una deuda de 100.000 puntos. Esto demuestra el crudo poder necesario para renderizar algo de esta magnitud teniendo en cuenta de los múltiples fallos que me encontré por el camino. Los fallos más salientables y de los que advierto son: los sistemas de partículas, donde dependiendo del objeto puede renderizarse sólo de un ojo obligándote a arreglar el instanciamiento de las partículas, y el cache de las simulaciones varias (incluyendo partículas), donde es necesario hornearlo ("baking") para eliminar cualquier posible "glitch" por información de posición anticuada.
El último paso necesario para tener un vídeo terminado es injectar los metadatos necesarios para que las distintas páginas de visualización como YouTube o Vimeo lo reconozcan como un vídeo en 360º y no como uno plano. Para esto es necesario simplemente instalar y usar el programa "Spatial Media Injector", simple, rápido y de los pocos de su especie.
En las imágenes se aprecian las opciones necesarias para activar la estereoscopía y el poder hacer un vídeo 360º. Es necesario activarlas en un orden concreto, empezando por las más fundamentales en el panel principal de escenario hasta las opciones de retoque como las de la cámara, pero todas son imprescindibles. Con cualquier duda se busca el significado de cada opción en internet, lo difícil es saber qué hay que hacer y eso ya se explica en las imágenes. Es muy recomendable darle a la cámara un fov de 90º o una longitud focal de 18mm, que es lo mismo, antes de cambiar a modo panorámico equirectangular y ajustar el plano de convergencia según la escena intentando no exceder los 15m.
Finalmente para juntar todos los escenarios que rendericé con ayuda de Sheep it y añadir el audio que tomé de Freesound, edité con Blender con las mismas opciones activadas excepto la estereoscopía, ya que si se renderiza con estereoscopía un vídeo estereoscópico el resultado no es el deseado, resultando en 4 perspectivas doblemente desviadas.