Soy nuevo en gamedev y Blender, y hay algo que no puedo evitar:
En Blender, un solo renderizado (incluso usando el renderizador de Ciclos más avanzado) puede tomar hasta 45 segundos en mi máquina. Pero, obviamente, en un juego, puedes tener gráficos asombrosos, por lo que el renderizado obviamente ocurre continuamente, varias veces por segundo en tiempo real.
Así que también me pregunto cuál es la desconexión, con respecto a cuán "lentos" parecen ser los renders de Blender, en comparación con cómo los motores de juego logran el renderizado en tiempo real (o casi en tiempo real).
Respuestas:
El renderizado en tiempo real, incluso el renderizado moderno en tiempo real, es una bolsa de trucos, atajos, hacks y aproximaciones.
Tomar sombras por ejemplo.
Todavía no tenemos un mecanismo completamente preciso y robusto para representar sombras en tiempo real de un número arbitrario de luces y objetos arbitrariamente complejos. Tenemos múltiples variantes en las técnicas de mapeo de sombras, pero todas sufren los problemas bien conocidos con los mapas de sombras e incluso las "soluciones" para estos son realmente solo una colección de soluciones y compensaciones (como regla general si ves los términos "sesgo de profundidad" o "desplazamiento de polígono" en cualquier cosa, entonces no es una técnica robusta).
Otro ejemplo de una técnica utilizada por los renderizadores en tiempo real es el cálculo previo. Si algo (p. Ej., La iluminación) es demasiado lento para calcular en tiempo real (y esto puede depender del sistema de iluminación que utilice), podemos precalcularlo y almacenarlo, luego podemos usar los datos precalculados en tiempo real -tiempo para un aumento del rendimiento, que a menudo se produce a expensas de los efectos dinámicos. Esta es una compensación directa entre memoria y computación: la memoria es a menudo barata y abundante, la computación a menudo no lo es, por lo que quemamos la memoria extra a cambio de un ahorro en la computación.
Los renderizadores sin conexión y las herramientas de modelado, por otro lado, tienden a centrarse más en la corrección y la calidad. Además, debido a que están trabajando con una geometría que cambia dinámicamente (como un modelo mientras lo estás construyendo), a menudo deben recalcular las cosas, mientras que un renderizador en tiempo real estaría trabajando con una versión final que no tiene este requisito.
fuente
La respuesta actual ha hecho un muy buen trabajo al explicar los problemas generales involucrados, pero creo que pierde un detalle técnico importante: el motor de renderización "Cycles" de Blender es un tipo de motor diferente al que usan la mayoría de los juegos.
Por lo general, los juegos se representan iterando a través de todos los polígonos de una escena y dibujándolos individualmente. Esto se hace 'proyectando' las coordenadas del polígono a través de una cámara virtual para producir una imagen plana. La razón por la que se usa esta técnica para juegos es que el hardware moderno está diseñado en torno a esta técnica y se puede hacer en tiempo real con niveles de detalle relativamente altos. Por interés, esta es también la técnica empleada por el motor de renderizado anterior de Blender antes de que la Fundación Blender dejara caer el viejo motor a favor del motor Cycles.
Ciclos, por otro lado, es lo que se conoce como un motor de trazado de rayos. En lugar de mirar los polígonos y representarlos individualmente, proyecta rayos virtuales de luz en la escena (uno por cada píxel en la imagen final), hace rebotar ese haz de luz en varias superficies y luego usa esos datos para decidir de qué color es el píxel debiera ser. El trazado de rayos es una técnica computacionalmente costosa que lo hace poco práctico para renderizar en tiempo real, pero se usa para renderizar imágenes y videos porque proporciona niveles adicionales de detalle y realismo.
Tenga en cuenta que mis breves descripciones del trazado de rayos y la representación de polígonos están muy reducidas en aras de la brevedad. Si desea saber más sobre las técnicas, le recomiendo que busque un tutorial o libro en profundidad, ya que sospecho que hay muchas personas que han escrito mejores explicaciones de las que yo podría reunir.
También tenga en cuenta que hay una variedad de técnicas involucradas en el renderizado 3D y algunos juegos realmente usan variaciones de trazado de rayos para ciertos fines.
fuente