La renderización 3D es el proceso de gráficos por computadora en 3D que convierte modelos 3D en imágenes 2D en una computadora . Las representaciones 3D pueden incluir efectos fotorrealistas o estilos no fotorrealistas .
La renderización es el proceso final de creación de la imagen o animación 2D real a partir de la escena preparada. Esto se puede comparar con tomar una foto o filmar la escena después de que la configuración esté terminada en la vida real. [1] Se han desarrollado varios métodos de renderización diferentes, y a menudo especializados. Estos van desde la renderización de estructura alámbrica claramente no realista hasta la renderización basada en polígonos, hasta técnicas más avanzadas como: renderización de líneas de escaneo , trazado de rayos o radiosidad . La renderización puede tardar desde fracciones de segundo hasta días para una sola imagen/fotograma. En general, diferentes métodos son más adecuados para la renderización fotorrealista o la renderización en tiempo real . [2]
La representación de los medios interactivos, como juegos y simulaciones, se calcula y muestra en tiempo real, a una velocidad de aproximadamente 20 a 120 fotogramas por segundo. En la representación en tiempo real, el objetivo es mostrar la mayor cantidad de información posible que el ojo pueda procesar en una fracción de segundo (es decir, "en un fotograma": en el caso de una animación de 30 fotogramas por segundo, un fotograma abarca una 30ª parte de un segundo).
El objetivo principal es lograr el mayor grado posible de fotorrealismo a una velocidad de renderización mínima aceptable (normalmente 24 fotogramas por segundo, ya que es el mínimo que el ojo humano necesita ver para crear con éxito la ilusión de movimiento). De hecho, se pueden aplicar explotaciones en la forma en que el ojo "percibe" el mundo y, como resultado, la imagen final presentada no es necesariamente la del mundo real, sino una lo suficientemente cercana como para que el ojo humano la tolere.
El software de renderizado puede simular efectos visuales como destellos de lente , profundidad de campo o desenfoque de movimiento . Se trata de intentos de simular fenómenos visuales resultantes de las características ópticas de las cámaras y del ojo humano. Estos efectos pueden aportar un elemento de realismo a una escena, incluso si el efecto es simplemente un artefacto simulado de una cámara. Este es el método básico empleado en juegos, mundos interactivos y VRML .
El rápido aumento de la potencia de procesamiento de los ordenadores ha permitido un grado de realismo cada vez mayor incluso en el renderizado en tiempo real, incluidas técnicas como el renderizado HDR . El renderizado en tiempo real suele ser poligonal y cuenta con la ayuda de la GPU del ordenador . [3]
Las animaciones para medios no interactivos, como largometrajes y vídeos, pueden tardar mucho más tiempo en renderizarse. [4] La renderización no en tiempo real permite aprovechar la potencia de procesamiento limitada para obtener una mayor calidad de imagen. Los tiempos de renderización de fotogramas individuales pueden variar desde unos pocos segundos hasta varios días para escenas complejas. Los fotogramas renderizados se almacenan en un disco duro y luego se transfieren a otros medios, como una película cinematográfica o un disco óptico. Luego, estos fotogramas se muestran secuencialmente a altas velocidades de fotogramas, normalmente 24, 25 o 30 fotogramas por segundo (fps), para lograr la ilusión de movimiento.
Cuando el objetivo es el fotorrealismo, se emplean técnicas como el trazado de rayos , el trazado de trayectorias , el mapeo de fotones o la radiosidad . Este es el método básico empleado en medios digitales y obras artísticas. Se han desarrollado técnicas con el propósito de simular otros efectos que ocurren naturalmente, como la interacción de la luz con varias formas de materia. Ejemplos de tales técnicas incluyen sistemas de partículas (que pueden simular lluvia, humo o fuego), muestreo volumétrico (para simular niebla, polvo y otros efectos atmosféricos espaciales), cáusticos (para simular el enfoque de la luz por superficies irregulares que refractan la luz, como las ondulaciones de luz que se ven en el fondo de una piscina) y dispersión subsuperficial (para simular la luz que se refleja dentro de los volúmenes de objetos sólidos, como la piel humana ).
El proceso de renderizado es costoso en términos computacionales, dada la compleja variedad de procesos físicos que se simulan. La capacidad de procesamiento de las computadoras ha aumentado rápidamente a lo largo de los años, lo que permite un grado cada vez mayor de renderizado realista. Los estudios cinematográficos que producen animaciones generadas por computadora generalmente utilizan una granja de renderizado para generar imágenes de manera oportuna. Sin embargo, la caída de los costos del hardware significa que es perfectamente posible crear pequeñas cantidades de animación 3D en un sistema informático doméstico, dados los costos involucrados cuando se utilizan granjas de renderizado. [5] El resultado del renderizador a menudo se utiliza como solo una pequeña parte de una escena cinematográfica completa. Se pueden renderizar muchas capas de material por separado e integrarlas en la toma final utilizando un software de composición .
Los modelos de reflexión/dispersión y sombreado se utilizan para describir la apariencia de una superficie . Aunque estos problemas pueden parecer problemas en sí mismos, se estudian casi exclusivamente en el contexto de la renderización. Los gráficos de computadora 3D modernos se basan en gran medida en un modelo de reflexión simplificado llamado modelo de reflexión Phong (que no debe confundirse con el sombreado Phong ). En la refracción de la luz, un concepto importante es el índice de refracción ; en la mayoría de las implementaciones de programación 3D, el término para este valor es "índice de refracción" (generalmente abreviado como IOR).
El sombreado se puede dividir en dos técnicas diferentes, que a menudo se estudian de forma independiente:
Los algoritmos de sombreado de superficies más populares en gráficos de computadora 3D incluyen:
La reflexión o dispersión es la relación entre la iluminación entrante y saliente en un punto determinado. Las descripciones de la dispersión se dan generalmente en términos de una función de distribución de dispersión bidireccional o BSDF. [8]
El sombreado se ocupa de cómo se distribuyen los diferentes tipos de dispersión a lo largo de la superficie (es decir, qué función de dispersión se aplica en cada lugar). Las descripciones de este tipo se expresan normalmente con un programa llamado sombreador . [9] Un ejemplo simple de sombreado es el mapeo de texturas , que utiliza una imagen para especificar el color difuso en cada punto de una superficie, dándole un detalle más aparente.
Algunas técnicas de sombreado incluyen:
El transporte describe cómo la iluminación de una escena se traslada de un lugar a otro. La visibilidad es un componente fundamental del transporte de la luz.
Los objetos tridimensionales sombreados deben aplanarse para que el dispositivo de visualización, es decir, un monitor, pueda mostrarlos en solo dos dimensiones; este proceso se llama proyección 3D . Esto se hace mediante proyección y, para la mayoría de las aplicaciones, proyección en perspectiva . La idea básica detrás de la proyección en perspectiva es que los objetos que están más lejos se hacen más pequeños en relación con los que están más cerca del ojo. Los programas producen perspectiva multiplicando una constante de dilatación elevada a la potencia del negativo de la distancia del observador. Una constante de dilatación de uno significa que no hay perspectiva. Las constantes de dilatación altas pueden causar un efecto de "ojo de pez" en el que comienza a producirse distorsión de la imagen. La proyección ortográfica se utiliza principalmente en aplicaciones CAD o CAM donde el modelado científico requiere mediciones precisas y la preservación de la tercera dimensión.
Los motores de render pueden combinarse o integrarse con software de modelado 3D, pero también existe software independiente. Algunos motores de render son compatibles con varios software 3D, mientras que otros son exclusivos de uno. Es el responsable de la transformación de la escena 3D preparada en una imagen o animación 2D. Los motores de render 3D pueden basarse en diferentes métodos, como el trazado de rayos, la rasterización, el trazado de trayectorias y, según la velocidad y el resultado esperado, existen diferentes tipos: en tiempo real y no en tiempo real, como se describió anteriormente.
Las bibliotecas CAD pueden tener recursos como modelos 3D , texturas , mapas de relieve , HDRI y diferentes fuentes de iluminación de gráficos de computadora para renderizar. [11]