¿Por qué los gráficos de juegos no son tan hermosos como las películas animadas?

60

Recuerdo haber visto el trailer pre-renderizado de Tomb Raider, y deseé que esos gráficos pudieran estar en el juego mismo.

¿Por qué hay una diferencia tan grande entre el trailer y el juego real? Entiendo que el juego es un concepto completamente diferente, tiene una tubería diferente, tiene que pasar por diferentes tipos de interacciones de jugadores, etc. Quiero saber de qué se trata el juego que hace que sea tan difícil en comparación con las películas animadas.

Hasta ahora sé que hacer un juego y una película animada comparten una carga de trabajo básica, por ejemplo, hacer modelos en 3D, renderizarlos (solo en el juego sucede en vivo). Las películas animadas se reproducen durante mucho tiempo y solo vemos escenas pre-renderizadas. ¡Eso es todo lo que sé, así que espero que respondas desde esa perspectiva!

¿Qué pasa con la reproducción de películas animadas durante horas y horas las hace tan hermosas mientras que la representación en vivo en el juego es menos hermosa (desde un punto de vista general)?

cowboysaif
fuente
1
Realmente no veo cómo la respuesta aceptada realmente cumple con los puntos de su pregunta. ¿Puede dejar un comentario aquí como un resumen de lo que entendió de él, es decir, qué noticias le trajo para que ahora entienda el problema que antes no entendía?
Bogdan Alexandru
44
No estoy seguro de lo que te confunde. La pregunta es el título; El mensaje aceptado responde a esa pregunta.
jhocking
2
En realidad entendí el 80% de la respuesta. El resto cubrió el 20%, especialmente aprendí mucho de la respuesta de @ Vladimir (ver más abajo). Algunas de las respuestas incluso discutieron cosas en las que no pensé, por ejemplo, agregar detalles después de la representación. Y para responder a su pregunta, seleccioné la respuesta porque creo que trajo un nivel más profundo de comprensión (no solo mencionó puntos, sino también los algoritmos / conceptos que funcionan detrás). Y para cuando terminé de leer esto, ¡otras respuestas también fueron increíbles! Fue difícil elegir cuál es el mejor, ¡pero a la gente también parece gustarle ese! ¡Los marcaría a todos!
cowboysaif
Quizás porque los desarrolladores de juegos no tienen interés en gastar más de $ 50,000,000 en efectos, algo que los productores de películas hacen habitualmente en estos días.
Pieter Geerkens

Respuestas:

109

Ya mencionaste uno de los puntos centrales: el tiempo .

En el proceso detrás de la representación de una animación de alta fidelidad, se utilizan múltiples enfoques y algoritmos diferentes (todos generalmente combinados bajo el término "Iluminación global" ), siendo el trazado de rayos uno de los más comunes (otros incluyen, por ejemplo, Radiosidad y Oclusión ambiental )

El trazado de rayos implica simular un número (generalmente alto) de rayos de luz que atraviesan la escena y calcular sus trayectorias, sus reflejos y refracciones cuando golpean objetos con diferentes materiales. Los diferentes materiales a cambio tienen diferentes propiedades físicas que dan como resultado reacciones específicas para los rayos (la cantidad de luz que rebota de un objeto, por ejemplo, es mayor para un objeto brillante en comparación con uno brillante).

Otro punto es la física : simular miles de cepas de cabello de una manera físicamente correcta lleva mucho tiempo. Es por eso que en los juegos más antiguos, los pelos a menudo se aproximan con una malla muy rugosa que luego se texturiza para dar la impresión de cabello, tal vez con algunos objetos en movimiento adicionales para que se vea un poco más realista.

También a tener en cuenta: memoria y ancho de banda . Cuanto mayor sea la calidad de una textura aplicada a un objeto en una escena, más memoria necesitará cargar y usar en un juego. Pero no solo el sistema necesita tener suficiente memoria para contener los datos, sino que estos datos también deben transferirse alrededor de los cuales se usa el ancho de banda disponible. Dado que la memoria y el ancho de banda son limitados, hay un máximo de lo que se puede lograr.

Los juegos a menudo hacen trampa un poco al usar solo texturas de alta resolución para objetos cercanos, y usan imágenes de menor resolución para los objetos lejanos (término: MipMapping ), reduciendo así el ancho de banda necesario, ya que es necesario buscar menos texels, lo que a cambio aumenta el rendimiento (Consulte la sección sobre MipMapping en la Guía de programación OpenGLES de Apple).

Del mismo modo, los juegos también suelen usar diferentes mallas para los objetos, dependiendo de qué tan lejos estén con los objetos lejanos que son menos detallados (término: LoD = Nivel de detalle ).

Conclusión: en gráficos en tiempo real (como juegos y simulaciones), este proceso de renderizado detallado y complejo, por supuesto, no funcionará para producir escenas fluidas / suaves. Necesita al menos 20 cuadros renderizados por segundo para lograr ese efecto fluido de animación / movimiento para el ojo humano. Por otro lado, renderizar un solo fotograma (!) En una película de animación puede tomar fácilmente desde unas pocas horas hasta varios días, dependiendo de muchos factores, como la cantidad de rayos utilizados en Ray-Tracing o la cantidad de muestras para Ambient Oclusión (consulte la página 1 de Pixar / la página 2 de Pixar para ver capturas de pantalla de 16 frente a 256 muestras), así como la resolución de película deseada (más píxeles = más información para calcular). Ver también este artículosobre el proceso detrás de la película de animación de la Universidad de Monstruos de Pixar , que ofrece algunas ideas interesantes y también menciona 29 horas de procesamiento por fotograma.

En general: cuanto mayor sea la fidelidad / realismo que se va a lograr, generalmente se necesitan más iteraciones / rebotes / muestras, lo que a cambio requiere más recursos (tiempo y / o potencia de cálculo / memoria). Para visualizar la diferencia, vea el renderizado resultante en función del número de rebotes para el cálculo de refracción en este ejemplo: rebotes de diamante de Keyshot

Pero, por supuesto, la calidad en las aplicaciones en tiempo real aumenta todo el tiempo por dos razones:

  1. Hardware más fuerte: a medida que las computadoras (de juegos) mejoran (= más potencia de cómputo [paralela], mayor transmisión de datos entre los componentes de la computadora, más y más memoria, etc.), la fidelidad visual también aumenta, porque en realidad más cómputos que consumen mucho tiempo hacerse factible en un sistema en tiempo real.
  2. Se desarrollan e implementan métodos / fórmulas más inteligentes que pueden crear efectos bastante realistas sin necesidad de trazado de rayos. Esto a menudo implica aproximaciones y, a veces, datos precalculados. Algunos ejemplos:

Philip Allgaier
fuente
44
@cowboysaif no, no puedes hacerlo en la GPU "tal como está". Tendría que obtener HW especializado. Sin embargo, hay intentos de hacer trazado de rayos en tiempo real usando CUDA o tecnología similar.
wondra
44
Existen muchas otras técnicas además del trazado de rayos en el renderizado sin conexión, al hacer cinemáticas de calidad profesional. Pero como usted dice, utilizan técnicas costosas de renderizado, iluminación y sombreado que simplemente no son prácticas para el renderizado en tiempo real.
MrCranky
40
Esta respuesta explica por qué la animación pre-renderizada toma mucho más tiempo pero realmente no da una idea de la escala. ¡La diferencia es enorme ! Un juego tiene que renderizar un cuadro en menos de 1/30 de segundo, mientras que las películas suelen tardar varios días en procesar cada cuadro.
jhocking
99
"Días" es, sin duda, el extremo superior de la escala de tiempo, pero sí, las películas a veces tardan más de 1 día en reproducir un solo cuadro (consulte aquí, por ejemplo, venturebeat.com/2013/04/24/… ) E incluso en el promedio los tiempos de renderización siguen siendo como medio día por fotograma, que es muuuucho más largo de lo que un juego tiene que renderizar. La razón por la que toda la película no tarda una década en renderizarse es porque tienen una granja de renderizado, es decir. cientos de máquinas renderizando al mismo tiempo.
jhocking
77
Algunos datos: el trazado de rayos se usa en todas partes, no es absolutamente una técnica de nicho. VRay es solo CPU. VRayRT es solo GPU. La GPU no es adecuada para la producción porque las escenas generalmente requieren muchos GB de RAM y no caben en la GPU (pero a veces ayuda). Nuestras propias tomas toman 1-2 horas / fotograma en CPU de alta gama y no es tan largo. JackAidley está completamente equivocado.
Calvin1602
44

Además del factor tiempo, vale la pena señalar que en una película, el artista tiene control total sobre lo que el espectador verá y no verá.

En la escena típica de una película, la cámara no pasará mucho tiempo apuntando al techo, o apuntando a una esquina oscura de la habitación, o apuntando al tobillo de alguien, por lo que el presupuesto de polígono y texturas para esos elementos será bastante bajo.

Si toda la escena tiene lugar desde un punto de vista, el set virtual (como un set de película real) no necesita incluir las partes que están detrás de la cámara. En la mayoría de los juegos, el jugador puede mirar en cualquier lugar en cualquier momento. Eso significa que el presupuesto de calidad puede centrarse en lo que realmente se ve. (Algunos juegos en tercera persona, por ejemplo, la serie God Of War, usan una cámara restringida; sus visuales tienden a ser notablemente mejores que los de más juegos de cámara libre).

Russell Borogove
fuente
12
Un punto para no ser subestimado. La representación de un conjunto fijo de fotogramas permite un enfoque completo solo en esos fotogramas, cualquier cosa que cause un problema en un fotograma individual puede solucionarse manualmente.
aaaaaaaaaaaa
99
Diablos, esto a menudo se usa con juegos que hacen que sus escenas "vivan en el motor", por lo que las escenas cortadas aún pueden verse mejor.
Trlyly
Un juego que rompe esta regla en mi humilde opinión es Brothers: A Tale of Two Sons. Los desarrolladores hacen todo lo posible para asegurarse de que la cámara termine en el lugar correcto y se sienta natural también.
Básico
12
¿Qué pasa con la reproducción de películas animadas durante horas y horas las hace tan hermosas mientras que la representación en vivo en el juego es menos hermosa (desde un punto de vista general)?

Asume que la diferencia está simplemente en el renderizado: en una película animada, también existe la posibilidad de editar después del hecho. Pueden tener efectos compuestos que habrían sido difíciles de lograr en el motor original, o pueden modificar un poco las cosas (por ejemplo, eliminar o repetir cada 10 cuadros para acelerar / ralentizar la animación).

Si tienes la oportunidad, busca uno de los DVD de 'Roughnecks: The Starship Trooper Chronicles', ya que tienen pistas de comentarios del editor y animadores sobre los trucos que tuvieron que hacer cuando comenzaron a retrasarse en su horario de entrega, cosas como reciclando tomas pero volteando el eje para que no fuera tan obvio, correcciones de color, enmascarar cosas que no les gustaban, agregar explosiones, etc.

Joe
fuente
¡Los motores de juego también hacen eso! ;-)
Adrian Maire
@AdrianMaire: podrían hacer algunas de las otras cosas, pero no tendrían al humano allí para actuar como editor y modificar las cosas cuando sea necesario. Sé que mencioné cómo modifican las cosas, pero mi punto principal fue que había humanos involucrados en cosas pre-renderizadas ...
Joe
10

Ya respondiste tu propia pregunta. Las películas animadas generalmente tienen un mayor nivel de detalle, lo que provoca un largo tiempo de renderizado para cada fotograma individual.

Los juegos, por otro lado, no tienen tantos detalles, ya que la escena debe representarse 30 o más veces por segundo. Esa es también la razón por la cual los desarrolladores intentan reutilizar la mayor cantidad de activos (texturas, modelos, etc.) como sea posible, porque representar el mismo objeto en dos posiciones es mucho más rápido que si todo fuera único. También tienen que tener cuidado de no usar demasiados polígonos en sus modelos y, en su lugar, tratar de lograr una impresión de profundidad utilizando iluminación, texturas, mapeo de relieve y otras técnicas.

Las películas no tienen ese problema; hacen que la escena sea de la manera que desean y usan tantas texturas, modelos y geometrías detalladas como necesitan para lograr la escena que están buscando.

Sin embargo, uno podría argumentar que los juegos se están poniendo al día. Si miras algunos de los juegos más atractivos de los últimos tiempos, no están tan lejos de la calidad de la película como solían estar. Por supuesto, siempre podrás incluir más detalles en una escena renderizada previamente que en un juego, pero creo que la diferencia no será tan notable dentro de unos años.

cristiano
fuente
1
Amar esta respuesta! Entonces, ¿quién debería ser el principal culpable? ¿Nivel de polígono o trazado de rayos? ¿Los motores de juego tienden a usar z buffer porque es más liviano? ¿O el trazado de rayos hace más trabajo que calcular la profundidad?
cowboysaif
2
Supongo que es el trazado de rayos. Philip parece ser mucho más conocedor que yo sobre esto, pero hasta donde yo sé, es básicamente una forma de simular los rayos de luz como actuarían en la realidad: rebotar cosas, difuminarse, romperse o cambiar los materiales de la escena. , y así. Si tiene cosas como el pelaje, el cabello u otras simulaciones pesadas (como fluidos) en su escena, la física también es pesada para el rendimiento; también, esas cosas afectan la complejidad del trazado de rayos nuevamente.
Christian
2
Una aplicación de trazado de rayos también necesita algo así como un búfer Z para determinar y almacenar qué objetos ocluyen con otros objetos. Pero el trazado de rayos es mucho más detallado que una aplicación en tiempo real, ya que hace todas las cosas que Christian y yo ya mencionamos para obtener una mayor fidelidad gráfica al enviar esos rayos de luz individuales y calcular las refracciones / dispersiones reales, por ejemplo, en objetos de vidrio o agua. , reproducción física del cabello, iluminación indirecta y oclusión ambiental, etc. (aunque algunas de esas partes también se pueden aproximar en la aplicación en tiempo real hoy en día como mencioné).
Philip Allgaier
77
Las películas se procesan con aproximadamente 10-12 horas de tiempo de cálculo por fotograma. Y según la Ley de Blinn, cada vez que la potencia de cálculo mejora, simplemente agregan más cosas a la escena, por lo que realmente nunca se vuelve más rápido. El renderizado de películas también tiende a usar soluciones "exactas" de forma cerrada para todas las ecuaciones de renderizado, donde los juegos hacen numerosas aproximaciones porque tiene que ser un millón de veces más rápido que una película.
Chuck Walbourn
2
Nunca escuché sobre la Ley de Blinn antes, ese enlace fue genial
jhocking el
8

Las otras respuestas cubren los problemas de gráficos en bruto con buen detalle, pero no mencionan una parte importante del realismo de los juegos frente a las películas y los avances: las animaciones y los movimientos de la cámara .

En una película o avance, cada movimiento de personas y cámaras se puede coordinar cuidadosamente para mostrar la emoción correcta por el momento, y nunca es necesario repetirlas. En los videojuegos, el juego debe ser capaz de reaccionar instantáneamente a los movimientos del jugador, y debe reutilizar un pequeño grupo de animaciones comunes para llenar las horas ilimitadas de tiempo de juego que pueden ser posibles.

Ejemplos de esto del tráiler en cuestión son cuando el terapeuta asiente con la cabeza y le da una sonrisa "no está mal" , y cuando Lara agarra el reposabrazos, mueve la pierna o mira con asombro la caverna. Estas pequeñas cosas (o la falta de ellas, y los personajes "plásticos" involucrados) afectan el realismo percibido mucho más que pequeñas mejoras gráficas.

A diferencia de las otras diferencias gráficas, este no es un problema que pueda resolverse potencialmente si le brindamos más poder de cómputo: es una diferencia fundamental entre un mundo con secuencias de comandos y un mundo que responde a cada una de sus acciones. En este aspecto particular, espero que el realismo de los avances de hoy supere toda la jugabilidad en el futuro previsible.

Tim S.
fuente
8

Además de las otras excelentes respuestas que ya se publicaron, vale la pena señalar que para lograr los tiempos de procesamiento rápidos que necesitan los juegos, los desarrolladores de juegos deben hornear muchos de sus efectos visuales como texturas simples. Esto significa que se debe tener mucho cuidado para evitar un efecto que no cueza bien.

Un efecto importante que es difícil de hornear para los videojuegos es la dispersión subsuperficial (SSS) . Desafortunadamente, este efecto es realmente importante para generar una piel humana de aspecto realista. Es por eso que muchos personajes de videojuegos "realistas" parecen plásticos.

Una forma en que los desarrolladores evitan este problema es haciendo deliberadamente que los personajes tengan colores brillantes para restarle importancia al aspecto plástico, o agregando muchas sombras y detalles texturales a la cara (como barbas, etc.) para dividir las secciones continuas y grandes de lo contrario. piel.

Vladimir
fuente
2
Sin mencionar todo el trabajo de procesamiento posterior que se aplica a las animaciones de películas. Muchas cosas se representan como múltiples escenas separadas que deben colocarse en capas después de la representación. Por eso, en muchas películas animadas, a menudo verá fondos relativamente estáticos con personajes en movimiento en primer plano.
Vladimir
6

Para responder una de las preguntas que el OP hizo en un comentario:

"Entonces, ¿quién debería ser el principal culpable? ¿Nivel de polígono o trazado de rayos?"

Esta pregunta es más difícil de lo que parece. Creo que una buena regla general es la siguiente ecuación (que hice a propósito):

number of calculations = {polygons} * {light sources} * {effects}

Básicamente, esto significa que para modelos con relativamente pocos materiales especiales (es decir, sin espejo, subsurf, etc.), el tiempo de cálculo estará determinado por la cantidad de polígonos. Este suele ser el caso de los gráficos de videojuegos muy simples.

En la práctica, sin embargo, en los juegos más nuevos de alta gama y especialmente en las películas, el culpable es "generalmente" el trazado de rayos. ¿Por qué? Bueno por dos razones. Primero daré la razón matemática, y luego mi opinión sobre la verdadera razón al final.


Razón matemática:

Actualización: esta explicación matemática puede no ser completamente precisa. Consulte la explicación de CrazyCasta en los comentarios para obtener más detalles.

Supongamos que tiene 1000 polígonos y 3 fuentes de luz. El número más pequeño de trazos de rayos que necesita realizar es 3 * 1000.

Si simplificamos demasiado la situación y suponemos que 1 trazo de rayo = 1 cálculo (una subestimación bruta) entonces necesitaremos 3000 cálculos.

Pero ahora supongamos que quieres tener reflejos también.

Las configuraciones predeterminadas para reflexiones en el programa gratuito Blender son:

max reflections  = 2
ray length limit = None
...

Para estas configuraciones, podemos adivinar que, en el mejor de los casos, esta reflexión súper simple duplicará el costo computacional de su modelo.

Pero, como dije antes, este ejemplo está muy simplificado y puedes encontrar muchos efectos (además de los que ya mencioné) que dispararán tu tiempo de renderizado por las nubes.

Caso y punto: intente representar los reflejos con gloss=1(el valor predeterminado en Blender), luego baje el brillo a 0.01 y compare los dos tiempos de representación. Encontrará que el que tiene un brillo de 0.01 será mucho más lento, pero la complejidad del modelo no ha cambiado en absoluto.


Mi razón cualitativa pero más realista:

El aumento de la complejidad de la malla solo mejorará la calidad del modelo hasta cierto punto. Después de pasar un par de millones de caras, realmente no hay muchas cosas que sumen más caras. Incluso iré tan lejos como para decir que si usa suavizado, podrá salirse con solo un par de cientos de caras para la mayoría de los propósitos generales.

Pero las cosas que casi siempre marcan la diferencia son la iluminación, los efectos materiales y el trazado de rayos. Es por eso que las películas tenderán a usar una gran cantidad de estas en un intento de aproximarse a las hermosas complejidades del mundo real.


Una excelente manera de tener una idea de todo esto es mirar la lista de actores al final de las últimas animaciones de Disney. Probablemente se sorprenderá de cuántas personas de iluminación y textura tienen.

Vladimir
fuente
2
Dios mío, este es el punto que estaba buscando. Aunque no era mi pregunta (estaba un poco confundido, ¿qué debería pedir?), ¡Creo que es esta!
cowboysaif
1
@cowboysaif Me alegro de ayudar! :)
Vladimir
1
En realidad, las cosas no son tan buenas como podría haberlas hecho parecer. Pero creo que esto puede ayudarlo a tener una idea general. Por lo general, solo confío en la prueba y el error. Al igual que si renderizo una escena larga más larga (más de 100 fotogramas), primero renderizo uno o dos fotogramas para poder ver qué tan rápido va y qué efectos tienden a ralentizarlo.
Vladimir
2
Un viejo truco de usar POVRay en un 486 en el día: si quieres saber qué partes de tu escena son más caras, presenta múltiples vistas de todo el escenario con todos los actores y accesorios en su lugar y mira las partes que disminuyen el rastreador a un rastreo. Amplíe esas porciones y descubra el peor rendimiento y piense en gastar la mayoría de su presupuesto de renderizado en los marcos que incorporan esos elementos. Si tiene un calendario de renderizado ajustado, considere volver a enmarcar algunas tomas.
Tom B
1
@TomB ¡Buen consejo! Agrego que si espera que una escena en particular sea lenta, puede cultivarla en la web y renderizar todo lo demás localmente.
Vladimir
4

Vale la pena agregar que la animación de películas generalmente hace una gran cantidad de trucos visuales para hacer que el movimiento percibido sea más fluido.

Los animadores pueden, por ejemplo, usar técnicas tradicionales de animación manual que normalmente no se usan en renderizado en tiempo real, como frotis, múltiplos o deformaciones para producir un movimiento más fluido a pesar de la tasa de fotogramas más baja que son las películas (en cualquier caso, hasta hace poco) ) visualizado en. El uso de frotis y múltiplos en particular es complicado por el uso de mallas: debe producir deformaciones de malla para ese tipo de distorsión de malla, y no creo haberlo visto en ningún videojuego en 3D.

Los marcos con objetos que se mueven rápidamente que pasan a través de ellos pueden renderizarse a una velocidad de fotogramas diferente y luego combinarse nuevamente para producir un desenfoque de movimiento a través de la escena. El desenfoque de movimiento es una técnica bastante común en los gráficos 3D en tiempo real en estos días. El efecto generalmente no es de la alta calidad que obtendrá una casa de animación con docenas de procesadores a su disposición (vea las respuestas de "tiempo" más arriba) en gran parte debido al hecho de que el desenfoque de movimiento falso realmente requiere múltiples pasos de procesamiento posterior por capa, y una gran cantidad de cuadros intermedios para ser realmente fluidos.

Hacer este tipo de trucos visuales para mejorar la calidad percibida con gráficos en tiempo real efectivamente requiere limitar la velocidad de fotogramas de salida a tasas muy por debajo de los fotogramas intermedios máximos disponibles de procesamiento en segundo plano, y luego realizar la composición para producir el fotograma final. Probablemente hay varias escuelas de pensamiento sobre si las pequeñas ganancias en la fidelidad visual al usar técnicas como esta valen la pérdida del presupuesto del marco, particularmente si va a ser extremadamente difícil hacerlo bien.

Para abordar un aspecto de su pregunta:

¿Qué pasa con la reproducción de películas animadas durante horas y horas las hace tan hermosas mientras que la representación en vivo en el juego es menos hermosa (desde un punto de vista general)?

Artesanía, principalmente. Los artistas en tiempo real no tienen la oportunidad de ajustar cada cuadro o crear trucos únicos para mejorar el aspecto general de una escena o reacción, no solo por las limitaciones de tiempo (tanto en desarrollo como en renderizado) sino también porque de restricciones prácticas. Como se señaló en el comentario de interactividad, el jugador probablemente no va a hacer exactamente lo mismo cada vez, pero la película se reproducirá igual cada vez.

Esto significa que el artista de videojuegos tiene un conjunto de prioridades muy diferente en lo que respecta a la calidad del modelo y la calidad final del renderizado que el artista de la película. Ambos requieren enormes cantidades de habilidad, pero cada uno exige diferentes técnicas. Espero que estas técnicas converjan cada vez más a medida que el hardware de renderizado a nivel de consumidor continúa progresando y surgen más genios matemáticos en sus SIGGRAPH y sus GDC.

Tumba
fuente
1
Oooh, acabas de hablar de algo de lo que quiero hablar. Deformación de malla? ¿También se llama modificador de malla? Hay un modificador que utilicé mientras jugueteaba con unity 3d, se llama mega- fiers ( west-racing.com/mf/?page_id=2 ). Aunque Unity 3D solo admite animación basada en huesos, ¿crees que las tecnologías de juego finalmente lo están superando? ¡Sin embargo, no tengo idea de otros motores de juego!
cowboysaif
1
Ese tipo de efecto debería ser compatible con cualquier tipo de técnica de animación, siempre y cuando esté utilizando distorsiones matemáticas de modelo completo con un sombreador de vértices (probablemente lo que están haciendo los "mega-disparadores"). Algunos otros enfoques son: * tener una malla "objetivo" que es una segunda malla que está completamente distorsionada y usar su sombreador de vértices para mover los vértices de su malla hacia sus vértices coincidentes en la segunda malla; * tener las deformaciones en su propio modelo y usar animación de fotogramas clave; * haciendo sus distorsiones usando animación esquelética colocando exclusivamente huesos adicionales según sea necesario ...
Tom B
1
Estoy seguro de que este tipo de animación ha sido posible por un tiempo, y hasta cierto punto ya se ha utilizado, aunque principalmente solo puedo recordar instancias en juegos con criaturas en mal estado y modelos flexibles (como Gish, Tower of Goo, Octodad) . La parte difícil proviene de descubrir cuándo usar los efectos, particularmente cuando se trata de usar múltiples o frotis. La dirección del movimiento de la cámara afecta el aspecto que debería tener el múltiple o frotis resultante. Sospecho que las pautas que usan los animadores manuales serían un buen punto de partida, ¡pero piense en toda la diversión que se puede experimentar en la experimentación!
Tom B
3

Una sola película animada podría tardar muchos años en representarse en una sola bestia de una máquina. Dado que está pre-renderizado, no importa cuántos efectos costosos como rebotes de luz, sombras, etc., agreguemos a la escena. Estas películas generalmente se procesan en granjas de renderizado donde miles de PC están unidas para trabajar en el mismo trabajo.

La razón por la que no podemos lograr la misma calidad en tiempo real es simplemente porque la máquina necesita renderizar el fotograma actual en aproximadamente 16 ms para lograr un FPS de 60. Un solo fotograma para una película animada puede tardar horas en renderizarse en una sola PC.

En un juego, además de los gráficos, están sucediendo muchas otras cosas. Cada cuadro hay toneladas de cálculos. Simplemente dicho, una película animada no necesita calcular el daño recibido por el jugador de un lanzacohetes, solo anima los gibs y los polígonos se renderizarán.

Afortunadamente, hay algunas personas geniales caminando en este planeta. Además de mejores PC que pueden renderizar más polígonos y texturas más grandes, hay algunos inventos ingeniosos hechos como mapas normales que pueden animar luces / sombras en un polígono plano a muy bajo costo, haciendo que un objeto 3D aburrido se vea extraordinariamente detallado.

Algunos de estos costosos efectos que hacen que las películas tengan ese toque extra.

  • La luz rebota. En la vida real, la luz rebota hasta que es completamente absorbida por las superficies sobre las que rebota. Para cada fuente de luz hay que hacer cálculos. Intente sostener un objeto de color junto a un trozo de papel blanco, verá que el color sangra en el papel.
  • Los juegos tienen limitaciones severas en la cantidad de polígonos utilizados, las películas de pre-renderización no tienen estas limitaciones, solo toma más tiempo renderizar. Volviendo al rebote de la luz, si tenemos más polígonos, entonces hay más cálculos de luz para imágenes aún mejores pero a expensas del costo de crecimiento exponencial.
  • Tamaño de textura, las tarjetas gráficas solo pueden contener una cierta cantidad de datos en ellas y cambiar estos datos es costoso. Una textura común de 1024x1024 que incluye todos los mapas de sombreadores podría ocupar fácilmente un par de porcentajes de su tarjeta GFX de 1 GB. Cuando la tarjeta necesita cambiar datos, esto tiene un costo. Obviamente, no nos importa mucho esto al pre-renderizar una película. Además, en una película solo necesitamos texturas de alta resolución donde la cámara se acerque, para un juego queremos esto para cada objeto al que el jugador pueda acercarse.
  • Pathfinding es muy exigente en la CPU. Los algoritmos de Pathfinding, por ejemplo, hacen que los enemigos encuentren rutas hacia ti o hacen que tu jugador camine un camino cuando haces clic en algún lugar. Esta ruta puede ser costosa, cuando hay 10000 puntos de ruta (que es solo cada metro cuadrado en un mapa de 100m x 100m), entonces es posible que necesitemos recorrer todos estos puntos de ruta muchas veces en un solo cuadro. Hay muchas formas de hacer que esto sea más barato dependiendo de las necesidades, pero el hecho es que no necesitamos esto para escenas preprocesadas.

En pocas palabras, necesitamos idear trucos "baratos" para que un juego se vea bien. Pero el ojo humano es difícil de engañar.

Madmenyo
fuente