Técnicas avanzadas de render: baking para mental/vray en 3dsmax, renders de 10 min a tan solo 5 seg



Documentos relacionados
Oficina de Tecnologías de la Información y Comunicaciones MANUAL DE USUARIO. Diseño básico para elaboración de banners en Macromedia Fireworks 8

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES

Serie Manuales VRay. Configuración en escenas exteriores

NORMA (SEPA) 22/11/2013

COMO CREAR UN ÁLBUM DE FOTOGRAFÍAS EN MICROSOFT OFFICE POWERPOINT?

SIIT SISTEMA INFORMÁTICO DE INSPECCIONES DE TRABAJO. Modulo de Planificación Manual de Usuario

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2

CÓMO CREAR NUESTRO CATÁLOGO

PRÁCTICAS DE GESTIÓN GANADERA:

Dando nuestros primeros pasos con 3DS Max. 1. Objetivos

Manual de OpenOffice Impress

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

Menús. Gestor de Menús

MANEJANDO FICHEROS Y CARPETAS

Explicación Teletubbie para ejercicio de tracking usando blender:

Manual del Profesor Campus Virtual UNIVO

BUSINESS OBJECTS EDICIÓN DE REPORTES NIVEL II

Introducción a Scratch Autor

Plataforma Helvia. Manual de Administración. Bitácora. Versión

Antes de empezar con el tutorial, vamos a ver algunas cosas que nos van a ayudar mucho a entender como usar este programa.

Página 1 de 7. Qué es Scratch?

Manual TMPGEnc Por Krator

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

Qué es y para qué sirve Excel2007?

Programa Tracker : Cómo generar Vectores y sumarlos

Instalación de Sistema Operativo Mac OsX Lion en VirtualBox.

3ds Max Design 2012 para usuarios de AutoCAD

Cómo gestionar menús en Drupal 7

Microsoft Word Los formatos son las características que le asignamos a cualquier carácter, a un conjunto de caracteres o a otros elementos.

Qué es una máquina virtual?

PASOS PARA CREAR UNA PÁGINA WEB

MANUAL DE USUARIO TARIFICADOR SIPTAR Y REPORTES SIPTAR.

MACROS Y FORMULARIOS

Paso 1 de 13. Paso 2 de 13. Guía de aprendizaje de Flash CS5 Tutorial 3. Creación de un logotipo textual.

Race Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL

GUIA DE ESTUDIO. 3D Studio Max. Tecnología en Diseño Gráfico. Autor: Tnlgo. Freddy López Cáceres

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Cátedra de Cardiología

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Curso Internet Básico - Aularagon

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

INSTITUCION EDUCATIVA CRISTÓBAL COLON Creciendo en el Ser, el Saber y el Hacer Armenia - Quindío

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

Guía Notas Parciales. Intermedio (Nueva Versión)

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

Módulo 8: Ofimática básica. Unidad didáctica 4: Introducción y modificación de datos. Access

INDICE. 1. Introducción El panel Entities view El panel grafico Barra de botones Botones de Behavior...

IMAGE RESIZER FOR WINDOWS, ÚTIL PARA REDUCIR EL TAMAÑO O REDIMENSIONAR IMÁGENES Y FOTOGRAFÍAS (DV00409C)

Música. Tocar y cantar Autor: Carlos Guido

1.- DESCRIPCIÓN Y UTILIDAD DEL SOFTWARE DAEMON TOOLS.

Vamos a crear nuestro primer juego en el que tendremos que coger la comida que esta protegida por los gatos

GUÍA PARA MANEJAR GOOGLE DRIVE

Ingreso al Sistema Administrador

CorelDRAW X3. El poder del lente: Composición de diseño V.1

En muchas ocasiones resulta muy útil que la información contenida en un libro de Excel se visualice gráficamente.

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

MANUAL DE USUARIO TARIFICADOR SIPTAR Y REPORTES SIPTAR.

NORMA 34.14(SEPA) 05/11/2013

Iluminación fotográfica y Principales fuentes de iluminación

Sesión 3 - Movimiento Diferencial

Semanas Vectorización 6 y de 7 tipografías Animación en Photoshop. Por fin entenderás y comprenderás la elaboración de gifs animados para páginas web!

CUESTIONARIOS AUTOCORREGIBLES

La ventana de Microsoft Excel

USO DEL COMANDO. Fdisk. Autor :. Alejandro Curquejo. Recopilación :. Agustí Guiu i Ribera. Versión :.. 1.0

Transparencia Salamanca: Portal de Transparencia en pequeños municipios.

Manual de Manejo Intranet - Foro Ceramhome

EMPLEO NTIC`S II SEGUNDO SEMESTRE

Tutorial de herramientas de Google

Manual de Instalación y Configuración

MANUAL DE USO Octubre CLIENTE: Liber Ediciones AUTOR: 2.0 DISEÑO _

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

CREACIÓN DE E-POSTERS CON POWER POINT (Instructivo preparado por la Dra. PaulaOtero)

Teclado sobre una PDA para Personas con Parálisis Cerebral

Impress : Programa de presentaciones de OpenOffice.

Construcción de Escenarios

Cómo usar Subversion. con Windows XP/2000/2003.

I.E.S. Cuenca Minera Dto. Tecnología P.I. : Introducción al diseño 3D: Blender MODELADO

Uso del Microsoft Excel nociones básicas. Ing. Adrián J. Martínez Machado

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

Tutorial de uso. ScanIPTV V.4.7

MANUAL DE USUARIO PLANILLA N

Recursos de Aprendizaje

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows

Un kilobyte (KB) son 1024 bytes, un Megabyte (MB) son 1024 KB, un Gigabyte son 1024 Mb

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

La composición de una imagen, reglas

COREL DRAW PARTE II. TERCER y CUARTO BIMESTRE 1 B - 2 AÑO A- B TABLAS

Luis Eduardo Barón Bienvenidos al Módulo N. 3 de Internet Para Emprendedores. Yo soy Luis Eduardo Barón. Álvaro Mendoza Y yo soy Álvaro Mendoza.

Marta Soler Tel: Fax: TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE

1 MANUAL DE INSTALACIÓN

Poner músicas por mumble en PDR for DUMMIES

12 Minería de Datos Reglas de asociación.

Cuando hablamos de presentaciones, como las de Powerpoint, Keynote o similares, encontramos dos corrientes estéticas muy distintas:

Manual de Front Page 2003

Internet Information Server

Estructurar la información dentro del ordenador:

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Mapas colaborativos en línea

Transcripción:

Técnicas avanzadas de render: baking para mental/vray en 3dsmax, renders de 10 min a tan solo 5 seg Carlos Vilchis Universidad del Valle de México DG5200-V El objetivo de esta clase es comprender y utilizar de manera eficiente las características de Render to Texture tan subestimadas en 3dsmax. Como ejemplo un render de 10 minutos puede ser reducido a tan solo 2 segundos, técnica muy útil para recorridos arquitectónicos, visualización científica y extensiones de set para VFX a un costo realmente bajo de render. Como base se utilizara un motor de render avanzado como mental ray o vray para demostrar las capacidades de la herramienta en ambientes de producción profesionales. Learning Objectives Al final de esta clase, Ud. podrá: Utilizar el rendering tradicional como complemento al basado en baking. Entender el proceso paso a paso de baking para render. Reconstruir la escena con materiales previamente bakeados. Conocer las situaciones ideales para animación de cámara y recorridos para render con baking. Corregir elementos que no pueden ser rendereados a través de la técnica de baking. Renderear secuencias arquitectónicas o de animación a un coste mas de 20 veces mas rápido. About the Speaker Carlos Vilchis ha trabajado en la industria de 3d y animación desde el año 2000. Ing. En Sistemas de profesión, estudio en Madrid, España un Master en Animación 3d y postproducción. Ha trabajado como 3d artist en gran cantidad de anuncios de TV así como en 4 largometrajes animados. Su experiencia académica se origina desde hace 4 años que inicia como profesor en la UVM sobre la herramienta 3dsmax. Posteriormente obtiene la certificación de ACI (Autodesk Certified Instructor). Actualmente Carlos continua de Instructor en diversos ATC, es Líder Nacional del programa de animación 3D en la Universidad del Valle de México, así como consultor de desarrollo académico para otras tantas universidades en México. contact@carlosvilchis.com www.carlosvilchis.com

NOTAS: Hay que tomar en cuenta que, aunque este video se utilizara Vray para 3dsmax, los fundamentos son exactamente los mismos en Mental Ray. Por otro lado, todas las pruebas contenidas en este documento fueron realizadas en un equipo dual Xeon Quad Core 2Ghz con 16Gb de ram. Por lo cual los tiempos pueden variar en cada caso. 1.- Rendereo arquitectónico tradicional. Setup de la iluminación. Vamos a comenzar colocando el setup de iluminación tradicional para arquitectura en Vray. Colocaremos una VraySun, ubicada en el menú de Lights>>Vray>>VraySun. Los parámetros los dejaremos por default. La luz la colocaremos de manera cenital de tal forma que ilumine de manera general nuestra escena y de forma perpendicular a nuestro tiro de cámara. Una vez creada el sistema de iluminación VraySun, Vray automáticamente nos solicitara colocar un VraySky en el slot de enviromental, por lo cual deberemos decir que si deseamos que sea colocado. 2

Setup del motor de rendering. En el tipo de Image Sampler, colocaremos Adaptive subdivisión, y en el rollout inferior de Adaptive subdivisión sampler dejaremos los valores de Min. Rate: -1 y Max. Rate : 2, a fin de conseguir un render claro y sin bordes iterados. Posteriormente, en la pestaña de Indirect illumination, nos moveremos al rollout Indirect Illumination (GI) y seleccionaremos las opciones de: Primary bounces: Irradiance Map y Secondary bounces: Brute forcé. Mas abajo en el rollout de Irradiance map seleccionaremos el preset: Medium. De esta forma sacaremos nuestro primer render. Presionamos F9 para obtener el primer render a una resolución de 1920 x 1080. Obtendremos un render de cerca de 2 minutos aproximadamente. Este será nuestra marca a rebasar. Tratándose de una animación de150 cuadros, nuestro tiempo aproximado de render asciende a 300 minutos o 5 horas. Afinando Vray para mejorar la velocidad de render. Para tratar de mejorar nuestra velocidad de render, ajustaremos los parámetros del mapa de irradiación, a fin de que guarde en disco la información de irradiación necesaria, y la tome para el render durante cada frame. Para hacer esto nos iremos a la opción de mode y presionaremos el botón de SAVE para guardar el ultimo mapa de irradiación creado. Cambiaremos de Single Frame a From File, especificaremos la ubicación en el disco duro donde queremos hemos guardado el archivo y presionaremos F9 para renderear. De esta manera esteremos utilizando el mapa de irradiación guardado en disco y evitaremos todos los pre cálculos originales del proceso de Irradiance map, nuestro render habrá bajado ahora a aproximadamente 1 minuto. 3

Nuestro render ahora estará ahora sobre los 49 segundos. Cambiaremos ahora el tipo de rebotes indirectos secundarios por uno que pueda administrarse a través de un archivo, buscaremos en las opciones de Secondary Bounces : Light Cache. Ahora le daremos render con F9 para ver el tiempo resultante. Nos moveremos ahora a la opción de Light Cache y buscaremos el rollout donde dice Mode, y presionaremos ahora Save To File, y cambiaremos el modo de Single Frame a From File. La incompatibilidad con los mapas de irradiación y la animación. Hemos podido reducir de manera drástica el tiempo de render gracias a las técnicas tradicionales de rendereo arquitectónico. El problema ahora radica en que los mapas de irradiación no conservan la información que la cámara no ve, y como se trata de una animación en movimiento, al moverse la cámara hacia otro punto de la escena, podemos ver los errores de calculo detrás de nuestro edificio. Habrá que solucionar esto aumentando la cantidad de información de nuestro mapa de irradiación, para esto, iremos al menú de Irradiance map nuevamente y ahí cambiaremos por Add to current map, nos colocaremos en el frame preciso donde la 4

cámara esta observando la parte no calculada de la imagen y nuevamente le daremos Render. De esta manera lo que conseguiremos es complementar el mapa de irradiación con aquellas regiones que no fueron calculadas. Nuevamente le daremos click al botón de SAVE a un lado de Add to Current Map para guardar el nuevo mapa de irradiación. Cambiaremos nuevamente de Add to Current Map a From File, para ahora trabajar con el nuevo mapa de irradiación extendido. Ahora tenemos un render limpio, listo y con muy buena calidad, con un tiempo de render de 45 Segundos. Esto será lo mas que podamos exprimirle a Vray, nuestro total de tiempo de render ha bajado ahora a casi 2 horas de render para toda la secuencia. Nada mal si comparamos con las 5 horas originales, sin embargo aun podemos exprimirle mas. 2.- Baking de texturas. Preparando los objetos para el baking de texturas. Es importante considerar que antes de hacer el proceso de baking, se requiere tener la menor cantidad de objetos en la escena posibles. De la misma manera, darle prioridad a aquellos elementos que son de tamaño mayor, como la casa en este caso, y menor prioridad a los objetos mas pequeños, como las tejas y el pasto. Por tal razón, mediante un proceso de Attach, vamos a unir en 1 solo objeto aquellos objetos pequeños, y dejar solos los objetos grandes. Recordemos también que es importante desactivar el frame stamp de Vray para que nuestras texturas no salgan con la leyenda de Vray. Vamos a empezar seleccionando todos los objetos de la escena y abriendo el cuadro de dialogo RENDER TO TEXTURE ( shortcut 0 ). 5

El proceso de baking. Primero es importante definir donde queremos que sean almacenadas las texturas después del proceso de baking, por lo cual en el rollout de OUTPUT vamos a seleccionar una ubicación en el disco para que sean guardadas. Render to Texture agrega automáticamente a Objects to Bake los elementos seleccionados de la escena que vamos a bakear. Posteriormente, nos moveremos a la sección de OUTPUT y ahí seleccionaremos el tipo de textura y las características con que queremos que sea hecha bajo el baking. En este caso, tratándose de un render hecho con Vray, le daremos click al botón de Add y buscaremos la opción que dice VrayCompleteMap, ya que esta opción contiene todas las características del material de Vray. Si se tratase de un material de MentalRay, buscaremos la opción CompleteMap únicamente. Le daremos ahora click en Add Elements. En la parte baja del cuadro de Output, buscaremos una opción que dice target map slot y ahí colocaremos Diffuse Slot, esto debido a que queremos que el nuevo material creado tenga las nuevas texturas en su canal difuso. Por otro lado es importante seleccionar el tamaño de la textura que queremos que sea generada, es recomendable utilizar el mayor tamaño de textura posible para tener mucho mayor calidad de render final (recomiendo mínimo 2048*2048). Es muy importante activar la opción Apply color mapping para que la textura salga con los colores adecuados. Mas abajo, en el cuadro de dialogo Baked Material tenemos que seleccionar save source (create Shell) para que conserve los materiales originales, y mas abajo seleccionar Create new baked y Standar Blinn, esto con el fin de seleccionar el tipo de material que queremos que se cree con las nuevas texturas después del proceso de baking. 6

Finalmente solo hará falta darle click a RENDER para iniciar el proceso de baking, el cual primero se encargara de extraer los UVs de todos los objetos y posteriormente a renderear las texturas. Este proceso puede llevar varios minutos, dependiendo la complejidad de la escena y la cantidad de objetos (es por eso que es importante no tener tantos objetos y preparar la escena de manera adecuada). 3.- Reemplazo de materiales. Ajustes del render de la escena. Una vez terminado el proceso de baking, veremos como la escena aparece lista con los materiales en viewport mostrando las características del render. de render mas básico : Default Scanline. Es muy importante quitar cualquier fuente de iluminación como luces y objetos iluminantes. Posteriormente quitaremos el motor de render avanzado (Vray / MentalRay) para colocar el motor Ajustes de los nuevos materiales. Es importante limpiar nuestro editor de materiales si es que lo tenemos lleno de los materiales originales. Para esto, abriremos el editor de materiales y nos iremos al menú Utilites >> Reset Material Editor Slots, lo que limpiara todo el editor y nos permitirá comenzar a abrir los nuevos materiales para ajustarlos. Una vez limpio el editor de materiales, utilizaremos nuestro Dropper, para ir abriendo uno a uno los materiales de cada objeto en la escena. Una vez que empecemos, el primer material que agreguemos desde el viewport notaremos que son materiales de tipo Shell, estos materiales permiten mantener 2 tipos de materiales para distintas ocasiones: viewport y render. 7

El primer material, Original Material, veremos que esta preestablecido a ser utilizado en el render, el segundo Baked Material, estará destinado para usarse en el viewport. Vamos a cambiar el 2do material para que también funcione en el render, de tal manera que Baked Material funcione tanto para Viewport, como para render. su tonalidad de color. Una vez hecho esto, nos meteremos a las propiedades del 2do material, y justo dentro de los parámetros del material de tipo Blinn, subiremos la auto iluminación a 100, esto con el fin de que el nuevo material bakeado funcione al 100% de Haremos esto en todos y cada uno de los elementos, a fin de decirle a 3dsmax que queremos que todo se renderee con el material bakeado, y que estén auto iluminados. El nuevo tiempo de render. Notaremos que una vez reconstruida toda la escena con los nuevos materiales para render, y desactivadas todas las luces de la escena, nuestro render bajo Default Scaline tarda únicamente 4 segundos. Esto es un excelente tiempo, ya que si calculamos, nuestro render de 150 cuadros ha bajado a tan solo 10 minutos de render total. 4.- Animación de recorridos y render. Preparación de un recorrido animado. Vamos a utilizar una técnica bastante sencilla pero eficiente para la realización de recorridos virtuales. En este caso utilizaremos un constraint de posición para decirle a nuestra cámara por donde queremos que se mueva. Lo primordial es confirmar que tenemos el tiempo necesario en nuestra escena para lo que deseamos hacer, como recordaran nuestra escena dura 150 frames, por lo cual la cámara se moverá durante este periodo de tiempo (0-150) 8

Diseño del recorrido basado en splines. Vamos a utilizar un simple path para definir el recorrido de nuestra cámara, así que iniciaremos colocándonos en la vista Top a fin de poder trazar libremente. Haremos click en la pestaña de creación de objetos y posteriormente en el menú de Shapes, y finalmente en Line. Comenzaremos a crear una línea con la forma que deseamos que nuestra cámara recorra. Una vez generada la curva, ajustaremos si es necesario los nodos de nuestra línea a fin de hacer curvas suaves para que el movimiento de la cámara sea fluido e interesante. Asignación del Constriant de path position. Empezaremos colocando el Target de nuestra cámara justo en el centro de nuestro objeto a observar, posteriormente seleccionaremos el cuerpo de la cámara y nos iremos a la pestaña de motion en el panel superior derecho. Expandiremos el rollout de Assign Controller, para ver como tenemos enlistado en un menú toda las transformaciones de nuestro objeto (Position, Roll Angle, Scale), le daremos click al que dice POSITION. Le daremos ahora click al botón que esta en la parte superior derecha del Roll Out assign Controller que tiene por icono una palomita verde y una hoja de papel, ahí nos aparecerá un menú en el cual seleccionaremos PATH CONSTRIANT. De esta manera habremos especificado que queremos que el recorrido de nuestra cámara dependa de un path o spline. Mas debajo de la ventana buscaremos como ha aparecido un roll out llamado PATH PARAMETERS. Ahí le daremos click al botón ADD PATH, para después seleccionar nuestro spline que dibujamos previamente. De esta manera, automáticamente será asignado un recorrido del frame 0 al 150 de nuestra cámara, siempre viendo el punto de interés de nuestro objeto. Importante: revisar que nuestra spline este a la altura adecuada para observar el objeto, si no es así, bastara con mover la spline en Z positivo. 9

5.- Corrección de elementos que no se pueden bakear. Creación de un material reflejante. Si somos observadores, nos habremos percatado que nuestro render se ve perfecto, con excepción de aquellos elementos que son reflejantes, y que, debido a que su superficie de textura ha pasado por el proceso de baking, están reflejando los elementos de manera fija y no de manera real con respecto al angulo de la cámara. Tendremos que solucionar esto colocando un material real que se encargue de esto. Tratándose del vidrio de las ventanas, abriremos nuestro editor de materiales y seleccionaremos un slot vacio. Aquí colocaremos un material de tipo Architectural, posteriormente seleccionaremos el slot de Glass Clear para obtener un material con aspecto de cristal. Asignación de un enviromental para las reflexiones. Ya que es necesario que nuestro nuevo material no solo refleje los elementos de la escena sino un ambiente correcto, vamos a colocar en el menú de Enviroments and Effects un mapa tipo spherical que se encargue de esto. Apretaremos el botón numero 8 que es el shortcut de Enviroments and Effects, y le daremos click al botón que debajo de Enviroment Map. Buscaremos en nuestro disco duro la imagen Sky_lightblue.jpg. Dado que esta imagen es un mapa de tipo esférico, es necesario que nosotros especifiquemos las coordenadas con la que queremos que sea representado. Por ese motivo vamos a hacer click en donde dice Map#XXXXX (sky_lightblue.jpg) y lo arrastraremos a un slot vacio de nuestro editor de materiales. 10

Una vez realizado esto, en las opciones que están en el Edito de materiales de nuestro nuevo Mapa de bits, buscaremos el roll out que dice Coordinates, y seleccionaremos del combo box la opción Spherical Enviroment. Una vez realizado esto, nuestra escena estará completamente lista para ser rendereada correctamente. 6.- Rendereo Final. Render de la secuencia. Para terminar nuestra secuencia solo hará falta presionar F10 para abrir el cuadro de dialogo de render. Seleccionaremos en Time Output la opción de ACTIVE SEGMENT a fin de que se renderee toda la secuencia animada de 0-150 En la sección de Output Size, seleccionaremos el tamaño que deseamos que sea rendereado nuestro video (en este caso 1920*1080). Mas abajo en Render Output, seleccionaremos la carpeta donde queremos que sea guardado nuestro render, es recomendado guardar la secuencia como fotogramas, ya sea en PNG, JPG o TGA a fin de poder continuar el render si es que lo pausamos o cancelamos. 11

Nuestro render al final ha quedado de 5 segundos por frame incluyendo las reflexiones de nuestras ventanas, esto nos da un tiempo final de 12.5 minutos total, un tiempo bastante considerable si comparamos con las 5 horas de render original. Sumario: La meta de el proceso de Baking en 3dsmax es reducir el tiempo de render considerablemente para visualizaciones arquitectónicas, recorridos para VFX o escenarios de animación que no representan mayor complejidad de reflexiones. Reduciendo el tiempo de render es posible aumentar el tiempo de productividad de nuestras animaciones en 3d. Hacer baking de luz es inclusive una herramienta bastante útil cuando se trata de enviroments para videojuegos, ya que reduce el tiempo de calculo para los motores de videojuegos haciéndolos aun mas ligeros para dispositivos móviles por ejemplo. Espero que esta clase haya sido de su agrado, y sobre todo que les ayude a todos a mejorar sus tiempos de render. Cualquier duda me pueden contactar en : contact@carlosvilchis.com 12