La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

La informática gráfica en los sistemas de entretenimiento doméstico.

Presentaciones similares


Presentación del tema: "La informática gráfica en los sistemas de entretenimiento doméstico."— Transcripción de la presentación:

1 La informática gráfica en los sistemas de entretenimiento doméstico.
Miguel Ángel Expósito Sánchez

2 Breve evolución de los s.e.d
1889 Fusajiro Yamauchi establece la Marufuku Company que fabricaba y distribuía “Hanafuda”, unas cartas de juego japonesas. En 1907, Marufuku empieza a fabricar las llamadas “cartas del oeste” y la empresa cambia su nombre a “The Nintendo Playing Card Company” en “Nintendo” significa “Dejar la suerte en manos del cielo”.

3 Breve evolución de los s.e.d
1947 Akio Morita y Maseru Ibuka crean la “Tokio telecommunications Engineering Company”, después de ver un grabador de cassette de fabricación americana, deciden que su compañía debe empezar a fabricarlos, en 1952 alcanzan un capital de dólares, suficiente como para ser la primera empresa no norteamericana en licenciar el transistor, con lo que fabricaron la primera radio de bolsillo a pilas, que fue un éxito en Japón, así que los fundadores Ibuka y Morita empezaron a observar la posibilidad de vender sus productos en los estados unidos y Europa. Conscientes de que la traducción al inglés del nombre de su compañía es demasiado complicada para los angloparlantes modificaron la palabra Latina “Sonus” (sonido) que se quedó en SONY, una palabra que no tiene ningún significado.

4 Breve evolución de los s.e.d
1954 El veterano de guerra estadounidense David Rosen observa la popularidad de las máquinas mecánicas de juegos que funcionan con monedas en las bases militares estadounidenses en Japón, así que crea SErvice GAmes para exportar estos juegos a Japón. En los 60, Rosen decide crear sus propios juegos a monedas, así que compra una fabrica de gramolas de Tokyo y una empresa de máquinas tragaperras. El nombre SEGA, abreviatura de “SErvice GAmes” se estampa en todos los juegos que Rosen produce, y finalmente Rosen lo adopta como su nombre de empresa.

5 Breve evolución de los s.e.d
En 1971 un estudiante del MIT diseña el primer juego asistido por computador. La primera máquina recreativa a monedas, computer space. No tuvo éxito debido a que ofrecía una jugabilidad confusa. Además los ordenadores eran muy caros por aquella época. Pero la puerta a los juegos asistidos por computador ya estaba abierta.

6

7

8 Breve evolución de los s.e.d
1974 Atari lanza “PONG”, el primer sistema de entretenimiento digital doméstico, presenta un juego muy simple y tampoco obtiene muchas ventas.

9

10

11 Breve evolución de los s.e.d
1985 Nintendo lanza NES (Nintendo Entertainment System) o Famicom, que introducía como principal novedad (ya presente en alguna consola anterior) la presencia de cartuchos intercambiables. Fue la consola de 8 bits más exitosa de la época en Asia y Norte América, vendiendo 60 millones de unidades en todo el mundo.

12

13 Breve evolución de los s.e.d
En los sucesivos años la agresiva competencia entre fabricantes llevó a la aparición de muchos otros sistemas de videojuegos domésticos de 16, 32, 64 y 128 bits que inundaron el mercado con mayor o menor éxito hasta hoy. Con la aparición de nuevas tecnologías y la mejora considerable de la electrónica ha habido un antes y un después en la filosofía de trabajo y sobretodo en la generación de gráficos en tiempo real.

14 Desarrollo de aplicaciones para consolas
¿Cómo llega un título a una plataforma de entretenimiento doméstico? Normalmente la empresa desarrolladora del software compra al fabricante de la plataforma elegida un kit de desarrollo oficial que incluye un compilador para la CPU del sistema, las librerías necesarias, la documentación de las mismas (API) y una consola de prueba.

15 A la derecha la T10000, una PlayStation 2 de desarrollo incluida en el Kit de Desarrollo Oficial “Sony Computer Entertainment” para PS2. Tiene más memoria RAM que una PS2 comercial, 3 discos duros, tarjeta de red, pesa 13 Kg y cuesta €. Les sirve a los desarrolladores para probar el software sobre la propia máquina. A la izquierda una PS2 comercial.

16 Presentación Vamos a analizar el hardware que daba soporte a los gráficos de una consola del “Antes” y de una del “Después” en profundidad para poder establecer comparaciones. También veremos la forma de generar gráficos con estos dispositivos.

17 Sega MegaDrive Conocida en Japón y EEUU como “Genesis”, la Sega MegaDrive fue lanzada en 1989 siendo el primer sistema de videojuegos de 16 bits reales. Vendiendo 1.6 millones de unidades en 1990.

18 Características técnicas
CPU: Motorola Coprocesador: Zilog RAM: 64 Kbytes ROM: 1MByte Sonido: Yamaha YM2612 con 6 canales FM y 2 canales PCM. Generador de ruido programable de 4 canales Texas Instruments SN76489 Memoria de sonido: 8KBytes

19 Otras características
Implementa DMA (la CPU puede solicitar al coprocesador copiar de una zona a otra grandes cantidades de datos (p.ej, cargar gráficos a la memoria de vídeo) en paralelo con la ejecución del programa). La CPU NO tiene unidad de punto flotante, lo que junto a la velocidad hace que sea imposible (o muy complicado) implementar entornos 3D.

20 Gráficos Procesador dedicado (VDP = Video Display Processor)
VRAM: 64 Kbytes Sistema de 4 paletas, con 512 colores representables (log2 512 = 9 bits), 16 colores por paleta, un total de 16*4=64 colores simultáneos (memoria dedicada “Colour RAM”).

21 Sistema de coordenadas
El centro de coordenadas está en la esquina superior izquierda de la pantalla con la dirección del eje y invertida. Sistema basado en celdas = 1 área de 8x8 píxeles.

22 Resoluciones 40x28 celdas = 320x224 píxeles

23 Planos 2 planos deslizantes de tamaño configurable:
32*32, 32*64, 32*128, 64*32, 64*64, *32 (en celdas)

24 Sprites ¿Qué es un sprite?
En terminología de videojuegos Cualquier objeto que aparece en pantalla (animado o no) que no pertenece al fondo. Por ejemplo el personaje principal, items que hay que recoger, etc…

25 Sprites Hasta 64 sprites en pantalla (en modo 256x224) y hasta 80 en modo 320x224. Los sprites también son de tamaño configurable. 8*8, 8*16, 8*24, 8*32 16*8, 16*16, 16*24, 16*32 24*8, 24*16, 24*24, 24*32 32*8, 32*16, 32*24, 32*32

26 ¿Qué podemos hacer con todo esto?
Todos estos recursos definen las características de los juegos de la época (en 2D, la gran mayoría de plataformas o de vista aérea). El VDP accede a la VRAM (memoria de simple puerto) y a las tablas de planos y de sprites y genera la señal de video que aparece en el monitor.

27

28 Limitaciones Debido a su ausencia de unidad de punto flotante y escasos recursos (memoria, velocidad….) no es lo más adecuado para dibujar primitivas ni aplicar transformaciones que requieran de cálculos en punto flotante (como rotaciones), por lo que prácticamente el 100% de los gráficos de los juegos de esta plataforma están pre-renderizados y simplemente se disponen en pantalla según convenga.

29 Más limitaciones La única transformación que el VDP puede aplicar sobre los sprites es la reflexión ya que no supone más que una inversión en el proceso de lectura de la memoria para generar la señal de vídeo. La consola no dispone de SO, con lo que el programador debe conocer muy bien la máquina para actuar a bajo nivel sobre direcciones de memoria.

30 Interrupciones La consola dispone también de interrupciones programables, entre ellas la de sincronismo horizontal y la de sincronismo vertical, producidas por el VDP. La señal de vídeo generada para el dispositivo de tipo raster contiene grandes márgenes fuera del área de exploración visible para evitar errores por retrasos por cuestiones de temporización.

31 Esquema de la rasterización de la memoria de vídeo.
Cada una de las líneas que forman la imagen en pantalla no es más que una secuencia de píxeles de colores, que son generados por el VDP partiendo del contenido de la VRAM. El área marcada con Display Screen es el área de exploración visible (lo que vemos en pantalla). El resto se usa para prevenir errores y no contiene información del color.

32 El VDP por dentro Como ya hemos dicho tenemos 2 planos deslizantes (para los fondos del juego) y otro plano donde aparecen los sprites.

33 IGNORAR EL PLANO “WINDOW”

34 Prioridad Esto no significa que los sprites aparecen siempre por encima del plano A y este siempre por encima del B. Veremos que cada celda que compone un plano o cada sprite tiene un bit de prioridad que le dirá al VDP si dibujarlo encima del resto de cosas.

35 Filosofía de trabajo No existe una VRAM como una matríz rectangular de dimensiones iguales a la resolución donde vamos escribiendo píxeles, sino que trabajamos con: Una lista de sprites, que contiene las dimensiones del sprite (en celdas), sus coordenadas en pantalla, su prioridad de dibujado, la dirección en la VRAM en la que empiezan sus gráficos, el número de paleta que contiene sus colores y dos bits indicando si el sprite estará reflejado horizontal y/o verticalmente. Dos listas de celdas (una para cada plano), que contiene para cada celda la dirección en la que está almacenada en la VRAM, su prioridad y el número de paleta que contiene sus colores. Ambas listas, como veremos se almacenan junto a los gráficos en la VRAM.

36 Restricciones de memoria
Al tratarse la VRAM de una memoria de simple puerto, no pueden acceder concurrentemente a ella la CPU y el VDP, por tanto durante la generación de una línea de vídeo las direcciones de memoria correspondientes a la VDP no son accesibles por la CPU. Durante los intervalos en los que se genera el margen fuera del área de exploración visible la CPU puede acceder continuamente a la VRAM. Si se accede a la VRAM durante un intervalo de tiempo “prohibido”, la CPU se bloquea (mediante una interrupción) hasta que la memoria de vídeo quede libre. (del orden de nanosegundos)

37 Resumiendo Cada plano se divide en celdas de 8x8 y está asociado a una lista de celdas, que contiene en orden una lista de estructuras que contiene información sobre cada una de las celdas que componen el plano.

38

39

40 Si escribimos esto en la tabla de celdas del plano …
Nº celda Prioridad Paleta 1 3 …. 2 4

41

42 Como podemos ver, para el tronco hemos utilizado varias veces la misma celda de la VRAM (la número 7) y para los espacios vacíos hemos dejado a propósito la primera (número 0) en blanco.

43

44 Deslizamiento Como es un plano deslizante podemos moverlo como queramos (tanto horizontal como verticalmente) por nuestra ventana de mundo. ¿Qué ocurrirá cuando lleguemos a los límites del plano?

45

46 Scrolling de juegos El juego controla en todo momento la posición de los planos escribiendo en la memoria de scroll. Si se combinan los dos planos a la vez se puede crear efecto de profundidad visualizando en el de menor prioridad un plano lejano (montañas, …) y en el de mayor prioridad uno cercano (las plataformas) y moviéndolos a distinta velocidad. Sí, la megadrive es una máquina puramente 2D.

47 Animación de fondos Se pueden crear también fondos animados simplemente reescribiendo la tabla de celdas de un plano modificando sólo las que se ven afectadas de un fotograma al siguiente.

48

49 Sprites Con los sprites ocurre de forma similar, se escribe una entrada en la tabla de sprites por cada uno de ellos indicando las coordenadas x e y que tendrá en pantalla y algunos atributos más. Los gráficos del sprite deben estar almacenados en una secuencia concreta según sus dimensiones (en celdas).

50

51 Se escribe en la entrada de la tabla el número de celda en la VRAM que contiene la primera celda de la secuencia y el VDP dibuja el sprite en las coordenadas que le demos en la entrada. La animación se consigue juntando varias secuencias (una por fotograma de animación en la VRAM y reescribiendo en la entrada del sprite a animar el número de celda de inicio para la secuencia del siguiente fotograma).

52

53 Efectos de transparencia
No se pueden crear efectos de fade (desvanecimiento) ya que ni las paletas ni el VDP manejan transparencia. Para simular el efecto se reescriben los colores de la paleta a la que está asociado el sprite o conjunto de celdas a desvanecer y se funde con un fondo sólido.

54 Juegos de plataformas Básicamente consisten en cargar todos los gráficos necesarios (sprites, fondos…) desde el cartucho de ROM hasta la VRAM (usando normalmente la capacidad DMA de la consola), y mantener actualizadas las tablas de sprites y celdas en todo momento según las demandas del juego.

55 El problema de los mapas
Los mapas (las pantallas) que observamos en los juegos de plataformas sólo son una gran composición de unas pocas celdas que se repiten muchas veces. Los mapas (uno diferente por cada nivel del juego) son fijos y se almacenan en grandes matrices.

56 El problema de los mapas
Pero existe un problema!!, un mapa es muy grande (del orden de 2300 celdas de ancho) y los planos deslizantes que tienen que mostrarnoslo todo según avanza la cámara son demasiado pequeños (hemos dicho al principio que el máximo de 128 celdas de ancho).

57 La solución Solución: El juego aprovecha el efecto que tiene el desbordamiento del plano en pantalla (que muestra a la parte derecha lo que ha quedado oculto a la izquierda).

58 Carga en el plano la zona del mapa que se ve.

59 Carga en el plano la zona del mapa que se ve.
Cuando se mueve la cámara, calcula cuando se va a llegar a los límites del plano y reescribe los números de celda que ya han quedado ocultos por la ventana de mundo en la parte contraria a aquella por la que nos estamos saliendo tomando nuevos valores de la matriz del mapa.

60 ¿Qué ocurre si no se hace esto?
Dato curioso: En el juego Super Mario Bros (NES – 1982) estaba previsto que al terminar el mapa y llegar al final de la pantalla se tocase el mástil de una bandera. Pero no se tuvo en cuenta que el personaje podía saltar más de lo previsto y saltarse el mástil, con lo que no se detectaba esa colisión que finalizaba el nivel.

61 El juego dejaba de controlar el desbordamiento del plano y por mucho que avanzásemos siempre pasaba tras de nosotros el mismo fondo (como en los dibujos animados cutres). Finalmente se acababa el tiempo y morías.

62

63 Implementación de antialiasing
Aquí también se producen efectos de aliasing ya que aunque los gráficos estén prerrenderizados trabajamos a una resolución considerablemente baja y conviene suavizar la imagen en pantalla.

64 El problema y la solución
Problema: El sistema no se puede permitir realizar tantos cálculos y mantener una velocidad de 25 fps. Solución: Aprovechar el efecto de suavizado producido en los monitores CRT que reciben una señal de vídeo compuesto.

65 ¿Cómo funciona? En una señal de vídeo compuesto (PAL o NTSC normalmente), el vídeo y los sincronismos van en la misma señal. En el estándar PAL la imagen tiene 625 lineas, en su versión entrelazada primero se transmiten las líneas impares (esto se llama odd frame) y después las pares (even frame), de manera que sólo se visualiza la mitad de las líneas totales en cada pasada.

66 Barrido entrelazado Campo impar (50 veces por segundo)
Campo par (50 veces por segundo) Fotograma completo (25 veces por segundo).

67 Y que?? Pues si tenemos que generar una señal de video de 625 líneas y nuestra resolución es de 320x224 o 256x224, si tenemos en cuenta que la imagen no ocupa toda la pantalla y que tiene 177 líneas de margen superior e inferior nos quedan 625 – 224 = 401 líneas útiles de imagen, que es justo el doble de la resolución vertical (224).

68 Modos de barrido raster del VDP
Si el modo de entrelazado del VDP está desactivado, se transmiten las lineas en orden ascendente de coordenada y El modo entrelazado 1 del VDP transmite las mismas lineas en el fotograma par e impar, con lo que cada pixel tiene una altura de 2 líneas en pantalla. En modo entrelazado 2 cada celda consiste de 8x16 píxeles, con lo que la resolución vertical se dobla y en cada campo se transmite una línea par/impar.

69

70 Conclusión El modo entrelazado 1 ofrece una mayor sensación de suavidad ya que el ojo humano tiende a fundir las líneas del fotograma par e impar (las ballenas no juegan a la MegaDrive). El modo entrelazado 2 hace lo mismo pero con mayor resolución.

71

72

73 Emulación La historia de los videojuegos ha estado siempre ligada a una muy agresiva competencia. Veamos ahora cómo el buen hacer de los programadores de la época explotaba esta limitada máquina (que en el momento de su lanzamiento fue la mejor técnicamente) para crear títulos que fueron superventas y que fueron algo más que simples juegos en dos dimensiones. Veremos ahora imágenes de varios juegos y un volcado de la memoria gráfica.

74 Logotipo de SEGA A la derecha vemos que el logotipo ha sido previamente fraccionado en secciones de 8x8 (en la etapa de desarrollo del juego) y ahora ha sido cargado en forma de celdas dentro de la VRAM (imagen derecha). Mediante la escritura de los valores correctos en la tabla de celdas de uno de los planos podemos verlo alineado correctamente en pantalla (imagen de la izquierda). También vemos que sólo se usa 1 de las 4 paletas que sólo contiene los colores usados por el logo. (Y algunos otros tonos usados para un posterior fundido).

75 Sonic 3 – Sega 1993 Visión de los planos en movimiento aplicada a un juego de plataformas en 2D, en la memoria gráfica podemos ver arriba las celdas correspondientes a la animación de las salpicaduras de agua producidas por Sonic al avanzar. Abajo vemos unas líneas verticales amarillas, esto son los datos de la tabla de celdas, almacenados también en la VRAM, que el emulador interpreta como gráficos. Podemos ver también las 4 paletas.

76 Sonic 3 – Sega 1993 Efecto Pseudo-3D creado al reproducir una sencilla animación correspondiente al suelo (sólo se puede girar en las esquinas), con lo que la animación consiste en girar a la derecha y avanzar una casilla, los movimientos inversos reproducen la animación al revés. Las bolas azules están almacenadas en la memoria a varios tamaños, y su posición está precalculada. A la derecha se puede ver el suelo, con colores incorrectos ya que el emulador no lo asocia a su paleta correcta.

77 El Rey León – Disney Interactive & Virgin 1994
Los juegos derivados de películas de Disney tenían una excelente animación basada en muchos fotogramas. En esta escena mostrada en “travelling” los animales de la estampida se van acercando hasta que saltan por encima de la cámara, mientras que las paredes del desfiladero avanzan al ritmo de la cámara. Además cada animal avanza a una velocidad diferente (recordamos que no puede hacer escalados), con lo que hay que tener una animación diferente para cada velocidad. Lo ingenioso de esta técnica es contar con varias tablas de celdas y sprites y elegir una para que sea la activa en cada momento. A la derecha se pueden observar varias áreas de datos.

78 Fundidos (El Rey León) Al pulsar PAUSA la pantalla se oscurece, lo cual se traduce en reescribir los colores de todas las paletas con su mismo valor pero más oscuro (restándole un porcentaje de cada componente rojo, verde y azul). Todos los gráficos al estar asociados a una u otra paleta aparecen más oscuros. Para hacer que algo se desvanezca se va fundiendo su paleta con el color del fondo (un fondo todo del mismo color).

79 Efecto 3D – Sonic 2 – Sega 1992 Esta animación consigue un excelente efecto 3D mientras el personaje avanza por este canal, los gráficos en la VRAM son demasiado difíciles de ver, pero el canal está compuesto por “bloques”, que se corresponden con varias tablas de celdas, cada una asignada a una o varias posiciones distintas de cada tramo.

80 Sprites – Dragon Ball Z – BANDAI 1994
Aquí se pueden observar mejor los personajes que aparecen en pantalla en la VRAM dado que están alineados, cada uno de ellos es un SPRITE (excepto el del fondo), en la imagen derecha, en la parte derecha vemos una lista de sprites (Sprite Liste) que contiene las entradas de la tabla de Sprites (las 10 primeras) en el siguiente formato: Coordenada X, Coordenada Y, Bits de reflexión prioridad y dimensiones, Nº de paleta, Posición de la VRAM donde empiezan sus gráficos.

81 Sony PlayStation Pasó a la historia por haber sido diseñada con el hardware más apropiado, proporcionando llamativos gráficos en 3D y un sonido impecable a buen precio. Lanzada en 1994 vendió 100 millones de unidades. Su popularidad le llevó a dar origen a lo que se conoció como “Generación PlayStation”,

82 Características técnicas
CPU: MIPS con tecnología licenciada por SGI – 1Kb de caché. La CPU contiene el Geometry Transformation Engine, encargado de transformar los gráficos 3D en 2D. polígonos sólidos por segundo. polígonos texturizados por segundo.

83 Características técnicas
DDE: Data Decompression Engine (Un chip encargado de descomprimir texturas, vídeo y sonido en MPEG-1). Conectado directamente al bus de CPU, los datos descomprimidos se envían directamente al procesador gráfico via DMA.

84 Características técnicas
GPU: Graphics Processing Unit, un chip que maneja todos los gráficos en 2D, incluidos los 3D ya transformados por el GTE. 16,7 millones de colores. Resolución: de 256x224 a 640x480 Frame Buffer programable Paletas llamadas Color Lookup Tables

85 Características técnicas
4000 sprites de 8x8 píxeles con escalado y rotación individuales. Emulación de varios fondos simultáneos para scrolling. Texturas mapeadas. Sonido: ADPCM con 24 canales con efectos de sonido.

86 Características técnicas
Memoria: 2Mb de RAM de propósito general. VRAM: 1 Mb Sonido: 512 Kb Sistema operativo: 512 Kb

87 Frame Buffer Aquí si que tenemos una memoria gráfica de tipo “matriz” donde vamos escribiendo (esto lo permiten las memorias de doble puerto). La psx tiene una VRAM de 1024x512 píxeles con una profundidad de 16 bits por píxel. Este frame buffer está dividido en 32 áreas virtuales o Tpages (Páginas de textura) de 64x256 píxeles cada una.

88

89 El FrameBuffer se utiliza para guardar las texturas e imágenes, y parte de él está reservado para el Front-Buffer, o lo que es lo mismo para lo que vemos en pantalla. Si usamos doble buffer, entonces también tendremos el Back-Buffer dentro del frame-buffer.

90

91 TIM’s Sony creo un formato gráfico, para almacenar la información gráfica (como un bmp), y además incluir información extra : Profundidad de color (4,8,15 bits) Posición dentro del frame buffer (x,y) Anchura y altura de la imagen. Coordenadas del CLUT El CLUT es una tabla, guardada también en el frame-buffer, que contiene la paleta de colores en los formatos de 4 y 8 bits (COLOR LOOKUP TABLE).

92 Sprites Los tamaños de un sprite pueden ser:
256x256 píxels (15 bits/píxel) 128x256 píxels (8 bits/píxel) 64 x256 píxels (4 bits/píxel)

93

94

95 Limitaciones La PSX TAMPOCO tiene unidad de punto flotante (en las librerías oficiales viene una implementación por software), ya que todas las operaciones gráficas que requieren cálculos en punto flotante las hace un procesador separado.

96

97 Primitivas gráficas La GPU dibuja primitivas en 2D, se le pasa una lista enlazada de primitivas que contiene: Código de primitiva (círculo, línea …) Parámetros de la primitiva (orígen, destino …) Se le da un puntero al primer elemento de la lista y la GPU dibuja en el back-buffer las primitivas en el orden en que están dispuestas (algoritmo del pintor). Por lo tanto los algoritmos de dibujado de primitivas están implementados en la memoria interna de la GPU. En cada fotograma, la GPU vuelca el contenido del back-buffer al front-buffer, que posteriormente es leído para generar la señal de vídeo.

98

99

100


Descargar ppt "La informática gráfica en los sistemas de entretenimiento doméstico."

Presentaciones similares


Anuncios Google