Efectos en PSX. Dudas y charla.

No abunda este efecto por motivos obvios, pero hay juegos donde sí y me gustaría saber si alguien conoce como se hace ¿Renderiza dos veces? Es que me parece raro que la gris pueda permitirselo.

Algunos ejemplos, la fase de hielo de Ape Escape:


Spyro 3:
Imagen

Alone in the Dark IV:
Imagen

Alone in the Dark es gracioso porque no tiene reflejos en zonas lluviosas con charcos o en las alcantarillas donde caminas con el agua bajo los sobacos, pero después meten un espejo en tiempo real. Como este juego usa fondos pre-render aquí sí que me creo que renderiza dos veces al personaje, pero en los anteriores juegos ¿También?
Es el mismo objeto espejado o invertido , igual que el espejo de Super mario 64 y todos los juegos de esa generación donde simulaban reflejos en el suelo.

Salud.
@dirtymagic pero no le queda demasiado grande a PSX esto? O sea en el Alone in the Dark vale, pero en ese Spyro todo el escenario es poligonal y a mayores personaje, hada y enemigos, todos ellos con reflejo. [carcajad]

En Ape Escape sólo refleja las paredes, puede ser más viable.
SuperPadLand escribió:@dirtymagic pero no le queda demasiado grande a PSX esto? O sea en el Alone in the Dark vale, pero en ese Spyro todo el escenario es poligonal y a mayores personaje, hada y enemigos, todos ellos con reflejo. [carcajad]

En Ape Escape sólo refleja las paredes, puede ser más viable.


Lo más probable es que use trucos para realizar los cálculos una sola vez.
Coño gracias a tu hilo me entero de que hay 3 Spyros en PlayStation y no 2 xD

A mí también me impresionaré el gif de la pista de patinaje.

Puta Sony 1 y su hardware Alfa para exprimirse con facilidad.
Efectivamente es el mismo objeto espejado. Como bien comenta @issus estoy seguro que usa trucos para no tener que calcular 2 veces, en el fondo no necesitas calcular 2 veces el mismo objeto, solo proyectar las coordenadas espejadas.
@Sexy MotherFucker normalmente no se le llama Spyro 3 sino Spyro Year of the Dragon, creo que cuando lo lanzaron era el año del Dragón en China o algo así.
SuperPadLand escribió:@dirtymagic pero no le queda demasiado grande a PSX esto? O sea en el Alone in the Dark vale, pero en ese Spyro todo el escenario es poligonal y a mayores personaje, hada y enemigos, todos ellos con reflejo. [carcajad]

En Ape Escape sólo refleja las paredes, puede ser más viable.

Como tú dices e AitD4, sólo el personaje y el "reflejo" son 3D el resto es un fondo 2D.
En Spyro solo "refleja" los enemigos y a Spyro, no el escenario, que por cierto en la captura parece bastante sencillo y los enemigos no parecen tener mucha carga poligonal.
En Ape Escape al revés, sólo es el escenario el que se "refleja".
Todos ellos se ahorran, el cálculo de colisiones en las partes reflejadas,que parece tontería, pero gasta ciclos, que se pueden usar en otras cosas.
Por ejemplo en los Zelda de N64, las colisiones del escenario se calculan a nivel de vértices, Link lanza "rayos" constantemente hacia el escenario hasta cierta distancia ( de ahí que las flechas y nueces del tirachinas, impactan en el escenario solo hasta cierta distancia, si se pasa, lo traspasa).Normalmente los escenarios originales, suelen ser habitaciones de 500 polígonos y el escenario entero en memoria, unos 1800 polígonos, yo tengo hechos escenarios de una sola habitación de 2800/3200 polígonos, pues ese mismo escenario, si usa su geometría como colisión, hay partes con mucho polígono concentrado, baja el framerate, pero sin embargo si cargo una geometría más sencilla como colisión, vez de usar la del escenario, ya no baja de framerate.Espero que se haya entendido.

Salud.
(mensaje borrado)
A mí los juegos de basket de aquella generación me dejaban con la boca abierta con los reflejos en el parqué.

@txefoedu la verdad es que la hija de puta de la gris tenía una capacidad para generar efectos gráficos inaudita para un cacharro del 94 tan barato:

El cambio de mundos en Soul Reaver, junto con los efectos de luz de la espada o de partículas cuando llevas una antorcha o de la sangre de enemigos al atacarlos.
Imagen

El acido alíen soltando vapores:
Imagen

Los efectos de luz ¿dinámicas? de todos los disparos de Terracon:
Imagen
Hace rato queria comentar que me encantan los reflejos en el hielo de Crash 2.

Imagen

Imagen

Este juego tiene un monto de efectos increíbles

Aqui en el agua

Imagen

O cuando Cortex o Coco te hablaban esos efectos de iluminación, impresionante [tadoramo] .

Imagen
La enorme mayoria de los reflejos hasta PS2, son geometria, geometria invertida, es demasiado costoso hacer reflejos en tiempo real, es mas barato renderizar una copia invertida del objeto que hacer reflejos reales. En PS3 no me parece haber visto reflejos nunca, almenos no reflejos decentes. Y los reflejos modernos en tiempo real se ven como el culo, en Resident Evil 2 Remake, en el cuarto de interrogacion. En el cristal se refleja y se ve horrible y pixelado, en UE4 se ven igual.

Un truco comun para tener algo de reflejo del escenario es que el piso sea transparente y el escenario este invertido en vertical. Si no es necesario que se vea hasta el techo, entonces solo es una parte del muro y con negro para "desvanecer". Ya que muchos juegos usaban vertex color en vez de texturas o como complemento de estas, pues es mas barato.

El efecto de soul reaver es ridiculamente barato a nivel hardware, morph targets con vertex color, aunque claro implementarlo es lo que es laborioso.
Había algunos efectos chulos en psx.

Una cosa que no sé el nombre técnico lo llaman efectos de framebuffer en emuladores.
El efecto calor/blur
Creo que el juego que conozco que más lo usa es dragon valor. Hay ataques que hacen eso.

El de los reflejos de gran turismo creo que es un truco, que el coche tiene aplicado un gráfico en plan aditivo que envuelve al coche y se mueve.
Desde entonces los juegos de coches empezaron a tener reflejos o se quedaban "atrasados". Con texturas pero nada más.
@gadesx
Una cosa que no sé el nombre técnico lo llaman efectos de framebuffer en emuladores.
El efecto calor/blur


La que era especialista en este tipo de efectos fue la Ps2, ya que gracias a la particular implementación de su EDRAM junto a su enorme ancho de banda y tasa de relleno le salían gratis. En ese sentido fue la más capaz de esa generación, y es que creando efectos de Framebuffer PlayStation 2: DESTRUYE a Dreamcast, tumba de 2 golpes a la Xbox, y le pega 1 collejón a la GC (la siguiente mejor máquina en ese tipo de efectos).

Que la primera PlayStation sea tan buena ejecutándolos (a su nivel) dice mucho del buen diseño del sistema.
Sexy MotherFucker escribió:@gadesx
Una cosa que no sé el nombre técnico lo llaman efectos de framebuffer en emuladores.
El efecto calor/blur


La que era especialista en este tipo de efectos fue la Ps2, ya que gracias a la particular implementación de su EDRAM junto a su enorme ancho de banda y tasa de relleno le salían gratis. En ese sentido fue la más capaz de esa generación, y es que creando efectos de Framebuffer PlayStation 2: DESTRUYE a Dreamcast, tumba de 2 golpes a la Xbox, y le pega 1 collejón a la GC (la siguiente mejor máquina en ese tipo de efectos).

Que la primera PlayStation sea tan buena ejecutándolos (a su nivel) dice mucho del buen diseño del sistema.



Ufff, yo no me atrevería a ser tan tajante en el caso de GC, en cuestiones de reflejos y efectos de agua hace autenticas burradas, no se si son efectos puramente de framebuffer o si entra en juego las texturas y otros cálculos de sombreados etc, pero no creo que quede muy lejos de PS2... eso si, al Cesar lo que es del Cesar ese ancho de banda fue una bestialidad para su epoca.
@NiTrO efectos de agua hacían todas de Puta madre, lo que yo he quoteado son dos ejemplos claros de efectos 100% framebuffer: calor, blur, distorsión, cambios al vuelo con la paletas y transparencias etc; y en ese campo la Ps2 no tenía rival.

Luego era peor que GC en el resto: polígonos por segundo, texturas, sonido, resolución, etc; en lo más importante vaya xD
@Sexy MotherFucker si no recuerdo mal algún desarrollador comentó que a nivel efectos de partículas la PS2 en un primer momento le pasaba la mano a PS3 hasta que con los años aprendieron a sacarle jugo al cell. (Supongo que un poco como el EE de PS2 que en los primeros años no se sabía aprovechar).
@SuperPadLand no las partículas, sino precisamente los efectos de calor sobre el asfalto y cosas así. Era el de Gran Turismo, que le preguntaban que qué tal la Ps3, y decía que guay pero que echaba de menos la facilidad con la que hacían ciertos efectos en Ps2.

Que ojo que la PlayStation 2 es un diseño horrible con unos cuellos de botella tremendos, pero tenía esa extraordinaria fortaleza para efectitos, es lo que la salvaba; que esos juegos con jaggies, colores oscuros, de baja resolución, los BAÑABA en efectos de Framebuffer, partículas, etc, y al final todo quedaba mucho más orgánico que por ejemplo en Dreamcast, que tenía una salida de vídeo muy superior, y el 99% de su catálogo era 480p rock solid, pero sus juegos tenían un aspecto como más “seco” y “rígido”, no sé si me explico...
Este es un tema que me queda muy de cerca ya que precisamente esta clase de trucos es lo que me inspiró para dedicarme a la industria.

Los efectos comentados son básicamente tal cual los describe @ZedHqX4. En la mayoría de los casos no es que el motor gráfico invierta la geometría y se dibuje de nuevo, sino que el propio modelo tridimensional incluye duplicadas las secciones a reflejar.
El efecto se completa con un suelo semitransparente de modo que el color blending simula un "reflejo iluminado".
En caso de geometría animada sí que es necesario invertirla, ya que depende de la entrada de usuario.

Sobre Soul Reaver, el cambio de plano se consigue efectivamente mediante morph targets (únicamente 2 fases), y la interpolación de vértices completa el efecto. También utilizan colores por vértices para la transición.
La primera vez que estudié el efecto de color, pensé que sería de post-procesado, o que interpolarían entre 2 paletas, ya que me parecía bastante esfuerzo modelar todas las mallas siempre con dos grupos de colores, pero me imagino que lo habrán hecho porque así es más fácil realizar la interpolación.

El sistema de partículas en Soul Reaver es también sorprendentemente simple: usa una única textura circular semitransparente de partícula con varios posibles colores (no recuerdo si es que tiene múltiples paletas). Luego el blending aditivo hace que cuando muchas de las partículas estén cerca y superpuestas, el objecto formado tome un color más claro (a veces casi blanco), y una forma estilo metaball. Así es como se consiguen los efectos de las almas y algunas llamas (otras son sólo animación con texturas).
La parte "difícil" es la física que le da las animaciones a las partículas.

@Sexy MotherFucker personalmente los efectos que más me sorprendían por la creatividad con la que se usaban eran los de framebuffer. Esto incluye ejemplos como las transiciones de batalla de FFVII/FFVIII/FFIX, motion blur, cross fade, etc... Soul Reaver tiene uno cuando Raziel muere en el plano espectral (o si cae en el Lago de los Muertos). Crash Bandicoot 3: Warped tiene otro al atravesar un portal del tiempo.

Estos efectos se consiguen en general acumulando el framebuffer anterior y el actual con alguna modicación de uno, o ambos. Por ejemplo el motion blur siemplemente los mezcla con una proporción determinada. Al cabo de varios frames se consigue ese efecto de trailing de la imagen. En cross fade, es la propiorción la que cambia con el tiempo.
El efecto que no llegué a ver en PSX fue el depth of field, debido a que suele implementarse mezclando diferentes partes del framebuffer según la profundidad correspondiente del z-buffer (inexistente en PSX).

En cualquier caso vi muchos más de estos efectos en la era de PS2, donde ya se usaban con otros fines. FFX por ejemplo, renderizaba en algunas escenas dos veces cada frame con una ligera transformación, consiguiendo así un efecto de anti aliasing. Creo que éste no está presente en el HD remaster. En otros casos, usaba el framebuffer como textura en algunos elementos de la escena, consiguiendo efectos de "onda expansiva", o distorsión del agua.

Observad por ejemplo en el segundo 29-30 cómo se aplica al framefubber escalas y luego en 31-32, cómo la onda expansiva "se lleva" parte de la imagen:



Observad también cómo en 8:40-8:45, se usan efectos de framebuffer para simular "humo" sobre el enemigo:



(Si bien arriba muestro el HD-remaster, es bastante fiel a cómo se veían en PS2, lo cual me sorprendió para bien, dada la dependencia de estos efectos a la arquitectura de la consola).

En PS3 y consolas más modernas se consiguen estos efectos de forma completamente diferente. Por ejemplo, para efectos de reflexión y refracción se suele usar environment mapping (o si no ya ray tracing en las últimas).
Una técnica similar se usó en Tomb Raider y Tomb Rainer II, para el efecto del cristal de guardado, y de algunos objectos que reflejaban a Lara, respectivamente. En estos casos, en lugar de un environment map, se usaba el propio framebuffer como textura a distorsionar.

Por desgracia, toda esta creatividad gráfica parece ser un arte perdido ya a día de hoy.

Un saludo,

~Sky
@SkyBladeCloud gran informaión, por cierto has mirado alguna vez Rascal en PSX? Leí que tiene un efecto antialising simulado a base de hacer que cada frame oscile un pixel o algo así.
@SuperPadLand
No, pero John Burton (fundador del estudio y uno de los programadores del juego) tiene un video donde explica precisamente ese truco usando un prototipo del juego:



La idea es que al renderizar frames pares con una textura, y frames impares con otra muy similar. Al poder ejecutar el juego a 60fps el resultado final es el de una única superficie suavizada.
No sé exactamente cómo generarían ambas texturas para cada caso... Puede que de una misma textura original de mayor resolución, la cual fue reducida aplicando dos patrones de dithering distintos.

Un saludo,

~Sky
@SkyBladeCloud muchísimas gracias por el aporte, me has hecho entender aun mejor lo que ya sabía y me has descubierto cosas nuevas. Me parece también muy bonito que este tipo de cosas te motivasen para elegir una carrera, a través de los juegos ^^

A pesar de sus defectos me encanta la arquitectura de PlayStation 2 por eso mismo; porque es capaz de salvarse a sí misma de sus debilidades con sus propias y extraordinarias fortalezas, y es que 48 GB de ancho de banda para el framebuffer (24 lectura/24 escritura) es algo demasiado hardcore para una consola del año 2000, y con un poco de saber hacer y creatividad a través del FB sortear o disimular sus puntos flacos, a la par que ofrecer cosas muy difíciles de ver incluso en sistemas más potentes.

Me pregunto hasta dónde hubiese llegado este potencial si en vez de 4 hubiese contado con 8 MB de EDRAM.
@SkyBladeCloud me parece increíble el efecto de Rasca, lograron ofrecer un acabado visual a priori exclusivo de N64. Estaría bien saber la penalización en recursos del hardware, a priori si no te he entendido mal sólo se puede hacer con juegos a 60fps así que ya es un buen lastre que obliga a recortar la carga poligonal de escenarios y personajes.


@Sexy MotherFucker la eterna pregunta de casi todas las consolas: Que hubiera pasado sí la RAM fuera más. [+risas]
SuperPadLand escribió:No abunda este efecto por motivos obvios, pero hay juegos donde sí y me gustaría saber si alguien conoce como se hace ¿Renderiza dos veces? Es que me parece raro que la gris pueda permitirselo.

Algunos ejemplos, la fase de hielo de Ape Escape:




Ese Ape Escape que pones es la versión de PSP, ojo ahí!
@SuperPadLand
El truco podría hacerse a 30 fps, pero no iba a funcionar igual de bien: interambiar entre dos sets de texturas a menor velocidad quizás hubiera sido perfeptible. Me imagino que alguien con vista suficientemente rápida notaría el "cosquilleo" en las texturas. Habría que probar para saber hasta qué punto se nota.

La buena noticia es que este efecto, bien implementado, no tiene casi impacto en procesamiento: a la geometría hay que aplicarle una textura en cada frame igualmente, así que la única lógica adicional a implementar es decidir qué textura aplicar. En realidad ni siquiera hay que llevar la cuenta de los frames renderaizados, simplemente alternar entre una textura y otra en cada ciclo.
Donde sí debió haber habido un impacto negativo es en el uso de memoria, ya que es como si cada textura ocupase el doble. Sin embargo, Traveller's Tale es famoso por cómo de una misma textura en memoria pueden simular muchas aplicando diferentes tipos de transformaciones. Por ejemplo en Mickey Mania, varias de las animaciones "pseudo 3D" se consigen con una única textura y sólamente cambiando la paleta de ésta.
Puede que en Rascal hayan hecho algo parecido, y que texturas aparentemente distintas sean en realidad la misma escalada, rotada, etc...

Un saludo,

~Sky
@danuffo cierto es, pero podéis confiar en mi cuando os digo que esas habitaciones tienen reflejos (lo jugué hace pocas semanas [+risas] )
Uff es que en la gen de PS2/Gc y PSX/64 se curraban unos efectos de framebuffer brutales y que ya no se ven.

En PSX me vuelve loco los efectos en la invocaciones de FFVIII y IX, con distorsiones por todos lados, los reflejos en de agua en Spyro 3 y Crash 3, las transformaciones de Willian Birkin en RE2, y en N64 el agua de Wave Racing.

En PS2/GC las magias en invocaciones de FFX y XII, recuerdo la primera vez que vi las distorciones de la magia gravedad, o del fuego, la invocacion de Yojimbo, etc, la niebla volumetrica masiva de SH2 (cosa que no se vio ni por asomo en la generacion de PS3 y 360), las sombras de SH2, 3 y Luigis Mansion, el agua de Prince of Persia, Onimusha 3, Splash Down y Wave Racing BS, Diddy Kong Racing, Resident Evil Remake, Shadow of the Colosus, Mario Sunshine, o el pelo de Star Fox Adventures o de los colosos en Shadow of the Colosus.

Realmente se curraban los efectos, ahora siento que el agua de los videojuegos es mas falsa desde PS3, todos tienen el mismo efecto que parecen corta y pega, y lo peor, no generan olas "reales" al movimientos de los personajes, solo distorsiones planas, a diferencia del oleaje que generamos al movernos como en Prince of Persia, Onimusha 3 o RE Remake (donde en el remaster por cierto, el efecto del agua esta mejor trabajado en GC, porque el remaster vuelve al agua generica planta tipo gen PS3/PS4).
Hablando de reflejos, en Gex 2 también lo tiene al patinar sobre hielo, hay un trozo con hielo (algo escondido) en el primer televisor que parodia las series de dibujos animadas tipo Bugs Bunny por si alguien quiere verlo rápido. Imagino que habrá más zonas así a lo largo del juego.
Muchos reflejos en suelo y agua tanto en ps3 como en ps4 y que seguiremos viendo en la gen actual son realizado por el Screen Space Reflection que simplificándolo mucho hace un copia y pega de la parte de la pantalla a reflejar por lo que sólo refleja lo que se ve en pantalla y no lo que no haya en ella. Visto en perspectiva normal con la línea del horizonte en el centro da el pego pero si miramos hacia abajo deja de reflejar cosas. Otro problema es que las extremidades del personaje que manejamos se solapan con el fondo que debería reflejarse:

Imagen

¿Por qué se usa tanto? Porque es muy "barato" en términos de proceso de renderizado y da el pego en la mayoría de situaciones que miramos al frente sin ángulos raros. En la generación de ps1 y ps2 para hacer reflejos tocaba renderizar sí o sí los polígons ya fuese todo el escenario en modo espejo o sólo algunas cosas como las piernas y luces en los NBA o las luces de los coches en juegos de conducción.
En ps2 se comenzó a usar otra técnica cuyo nombre no recuerdo, en Gran Turismo 3 concretamente, donde se renderiza de manera secundaria el escenario con los detalles más visibles y se reflejan en la chapa del coche en tiempo real, muy impresionante y se usa en multitud de juegos de conducción incluso en el GTA V.
En Driveclub van más allá y renderizan de manera secundaria casi cada detalle del escenario incluídos los coches contrarios lo cual acaba siendo una especie de raytracing limitado.
Me acuerdo en Meristation cuando un subnormal dijo que los reflejos en Driveclub eran screen space reflections cuando claramente se veían cosas reflejadas que no aparecían en pantalla o que estaban justo detrás de la cámara al igual que pasaría con un espejo.

Aquí explican este efecto, donde pone envirenment cubemap:

https://www.adriancourreges.com/blog/20 ... ics-study/
Paposi escribió:Muchos reflejos en suelo y agua tanto en ps3 como en ps4 y que seguiremos viendo en la gen actual son realizado por el Screen Space Reflection que simplificándolo mucho hace un copia y pega de la parte de la pantalla a reflejar por lo que sólo refleja lo que se ve en pantalla y no lo que no haya en ella. Visto en perspectiva normal con la línea del horizonte en el centro da el pego pero si miramos hacia abajo deja de reflejar cosas. Otro problema es que las extremidades del personaje que manejamos se solapan con el fondo que debería reflejarse:

¿Por qué se usa tanto? Porque es muy "barato" en términos de proceso de renderizado y da el pego en la mayoría de situaciones que miramos al frente sin ángulos raros.


Y se ve horrible [carcajad], los reflejos de PSX y PS2 son mas bonitos. Mejor reflejos artisticos que tecnologicos.
SkyBladeCloud escribió:...El efecto que no llegué a ver en PSX fue el depth of field, debido a que suele implementarse mezclando diferentes partes del framebuffer según la profundidad correspondiente del z-buffer (inexistente en PSX)....


Puedes jugar o verte como se mueve el Vagrant Story. PAra mi unos de los mejores portentos tecnicos de la consola, en algunas escenas en tiempo real intentan como emular ese efecto como duplicando la geometria o algo asi, la verdad no se como lo logran. Ademas de ese rim light que ahora se ve muy tosco pero en un crt de la epoca se ve de lujo [boing]

En este video se ve bien, que tratan de desenfocar los objetos en primer plano y enfocar la ventana con el sujeto. Y en otras escenas lo hacen tambien.

33 respuestas