SlideShare una empresa de Scribd logo
Diego Ruiz | diego@dedalus-software.com.ar 
No es novedad escuchar que la tecnología 
avanza rápidamente, y este dicho, en el 
mundo 3D, está lejos de ser una excepción. Quien no haya jugado a 
un videojuego en los últimos dos años se sorprenderá muchísimo al ver cuánto 
han cambiado. Y es que el mercado de los videojuegos mueve enormes sumas de 
dinero, y estas cifras justifican inversiones gigantescas en desarrollo de tecnología relacionada. 
En 1992 salieron al mercado Wölfestein 3D y Alone in the Dark, dos exponentes de títulos en tres 
dimensiones que marcarían el comienzo de una época. Claro que aquellos juegos distan mucho de lo que 
podemos encontrar hoy en día en las consolas de última generación, pero experimentar la sensación que 
nos otorgaban hacía evidente que la era de los juegos 2D estaba llegando a su fin. 
Desde el punto de vista técnico, un juego 3D (si bien comparte muchas de las características de uno 2D) 
es un mundo nuevo, especialmente en el apartado gráfico. Los personajes ya no son sprites sino modelos 
conformados por polígonos y recubiertos de texturas; los escenarios dejaron de ser mapas armados a partir 
de pequeños bitmaps, y ahora son auténticas y complejas mallas usualmente ordenadas por algoritmos de 
particionamiento espacial como el BSP (Binary Space Partitioning); y muchos elementos nuevos entran en 
escena, como luces, materiales, sistemas de partículas 3D, etc. 
En esta nota, introduciremos algunos de los conceptos más importantes que maneja la tecnología 3D y veremos 
su aplicación al desarrollo de videojuegos. También analizaremos cuáles son los dispositivos que hoy se pueden 
encontrar en el mercado y cuáles son las consolas de videojuegos que anhelaremos en unos pocos meses. 
Pero, para lograrlo, vamos a ver un poco cómo fue avanzando este mercado, sumergiéndonos en la historia 
reciente de los adaptadores de video. 
24 POWERUSR
UN POCO DE HISTORIA 
LA IMPORTANCIA DE LAS PLACAS DE VIDEO EN NUESTRAS COMPUTADORAS SE HA IDO INCREMENTANDO CON EL 
PASO DEL TIEMPO. EN UN PRINCIPIO, LAS MEJORAS ESTABAN RELACIONADAS CON LA CANTIDAD DE COLORES 
QUE PODIA OFRECER EL DISPOSITIVO Y/O CON LA RESOLUCION. SIN EMBARGO, POCO A POCO, ESTOS ELEMENTOS 
FUERON ADQUIRIENDO MAYOR FUNCIONALIDAD Y SE HAN HECHO FUNDAMENTALES PARA LOS JUEGOS. 
C 
Escribir un byte en ella significaba modificar el color de 
un pixel en nuestro monitor. 
Luego, los dispositivos de video comenzaron a ganar in-teligencia, 
fruto de la necesidad de crear aplicaciones ca-da 
vez más complejas (principalmente, juegos). Dejaron 
de ser estúpidos esclavos que sólo leían una porción de 
su memoria para generar la señal correspondiente por el 
puerto de salida al monitor. 
Comenzaba la era de las placas aceleradoras 3D. Se denomi-naron 
vagamente aceleradoras, debido a que implementa-ban 
—en mayor o menor medida— operaciones en hardware 
que, clásicamente, se hacían por software, razón por la cual 
las aplicaciones 3D se ejecutaban con más velocidad. 
EL INICIO DE LA ERA 3D 
En estas páginas pretendemos remitirnos más a las genera-ciones 
y arquitecturas de dispositivos que a los modelos es-pecíficos 
que cada empresa saca al mercado cada seis me-ses. 
Sin embargo, existen hitos que son marcados específi-camente 
por una u otra firma, y que no pueden quedar al 
margen. Un ejemplo de lo expresado es el caso de la difunta 
compañía 3Dfx Interactive (ver recuadro). 
La primera generación de procesadores de video inteligentes 
consistió en la implementación de un grupo de operaciones 
prefijadas por medio de las cuales se procesaba una serie de 
vértices que luego finalizarían representando polígonos en 
pantalla, materia prima de todo objeto 3D. 
Dicha inteligencia fue “vendida” comercialmente a los usua-rios 
finales por parte de NVIDIA bajo el nombre “motor de 
transformación e iluminación” (Transformation and Lighting), 
más conocida popularmente por su abreviatura, TnL. 
Para comprender un poco mejor cómo funciona este tipo 
de dispositivos, es conveniente introducir el modo en que 
PLACAS DE VIDEO 
uando las computadoras personales irrumpieron 
en el mercado, el adaptador más popular era el 
MDA (un fabricante muy popular de aquel enton-ces 
era la empresa Hercules), un dispositivo que ofrecía 
una resolución de 720x350 y era monocromático. 
Luego, llegó el momento del color. Al comienzo, con dis-positivos 
modestos como el clásico CGA (Color Graphics 
Adapter), que brindaba tan sólo cuatro colores con una 
resolución de 320x200 (alcanzaba 640x480 en modo mo-nocromático). 
Y tras él, el dispositivo EGA (Enhanced 
Graphics Adapter), que ofrecía 16 colores en una ya de-cente 
resolución de 640x350. 
Sin embargo, muchas personas conocieron el color ya 
con el popular VGA (Video Graphics Adapter) y sus con-secuentes 
mejoradas versiones (SVGA, XGA, SXGA, etc.). 
El adaptador VGA ofrecía 256 colores en resolución de 
320x200; el SVGA (Super Video Graphics Adapter), por 
su parte, dependía de la cantidad de memoria que poseía 
la placa. A partir de este punto, ingresamos en la historia 
reciente de las placas de video. 
LA MEMORIA DE VIDEO 
Cuando las placas SVGA eran las más populares dentro 
de nuestros flamantes gabinetes mini tower, la caracte-rística 
más importante del dispositivo era la cantidad de 
memoria que poseía. A mayor memoria, mayor cantidad 
de colores y mayor resolución para deleitarnos la vista. 
Con 1 MB de RAM en nuestra placa de video, podíamos 
llegar a una resolución de 1024x768 con profundidad de 
256 colores y ser el orgullo (nerd) de la cuadra. En aquel 
entonces, la memoria de video se utilizaba exclusiva-mente 
como video buffer, es decir que era una represen-tación 
lógica de lo que se veía en pantalla. 
ATARI 2600: PROGRAMAR SIN VIDEO BUFFER 
La consola de juegos más popular de Atari fue la gloriosa Atari 2600. Una de las razones 
de su éxito fue su bajo costo de fabricación. En aquella época, la memoria era muy 
cara, y disponer de un video buffer en la consola incrementaba 
notablemente su precio. El total de memoria con que contaba el 
sistema para dibujar en pantalla era suficiente sólo para 
dos líneas de video. Los programadores debían 
ingeniárselas para escribir, de modo sincronizado, el 
barrido vertical, y así crear en pantalla la imagen que el 
juego necesitara en cada momento. La consola Atari 2600 
tenía un procesador 6507 de 8 bits (1,19 MHz), 128 bytes de RAM, 
4 KB máximos de ROM, una resolución en pantalla de 192x160 
pixeles y 16 colores (4 simultáneos en pantalla). El primer modelo 
salió a la calle en 1978, y el último —el Atari 2600 Jr.—, en 1986 (aunque 
recientemente se lanzó, para los nostálgicos, una pequeña consolita Atari 
2600 dentro de su clásico joystick con diez juegos incluidos). 
LA VCS (VIDEO 
COMPUTER SYSTEM) 
ATARI 2600. 
POWERUSR 25
end). Para esto lanzan diversos modelos 
que se ajusten a la necesidad y el bolsi-llo 
de cada usuario. 
En el mercado high end, el modelo de 
vanguardia de NVIDIA es la serie 
GeForce 6800 (teniendo como mayor 
exponente la versión Ultra), mientras que 
3DFX INTERACTIVE 
3Dfx Interactive fue una empresa 
dedicada al desarrollo de dispositivos 
de video 3D. Signo del tiempo en el 
que vivimos, fue un ejemplo notorio de 
lo efímero que es el éxito; muchos no 
la vieron venir. Se formó en el año 
1994, y en 1998 ya era dueña casi total 
del mercado de aceleradoras 3D. 
Lo curioso del caso es que 3Dfx, en un 
principio, ofrecía un dispositivo que 
era un complemento para el adaptador 
de video principal del sistema. Por lo 
tanto, una PC con los modelos de 
placas Voodoo Graphics o Voodoo2 
requería una placa de video 
convencional para realizar el trabajo 
en escritorio de Windows. Además, 
sólo aceleraba aplicaciones en 
pantalla completa que hicieran uso de 
su API de programación (Glide) y 
ofrecía una profundidad de colores de 
únicamente 16 bits. 
Aun así, 3Dfx Interactive se convirtió 
en el líder del mercado y entró en la 
ATI ofrece su línea RADEON X850 (cuyo 
tope es la poderosa XT Platinum Edition). 
Si bien no es objeto de este artículo espe-cificar 
con gran detalle los modelos de 
estos fabricantes, en la tabla de esta 
página podemos ver las opciones de me-jor 
rendimiento propuestas por ambos. 
fase más compleja: mantenerse en la 
cresta de la ola. 
A mediados de 1999 sacó al mercado 
el modelo Voodoo3, que arremetía 
contra la mayor cantidad de defectos 
que se les podía achacar a los modelos 
anteriores, pero ya no estaba solo: 
NVIDIA poco a poco se convertía en 
una espada de Damocles y, 
silenciosamente, ganaba mercado con 
sus productos TNT y, luego, TNT2. 
La Voodoo3 vendió relativamente bien, 
pero no tanto como se esperaba. 3Dfx 
intentó recuperarse con una nueva 
familia de productos: Voodoo4 y 
Voodoo5. Pero en aquel momento, 
NVIDIA había finalizado su flamante 
GeForce: la suerte estaba echada. 
3Dfx Interactive tomó malas 
decisiones estratégicas y tuvo atrasos 
considerables en el lanzamiento de 
sus últimos modelos. Finalmente, en 
2000 fue comprada por NVIDIA, con lo 
cual finalizó su ciclo de vida. 
PLACAS DE ULTIMA GENERACION 
Característica NVIDIA 6800 ULTRA ATI RADEON X850 PE 
Interfaz de memoria 256 bits 256 bits 
Cantidad de memoria 512 MB 256 MB 
Tipo de memoria GDDR3 GDDR3 
Velocidad memorias 1,1 GHz 1,1 GHz 
Velocidad core 400 MHz 540 MHz 
Fill rate 6,4 Gpixels/s 8,6 Gpixels/s 
Vértices por segundo 600 MT/s 810 MT/s 
RAMDAC 400 MHz 400 MHz 
Cantidad de pipelines 16 16 
Cantidad de transistores 222 millones 160 millones 
Vertex shader model 3.0 2.0 
Pixel shader model 3.0 2.0 
Tipo interfaz AGP / PCIE AGP / PCIE 
Max. resolución 2048x1536 2048x1536 
trabajan las librerías 3D más popula-res, 
como es el caso de OpenGL y 
Direct3D, ya que éstas se desarrollan 
paralelamente al hardware, a tal 
punto que en algunos no es fácil de-terminar 
cuál empuja a cuál. De esto 
hablaremos en las próximas páginas. 
PLACAS DE VIDEO 
DE ULTIMA GENERACION 
Tanto la gigante californiana NVIDIA 
como el contendiente canadiense ATI 
Technologies se encuentran compi-tiendo 
ferozmente por liderar el mer-cado 
de los dispositivos de video. Por 
un lado, esto es bueno para nosotros, 
ya que existe una mejora continua, y 
sin pausa, de la tecnología gráfica. 
Por otro lado, dicha competencia mu-chas 
veces evita un desarrollo de 
fondo de los nuevos dispositivos: con 
la necesidad de salir en pocos meses 
con un producto más veloz que el 
competidor, simplemente se busca por 
fuerza bruta aumentar la cantidad de 
procesamiento del dispositivo, au-mentando 
la frecuencia de clock de 
la GPU y/o aumentando la velocidad 
a la cual trabajan las memorias, lo 
cual significa mayor consumo, más 
calor, mayor tamaño de placa, etc. 
Ambas empresas diferencian a los 
mercados de alto desempeño (high 
end) de aquellos más modestos (low 
EN ESTA FOTO SE PUEDE 
OBSERVAR LA CLASICA TARJETA 
DE VIDEO 3DFX VOODOO3 3000. 
26 POWERUSR
COMO SE FORMAN LAS IMAGENES 
DE POLIGONOS Y VERTICES 
¿NUNCA SE PREGUNTARON COMO ES QUE SE PROCESAN LAS IMAGENES EN LA COMPUTADORA? LA GENERACION 
DE UN MUNDO 3D EN UNA PANTALLA BIDIMENSIONAL COMO LA DEL MONITOR IMPLICA LA APLICACION DE 
DISTINTAS TECNICAS REALIZADAS DIRECTAMENTE POR LA PLACA DE VIDEO. AQUI VEREMOS COMO FUNCIONAN. 
C 
uando estamos jugando un juego 
3D de computadora o consola, todo 
lo que vemos en escena son objetos 
formados por polígonos (más específica-mente, 
triángulos), los cuales, a su vez, se 
encuentran formados por vértices. 
Cada vértice de un objeto en particular 
(por ejemplo, un personaje del juego) está 
definido en un espacio local a dicho obje-to; 
es decir que posee un centro (0, 0, 0) 
relativo a sí mismo e independiente del 
origen del mundo donde finalmente será 
inmerso. Como es posible inferir, existe 
una conversión de un espacio a otro que 
alguien debe realizar; al mismo tiempo, 
todos los vértices deberán ser reorientados 
dentro de una escena para que ésta sea 
visualizada desde un punto en particular 
(como si se tratara del ojo de una cáma-ra). 
Entonces, se definen ciertos linea-mientos 
con los cuales se procesarán los 
vértices y se facilitará la operación con 
ellos en los usos más comunes. 
El pipeline prefijado establece (como se 
puede apreciar en la figura de la página 
30) una serie de operaciones que se reali-zarán 
sobre cada vértice entrante (de cada 
triángulo, de cada objeto del juego). 
ETAPA 1: 
PROCESAMIENTO DE VERTICES 
El pipeline se alimenta de vértices. Cada 
uno es convertido en coordenadas ho-mogéneas 
para, luego, poder ser multi-plicado 
por tres matrices: la matriz de 
mundo, la de vista y la de proyección. 
Luego, la coordenada resultante es rees-calada 
en función del punto de visuali-zación 
especificado (en general, la pan-talla 
completa o la ventana que estamos 
utilizando como objetivo para el dibuja-do) 
y, en caso de quedar fuera del área 
de visualización, es eliminada. 
Finalmente, el vértice es transferido al 
proceso de rasterización, donde será di-bujado 
en pantalla. 
 La matriz de mundo: la primera ma-triz 
de mundo se utiliza para colocar el 
objeto en la escena 3D. Realiza una 
transformación que va del espacio del 
modelo al espacio del mundo en el cual 
trabajamos. La transformación de mun-do 
puede incluir traslaciones, rotaciones 
y escalamientos. 
 La matriz de vista: esta segunda matriz 
reubica todos los objetos en función de 
un punto de visualización especificado. 
 La matriz de proyección: especifica, 
principalmente, la escala y la perspecti-va 
adoptadas. Esta matriz determinará, 
también, cuánto vemos de la escena, es 
decir, el volumen de visualización. 
Es importante entender que el uso de 
matrices es un recurso matemático crea-do 
para simplificar la manipulación de 
vértices. Con ellas es muy sencillo mo-dificar 
la posición, la orientación y la 
escala de éstos. 
Una vez que el vértice ha sido procesa-do, 
si se mantiene dentro del volumen 
de visualización predefinido, pasará a 
una segunda etapa: la rasterización. 
ETAPA 2: LA RASTERIZACION 
En la rasterización se “pintan” los vérti-ces, 
y para hacerlo se utiliza una ecua-ción 
en la cual participan varios elemen-tos, 
como el color del vértice, las luces 
de la escena que lo afectan, la normal 
que especifica el vértice en cuestión y el 
material activo que corresponda. Luego, 
se rellena todo el triángulo, realizando 
una interpolación de los colores de cada 
vértice que lo conforman. 
Un objeto 3D también puede estar cu-bierto 
por una textura, que es, básica-mente, 
un mapa de bits con ciertas pro-piedades. 
Las texturas, para poder ser 
aplicadas a la geometría, deben estar 
cargadas en memoria de video. De este 
modo, ya no son sólo utilizadas como 
video buffer. Este uso “secundario” es, 
hoy en día, la principal razón para optar 
por tarjetas de mayor memoria: una pla-ca 
de video con más memoria podrá al-bergar 
más texturas, y de mejor calidad. 
Las placas de última generación poseen 
256 MB o 512 MB de memoria de video, 
MODELO FORMADO CON VERTICES 
QUE ESPECIFICAN COORDENADAS 
DE TEXTURA. 
EL MISMO MODELO DE LA 
IZQUIERDA, PERO YA CON UNA 
TEXTURA APLICADA. 
28 POWERUSR
cifra que es el promedio, al día de hoy, de 
la memoria principal en nuestros equipos. 
Pero si bien el proceso de iluminar vérti-ces 
por hardware fue un gran avance, al 
poco tiempo dejó de ser suficiente. Se 
precisaba una flexibilidad mayor, pero... 
¿cómo saber qué operaciones implemen-tar 
en una GPU, si las necesidades po-drían 
ser distintas? Pues permitiendo que 
cada desarrollador escribiera el programa 
que manipulara los vértices a su gusto. 
Por ejemplo, ¿cómo podríamos imple-mentar 
que un conjunto de vértices se 
moviera dentro de un rango de posicio-nes 
en función del tiempo? Utilizando el 
pipeline prefijado, deberíamos modificar 
el valor de cada vértice antes de ingresar 
en él, o modificar la matriz de mundo 
por cada vértice que tuviera un valor es-pecífico. 
Ambos métodos son factibles 
pero poco eficientes, pues requieren un 
uso notable de la CPU. Mejor sería poder 
hacer la cuenta del cálculo del desplaza-miento 
de la posición de cada vértice en 
el pipeline y, mejor aún, liberar a la CPU 
de dicho cálculo. 
El pipeline programable nos permite es-pecificar 
(mediante un lenguaje especia-lizado 
para tal fin) un programa que 
procese el vértice en función de sus ne-cesidades. 
Estos pequeños programas re-ciben 
el nombre de shaders; más especí-ficamente, 
cuando trabajan con vértices, 
vertex shaders, y cuando lo hacen con 
pixeles, pixel shaders. 
PIXEL Y VERTEX SHADERS 
Los dispositivos de video con pixel y 
vertex shaders son moneda corriente en 
el mercado de las placas de video actua-les; 
casi todos los juegos AAA modernos 
hacen uso de esta característica de algún 
modo, y hasta algunos, recientemente, 
comenzaron a exigir que esta caracterís-tica 
estuviera presente para poder iniciar 
su ejecución. 
La característica básica de esta nueva 
tecnología consiste en una GPU progra-mable. 
Con los vertex shaders es posible 
especificar un pequeño programa que to-me 
al vértice entrante y lo manipule a su 
gusto. De este modo, se pueden efectuar 
cálculos aritméticos arbitrarios tomando 
como materia prima vértices (en el caso 
de vertex shaders) y pixeles (en el caso 
de pixel shaders). 
La versión 9.0c de DirectX permite utilizar 
la versión 3.0 del set de instrucciones de 
pixel y vertex shaders. En ella se incorpora 
mayor cantidad de instrucciones aritméti-cas, 
mayor cantidad de registros y mayor 
cantidad máxima de instrucciones por 
programa que en versiones anteriores. 
DirectX 9 puede emular el uso de vertex 
shaders cuando el hardware necesario no 
está presente, mediante una capa de emu-lación 
vía software. Claro que lo hace con 
una performance notablemente inferior a 
la implementación en GPU. 
VERSIONES DE SHADERS EN DIRECTX 
 DirectX 8.0: primer soporte a pixel y vertex shaders. Se soportaron las versiones 
1.0 y 1.1 de pixel shader, y las versiones 1.0 y 1.1 de vertex shader. 
 DirectX 8.1: no hubo cambios en vertex shaders. Se agregó soporte para versiones 
1.2, 1.3 y 1.4 para pixel shaders. 
 DirectX 9.0: se agregó soporte para pixel y vertex shaders 2.0. 
 DirectX 9.0c: se agregó soporte para pixel y vertex shaders 3.0. 
VERTEX SHADERS: REGISTROS DE ENTRADA 
Registro Descripción Cantidad en VS 1.1 Cantidad en VS 2.0 Cantidad en VS 2.x 
a0 Direccionamiento 1 1 1 
c# Constante (tipo float) 96 (como mínimo) 256 (como mínimo) 256 (como mínimo) 
v# Entrada 16 16 16 
r# Temporal 12 12 12 (como mínimo) 
b# Constante (tipo bool) - 16 16 
i# Constante (tipo int) - 16 16 
aL Contador de bucle - 1 1 
p0 Predicado - - 1 
VERTEX SHADERS: REGISTROS DE SALIDA 
Registro Descripción Cantidad en VS 1.1 Cantidad en VS 2.0 Cantidad en VS 2.x 
oPos Posición 1 1 1 
oFog Niebla 1 1 1 
oPts Tamaño punto 1 1 1 
oD# Color 2 (difuso y especular) 2 (difuso y especular) 2 (difuso y especular) 
oT# Coordenadas de textura 8 8 8 
* Nota: En la versión 3.0 de VS los registros de salida son 12 y son generales; se dejó de lado la especificación 
del tipo, y ahora el sistema es más flexible y pueden utilizarse según conveniencia. 
POWERUSR 29
OPERADORES PROGRAMABLES 
LOS SHADERS 
SIEMPRE HABLAMOS DE LOS SHADERS Y DE SU IMPORTANCIA EN LAS TARJETAS DE VIDEO ACTUALES. 
LO QUE NUNCA COMENTAMOS ES COMO SE COMPONEN INTERNAMENTE Y DE QUE MANERA LOS 
UTILIZAN LOS PROGRAMADORES DE JUEGOS PARA CREAR SUS MARAVILLAS. EN ESTAS PAGINAS NOS 
METEREMOS DENTRO DE LOS PIXEL Y VERTEX SHADERS, Y LOS MOSTRAREMOS EN DETALLE. 
L 
os vertex shaders operan sobre 
vértices o, mejor dicho, la salida 
de la operación de un vertex 
shaders es un vértice en formato homo-géneo, 
listo para ser enviado a la etapa 
de clipping y reescalado. 
Un vertex shader no puede crear ni des-truir 
geometría (no puede crear vértices ni 
tampoco puede eliminarlos). Opera con un 
vértice a la vez y puede manipular la geo-metría 
existente modificando propiedades 
del vértice manipulado. 
Un pixel shader especifica el color en un 
pixel; usualmente, recibe como entrada 
coordenadas de textura. 
Existe cierta independencia en el uso de 
pixel o vertex shaders. Por lo general, los 
vertex shaders hacen modificaciones en la 
geometría, como ciertas transformaciones 
para crear efectos específicos (como pe-queñas 
olas en el agua), mientras que los 
pixel shaders se utilizan, principalmente, 
para realizar cálculos arbitrarios de ilumi-nación 
(como la iluminación por pixeles 
tan frecuente en los juegos actuales, como 
Doom 3 y Far Cry). 
VERTEX SHADERS 
Los vertex shaders podrían reemplazar al 
motor de transformación e iluminación 
prefijado que existía en el pipeline tradi-cional 
utilizado por OpenGL o Direct3D. 
Nuestra aplicación podría utilizar ambos 
para distintos vértices, pero no para el 
mismo, ya que se excluyen mutuamente 
(ver figura del pipeline completo). Debido 
a que los vertex shaders reemplazan al 
EL PIPELINE COMPLETO 
motor TnL, se infiere que deberían produ-cir 
la misma salida; en otras palabras, el 
vertex shader recibirá un vértice y deberá 
entregar un vértice, en una relación es-tricta 
de uno a uno; no podrá cambiar la 
cantidad final de vértices. 
La entrada a un vertex shader es uno o 
más vértices e información de estados del 
pipeline (existen estados de renderización 
que pueden modificar el modo en que se 
produce la salida). La salida es la posición 
en espacio de recorte (clipping) y el resto 
de la información usual del vértice en 
función de su formato (color, coordenadas 
de textura, etc.). 
ARQUITECTURA 
DE LOS VERTEX SHADERS 
El vertex shader es un programa que to-mará 
como entrada un vértice, y dejará 
a la salida: 
 Un vértice en espacio de recorte 
 Un color de vértice (en función del 
formato de vértice) 
 Coordenadas de texturas (en función 
del formato de vértice) 
 Intensidad de niebla (opcionalmente) 
 Tamaño de punto (en función del for-mato 
de vértice) 
Como mínimo, el programa del shader 
deberá tomar el vértice y realizar una 
transformación que lo lleve de espacio 
local a espacio de recorte. Luego, el vér-tice 
contendrá información opcional que 
estará de acuerdo con el formato de vér- 
tice y el estado de renderización. 
Veamos sólo un poco de código de un 
vertex shader que realice esta operación 
mínima: 
dp4 oPos.x, v0, c0 
dp4 oPos.y, v0, c1 
dp4 oPos.z, v0, c2 
dp4 oPos.w, v0, c3 
En este caso, hemos empleado lenguaje 
ensamblador de la GPU, y no, HLSL. 
Quienes conozcan algo de ensamblador 
para cualquier microprocesador notarán 
una sintaxis familiar: un mnemónico re-presentando 
la operación por realizar, un 
componente sobre el cual se realiza la 
operación (en este caso, componentes de 
un registro de salida) y luego argumen-tos 
de la operación. 
 dp4: operación por realizar, significa 
“producto punto de cuatro componentes”. 
 oPos: registro de salida del vértice (es 
un vector de cuatro componentes) 
 v0: registro de entrada, desde donde to-mamos 
el vértice con el cual trabajamos. 
 c0..c3: constantes (vectores de cuatro 
componentes cada una de ellas). 
Esquematizando la operación, lo que he-mos 
hecho es lo que se puede apreciar en 
la figura de la página siguiente. Es decir, 
hemos multiplicado el vértice entrante por 
una matriz construida a partir de cuatro 
vectores constantes. La salida fue coloca-da 
en un registro de salida. 
Frame buffer 
blending 
Primitiva de 
teselación de 
alto nivel 
Información de 
vértices 
Vertex shader 
Motor de 
iluminación y 
transformación 
(TnL) 
Recorte y 
reescalado 
Pixel shader 
Multitexturado 
de DirectX 6/7 
Blending de 
niebla 
Testeo de 
Alpha, Stencil y 
Depth 
30 POWERUSR
La interfaz más general de las dos es la de vertex shaders. Por 
medio de ella, el programador podrá usar instrucciones para 
especificar las operaciones que realizará el dispositivo de video 
con los vértices entrantes. 
La interfaz de pixel shaders es un poco más complicada y po-see 
ciertas restricciones que hay que tener en cuenta. La más 
importante es que los pixel shaders sólo pueden ejecutarse en 
un hardware que los soporte; por lo tanto, si deseamos crear 
juegos que utilicen esta funcionalidad y que, al mismo tiempo, 
funcionen en equipos no programables, deberemos realizar más 
de un flujo de ejecución. 
Hasta el momento, para hacer uso de estas facilidades el progra-mador 
debía escribir el código en el lenguaje ensamblador de la 
placa de video sobre un procesador de textos. Naturalmente (y co-mo 
era de esperar), comenzaron a implementarse herramientas que 
ayudan al programador en esta tarea: entornos que facilitan la 
creación de efectos y lenguajes de alto nivel que luego son tradu-cidos 
al lenguaje ensamblador de la placa de video en cuestión. 
PROGRAMACION EN ENSAMBLADOR 
En una época, los juegos se programaban en lenguaje ensambla-dor. 
Este lenguaje consiste en instrucciones de procesador de ba-jo 
nivel, que luego se traducen en código binario y, finalmente, 
son ejecutadas por el microprocesador. Programar directamente 
en el lenguaje que entiende la máquina posee muchas ventajas: 
tendremos control absoluto del modo en que se administran los 
registros (“posiciones de memoria” que se pueden leer y escribir 
de manera muy veloz, porque son locales al microprocesador). 
La gran desventaja es que programar en ensamblador es compli-cado. 
Veamos un programa sencillo en este lenguaje: 
mov AX, algún_número ; asigna un número cualquiera al 
cmp AX, 5 ; compara el contenido del registro AX 
je true ; si la comparación fue existosa salta 
mov CX, 2 ; asigna el número 2 al registro CX 
VERTEX SHADER PIXEL SHADER 
registros de vértices 
v15 
registro de 
direcciones 
(VS 1.1 y 
superiores) 
v0 
r0 t0 Etapa 0 
registros 
temporales 
a0 
c0 
r1 Unidad de 
procesamiento 
de vértices 
registros 
temporales constantes 
v0 v1 
c1 
c95 
oDn oT 
registros de salida pixel de salida 
r11 
REGISTROS DE ENTRADA, TEMPORALES Y DE SALIDA, 
QUE SE PUEDEN UTILIZAR EN UN VERTEX SHADER. 
registro AX 
con el número 5 
a la etiqueta “true” 
Etapa 1 
Etapa 2 
Etapa 3 
t1 
t2 
t3 
r0 
r1 
c0 
c1 
c7 
Unidad de 
procesamiento 
de píxeles 
REGISTROS DE ENTRADA, TEMPORALES Y DE SALIDA 
QUE PUEDEN UTILIZARSE EN UN PIXEL SHADER. 
PIXEL SHADERS 
Los pixels shaders reemplazan las operaciones de multitextura-do 
fijas del pipeline prefijado. Para entender mejor cómo fun-cionan 
los pixels shaders hay que comprender el modo de fun-cionamiento 
dual que posee el pipeline de texturas. Tradicio-nalmente, 
dos caminos corren en paralelo manejando operacio-nes 
de color (vector pipe) y alpha (escalar pipe). El resultado de 
estas operaciones se mezcla al final, y termina en la especifica-ción 
de un color con componente alpha. 
Dentro del pixel shader se pueden realizar operaciones aritméti-cas 
(con valores de coordenadas de texturas) y operaciones con 
texturas (haciendo uso de una coordenada de textura). De todos 
modos, más allá de la operación realizada, la salida debe ser 
una estructura de color con componentes RGBA (Red, Green, 
Blue, Alpha: Rojo, Verde, Azul y Alpha). 
ARQUITECTURA DE LOS PIXEL SHADERS 
Un pixel shader toma un color como entrada, una textura de 
coordenada (o más) y una textura activa, y produce un valor 
RGBA de salida. Es posible ignorar los estados de etapas de 
texturas que están fijados. De hecho, es posible ignorar las 
coordenadas de texturas especificadas y fijar el color de mane-ra 
arbitraria. Lo que podrá cambiar el color fijador de lo que 
veremos en pantalla será el estado del render state relacionado 
a la niebla (recordemos que blending de niebla es una etapa 
posterior al pixel shader). 
Por lo general, un programa de pixel shaders es más pequeño 
que uno de vertex shaders, simplemente, debido a las operacio-nes 
que suelen entrar en juego. 
HLSL 
Los dispositivos de video programables que existen hoy son las 
GeForce#3 y superiores (exceptuando la GeForce#4 MX), y las 
ATI Radeon 8500 y superiores. 
Sin embargo, la capacidad de programación de todas estas pla-cas 
está fuertemente relacionada con el modo por el cual se ac-cede 
a estas funcionalidades, por medio de la interfaz de vertex 
shaders y pixel shaders de DirectX 8 (DX8) y DirectX 9 (DX9). 
constantes 
POWERUSR 31
jmp end ; salta a la etiqueta “end” 
true: 
mov CX, 1 ; asigna el número 1 al registro CX 
end: 
El mismo programa, en lenguaje C, se escribiría del siguiente modo: 
a = algún_número; // asigno un número cualquiera 
a la variable ‘a’ 
if (a == 5 // ¿es igual a 5? 
b = 1; // asigno el número 1 a la variable ‘b’ 
b = 2; // asigno el número 2 a la variable ‘b’ 
Naturalmente, el código escrito en C es mucho más legible que 
el escrito en código ensamblador. De hecho, el código ensam-blador 
requiere de una documentación mucho más precisa, ya 
que entender cuál es el propósito de un trozo de código, sin es-tar 
contextualizado en el problema, resulta muy complicado. 
Otra ventaja de C es que el lenguaje no está atado a ningún 
microprocesador en particular. Existe un compilador que se en-carga 
de realizar dicha tarea. Por lo tanto, podemos escribir có-digo 
C y luego recompilarlo en distintas plataformas. 
HIGH-LEVEL SHADER LANGUAGES 
Se podría decir que HLSL es al ensamblador de los VS/PS (ver-tex 
shaders/pixel shaders) lo que el lenguaje C es al ensambla-dor 
de la CPU. Veamos qué código de VS se requiere para reali-zar 
una transformación de vértices sencilla: 
mov r0, c0 ; copia el registro constante c0 al temporal r0 
mov r1, v2 ; copia el registro entrante v2 al temporal r1 
dp3 r2, r0, r1 ; realiza un dot product entre los registros r0 
y r1 y coloca el resultado en r2 
mov r3, c1 ; copia registro constante c1 al temporal r3 
max r0, r2, r3 ; clampea valor de r0 al máximo entre r2 y r3 
mov oD0, r0 ; escribe |en registro de salida de color oD0 el 
valor del registro temporal r0 
Con HLSL, en cambio, deberíamos escribir: 
float4 lightdirection = constant[0]; 
OUT.Diffuse = max(dp3(IN.Normal, lightdirection), 0 ); 
Nuevamente, el lenguaje de alto nivel permite realizar las mis-mas 
operaciones en menos pasos, mantener la legibilidad en 
niveles razonables y desprenderse de características específicas 
del hardware. Claro que en lo que respecta a la legibilidad, el 
problema se reduce un poco debido a que los programas de 
VS/PS no suelen poseer muchas líneas de código. 
Lo que se debe tener en cuenta es que, a pesar de estar realizando 
una programación en un nivel más alto, las limitaciones de hard-ware 
siguen existiendo. En versiones de VS inferiores a la 2, la 
cantidad de instrucciones máxima y la cantidad de registros pue-den 
ser un inconveniente; además, no existen instrucciones de 
control de flujo de ejecución (condicionales, bucles, etc.). 
Si estamos codificando en ensamblador de Vertex Shader/Pixel 
Shader, usualmente estaremos más en contacto con las limita-ciones 
de hardware, ya que la programación está estrechamente 
relacionada a las características del dispositivo. Codificando en 
alto nivel, estas limitaciones podrían saltearse e incurrir fácil-mente 
en errores de programación. 
El lado negativo es similar al existente en la programación tra-dicional 
en alto nivel contra la programación en ensamblador 
de CPU, y es la optimización. Un compilador podrá traducir 
nuestro código no de la mejor manera posible, cuando una mul-tiplicación 
y una adición expresada en HLSL podrían ser tradu-cidas 
a instrucciones de multiplicación (mul) y adición (add) in-dependientes 
o, tal vez, a una sola instrucción que realizara 
ambos procesos en una sola operación (mad). Esta situación re-dundará 
en mayor uso de GPU del necesario y, finalmente, en 
menor cantidad de cuadros por segundo para nuestro juego. 
RENDERMONKEY 
RenderMonkey es una aplicación creada por la compañía diseña-dora 
de procesadores gráficos ATI Technologies que puede des-cargarse 
libremente desde el sitio oficial. Es importante destacar 
que no es un lenguaje, como suele pensarse comúnmente, sino 
una herramienta pensada para ayudar a los artistas y/o progra-madores 
a crear shaders. 
Si alguien desea crear un shader y verlo en acción, deberá 
crear un framework que realice la carga de la geometría, textu-ras, 
pase las constantes al shader, etc. Todo este trabajo es rea-lizado 
por RenderMonkey, por lo que quien quiera crear un 
efecto deberá concentrarse solamente en su programación espe-cífica 
del vertex y pixel shader, y no, en aplicaciones auxilia-res. 
Además, la aplicación permite modificar elementos viendo 
su consecuencia en tiempo real. 
Si quieren obtener más información respecto a RenderMonkey, 
recomiendo visitar www.ati.com/developer/rendermonkey. 
EN ESTA CAPTURA DE PANTALLA VEMOS A RENDERMONKEY, 
LA HERRAMIENTA PARA CREAR SHADERS, EN ACCION. 
32 POWERUSR
EL FUTURO CERCANO 
LAS CONSOLAS DE JUEGOS 
DE PROXIMA GENERACION 
ESPECIALMENTE EN NORTEAMERICA, LAS CONSOLAS DE JUEGOS SON MAS POPULARES QUE LAS PC, NO SOLO POR 
SU PODER DE PROCESAMIENTO, SINO TAMBIEN POR SU ECONOMIA Y COMODIDAD. POR ESO, CON EL ADVENIMIENTO 
DE LAS NUEVAS CONSOLAS, NO PODIAMOS DEJAR DE MENCIONAR LO QUE SE VIENE EN ESTE AMBITO 
¿LA PLAYSTATION 3? ¡NO! UN CLASICO 
DISEÑO FALSO DE LOS VARIOS QUE 
CIRCULAN POR LA RED. 
to a la placa de video que poseerá la 
PlayStation 3, NVIDIA anunció en di-ciembre 
de 2004 que firmó un acuerdo 
con Sony para encargarse de desarrollar 
la nueva GPU de la consola, que poseerá 
una variante de la tercera generación de 
sus aceleradoras gráficas. 
XBOX 360 
La nueva consola de Microsoft utilizará 
tres microprocesadores IBM PowerPC co-rriendo 
a 3,2 GHz, cada uno con dos hilos 
de ejecución, 32 KB de caché L1 de datos 
y 32 KB de instrucciones; los tres compar-tirán 
una caché de 1 MB del tipo L2. 
La consola poseerá 512 MB RAM del tipo 
GDDR3, y el disco rígido ahora será un 
opcional (recordemos que la primera Xbox 
incluía disco duro, característica que incre-mentaba 
el peso, el ruido, el consumo y el 
costo del sistema). Este disco será fácil-mente 
desmontable —para poder ser trasla-dado 
a la consola de un amigo con los 
juegos almacenados en él— y, en principio, 
se ofrecerá con 20 GB de capacidad. 
El avance de las partidas también podrá 
ser almacenado en tarjetas de memoria 
que van de 64 MB a 1 GB. 
La placa de video que poseerá la consola 
ya no será NVIDIA sino ATI, corriendo a 
500 MHz con 10 MB integrados de DRAM. 
Los controles de juego serán inalámbricos 
l mercado de las consolas de jue-gos 
mueve muchísimo dinero. Por 
lo tanto, no debería sorprendernos 
E 
la importancia que le brindan a esta uni-dad 
de negocio las principales empresas 
que dominan el mercado (Sony, Micro-soft 
y Nintendo). Sólo en el año 2004 se 
vendieron un total de 25 millones de 
consolas en todo el mundo. 
Las consolas siempre se han caracteriza-do 
por ser muy avanzadas tecnológica-mente, 
al menos cuando son lanzadas al 
mercado. En un principio, los gráficos 
son increíbles, mucho mejores de lo que 
puede verse en el mundo de las PCs. Pe-ro 
luego, los nuevos modelos de CPU y 
GPU que se ofrecen como partes inde-pendientes 
para computadoras alcanzan 
y superan holgadamente a las consolas. 
Debido a que el ciclo de vida de una 
consola de juegos es de alrededor de cin-co 
años, podríamos establecer que las 
consolas actuales ya son piezas antiguas. 
Este año en particular presenciaremos el 
lanzamiento de una nueva generación de 
consolas. Cuando esta revista se encuen-tre 
en los kioscos, Microsoft ya habrá 
presentado internacionalmente la nueva 
Xbox 360 en un programa especial emi-tido 
por el canal MTV. Una semana des-pués, 
Sony hará lo propio en la exposi-ción 
de entretenimiento electrónico más 
importante del mundo (E3), introducien-do 
lo que será la PlayStation 3. 
Mucho se ha escrito 
en distintos sitios de la red respecto a 
estos nuevos y extraordinarios juguetes 
tecnológicos. También se vieron muchos 
“posibles” diseños de ellos, aunque casi 
todos eran fakes (falsos). 
Las noticias verdaderas se mezclan con 
las falsas, y hasta el sitio más creíble se 
hace eco de rumores cuando no hay su-ficiente 
información para presentar y la 
expectativa es grande. Por lo pronto, pa-semos 
en limpio la información oficial 
que se maneja para las consolas de nue-va 
generación más importantes. 
PS3 Y SU EXTRAORDINARIO 
CEREBRO 
Sony, Toshiba e IBM han estado trabajan-do 
de manera mancomunada para crear lo 
que será el nuevo microprocesador de la 
consola PlayStation 3, que, además, ten-drá 
otra infinidad de usos. 
Su nombre es Cell y ya se oficializaron 
varias de sus características. El micropro-cesador 
correrá a 4,6 GHz, lo cual no es 
poco teniendo en cuenta lo difícil que le 
está resultando a Intel sobrepasar la ba-rrera 
de los 4 GHz para su familia de pro-cesadores. 
Estará compuesto por 234 mi-llones 
de transistores, casi el doble de la 
cantidad que componen los últimos proce-sadores 
Intel Pentium 4. En la próxima 
edición podremos encontrar un artículo 
muy completo que analiza esta auténtica 
maravilla de la computación. 
Por otro lado, respec- 
XBOX, LA PRIMERA 
CONSOLA DE MICROSOFT. 
34 POWERUSR
(hasta cuatro por consola), aunque tam-bién 
36 
se permitirá la conexión de controles 
con cable. Poseerá tres puertos USB 2.0 y 
una unidad de DVD dual layer (y no un 
tipo de unidad de nueva generación como 
Blu-Ray como se había especulado en un 
principio); los formatos soportados serán 
DVD-video, DVD-ROM, DVD-R, DVD-RW, 
CD-DA, CD-ROM, CD-R, CD-RW, WMA 
CD, MP3 CD y JPEG Photo CD. 
En resumen, las especificaciones de la 
nueva consola de Microsoft no sorpren-dieron 
demasiado a quienes venían si-guiéndole 
la pista, ya que, básicamente, 
eran las que se rumoreaban. Por otro la-do, 
le empresa no innova demasiado en 
ninguna característica técnica de hard-ware, 
y aunque es cierto que tres micro-procesadores 
PowerPC es bastante más 
poder de CPU que el que posee la PC de 
un gamer, es mucho menos de lo que 
ofrecerá la nueva consola de Sony. 
NINTENDO REVOLUTION 
De la nueva consola de Nintendo es de 
la que menos información oficial existe. 
A ciencia cierta, sólo se conocen algunos 
datos emitidos por el presidente de la fir-ma, 
Satoru Iwata. 
Lo que está claro es que la consola in-tentará 
revolucionar la experiencia ga-ming 
por medio del modo de controlar el 
juego. Existieron rumores —que no fue-ron 
confirmados— respecto a que el con-trol 
incluiría un touch pad configurable 
para facilitar el manejo de tipos 
de juegos no muy populares al 
día de hoy en las consolas (por 
ejemplo, juegos que en la PCs 
se suelen manejar con mouse, 
como los de estrategia y los de 
acción en primera persona). 
Respecto a esto, Satoru Iwata 
prefirió guardar silencio, ya que 
argumentó que las interfaces de 
usuario pueden ser imitadas fá-cilmente 
por los competidores. 
La realidad es que Nintendo Ga-meCube 
ha vendido menos de lo 
planeado, al menos en el mundo 
occidental, y muchos pronosti-can 
que Revolution será la pró-xima 
DreamCast (consola de 
SEGA que fue discontinuada por 
vender menos unidades de las 
esperadas). Sin embargo, habrá 
que darle crédito a Nintendo, 
que hace ya muchos años se en-cuentra 
en este rubro y ha de-mostrado, 
de sobrada manera, 
que sabe cómo manejarse en 
situaciones adversas.  
ASI SE VE LA CONSOLA 
XBOX 360 DE MICROSOFT. 
GLOSARIO DE TERMINOS 
 API (Application Programming Interface): 
Interfaz definida por un programa o librería 
por medio de la cual es posible acceder a 
las funcionalidades que implementa. 
 Direct3D: Subsistema de DirectX, 
encargado de crear gráficos en 3D en 
tiempo real y de un modo eficiente. 
 DirectX: Conjunto de componentes 
desarrollado por Microsoft para ser 
utilizado en la creación de juegos y 
aplicaciones multimedia de alto 
desempeño. Haciendo uso de esta 
herramienta, podremos crear gráficos 
2D y 3D; sonidos, música y efectos; y 
aplicaciones de red, como los juegos 
multijugador, además de manejar 
dispositivos de entrada como teclado, 
mouse, joystick, volante, gamepad, etc. 
 E3 (Electronic Entertainment Expo): 
Exposición anual de entretenimiento 
electrónico realizada exclusivamente para 
medios periodísticos, que se lleva a cabo 
en los Estados Unidos. En este evento se 
suelen presentar las novedades más 
importantes del año en materia de juegos 
y hardware relacionado. 
 GPU (Graphics Processing Unit): 
Nombre que se le otorga al 
microprocesador de la placa de video. 
 HLSL (High-Level Shader Language): 
Lenguaje de alto nivel que permite 
especificar el programa (shader) que 
ejecutará una GPU programable. Dicho 
programa también podría ser escrito en 
lenguaje ensamblador (del GPU), pero esto 
suele ser más complejo y se relaciona más 
fuertemente a una arquitectura específica. 
 Juegos AAA: Juegos que fueron creados 
con un gran presupuesto y poseen alta 
calidad de producción. Se distribuyen de 
manera masiva por los canales de venta 
tradicionales (mostrador, pre-venta) a un 
precio superior a U$S 40 (por ejemplo, 
Half-Life 2, Doom 3, Far Cry, The Sims). 
 OpenGL: Librería gráfica 3D creada por 
Silicon Graphics Incorporated (SGI). Hoy en 
día es un estándar abierto de la industria. 
EL LIBRO DE PASES ESTA ABIERTO 
ESTA ES LA GAMECUBE DE 
NINTENDO. 
Recordemos que NVIDIA 
fue la encargada de 
desarrollar la GPU de la 
primera consola de 
Microsoft (Xbox). Microsoft 
también está desarrollando 
su nueva consola, pero su 
GPU ya no será de NVIDIA 
sino de su competencia, ATI. 
POWERUSR

Más contenido relacionado

La actualidad más candente

Gráficos en los videojuegos
Gráficos en los videojuegosGráficos en los videojuegos
Gráficos en los videojuegosagustin
 
VideoJuegos Avances Tecnológicos
VideoJuegos Avances Tecnológicos VideoJuegos Avances Tecnológicos
VideoJuegos Avances Tecnológicos
LigiaBustamant
 
3C González ariel - Gaming
3C  González ariel - Gaming3C  González ariel - Gaming
3C González ariel - Gaming
ArielGonzlez25
 
Informática de los videojuegos (1)
Informática de los videojuegos (1)Informática de los videojuegos (1)
Informática de los videojuegos (1)rockdrigoop
 
Generación de las consolas
Generación de las consolasGeneración de las consolas
Generación de las consolas
Jhonier Castro
 
Evolución de las consolas de videojuegos
Evolución de las consolas de videojuegosEvolución de las consolas de videojuegos
Evolución de las consolas de videojuegos
Alexei57
 
Juegos De Videos
Juegos De VideosJuegos De Videos
Tarjetas Graficadoras 2
Tarjetas Graficadoras 2Tarjetas Graficadoras 2
Tarjetas Graficadoras 2
Jose Luis Pedraza Moreno
 
Videoconsolas(evolucion)
Videoconsolas(evolucion)Videoconsolas(evolucion)
Videoconsolas(evolucion)
Angel Sousa Navarro
 
Historia de los videojuegos
Historia de los videojuegosHistoria de los videojuegos
Historia de los videojuegos
JenniferRodriguez295
 
Aprende a reparar consolas de videojuegos
Aprende a reparar consolas de videojuegosAprende a reparar consolas de videojuegos
Aprende a reparar consolas de videojuegos
Felix Hernandez
 
Anchundia 3B Investigacion
Anchundia 3B InvestigacionAnchundia 3B Investigacion
Anchundia 3B Investigacion
TipsyGoose
 
noticias
noticiasnoticias
Desarrollo de las consolas de videojuegos
Desarrollo de las consolas de videojuegosDesarrollo de las consolas de videojuegos
Desarrollo de las consolas de videojuegos
alizonbenavides
 
Historia de las consolas de videojuego
Historia de las consolas de videojuegoHistoria de las consolas de videojuego
Historia de las consolas de videojuego
JBezt
 
Innovasiones tecnologicas
Innovasiones tecnologicasInnovasiones tecnologicas
Innovasiones tecnologicas
MILENAANDREASANTOASPEREZ
 
perifericos de actualidad
perifericos de actualidadperifericos de actualidad
perifericos de actualidad
ferli
 
Los videojuegos a lo largo de la historia
Los videojuegos a lo largo de la historiaLos videojuegos a lo largo de la historia
Los videojuegos a lo largo de la historia
polito12
 

La actualidad más candente (20)

Gráficos en los videojuegos
Gráficos en los videojuegosGráficos en los videojuegos
Gráficos en los videojuegos
 
VideoJuegos Avances Tecnológicos
VideoJuegos Avances Tecnológicos VideoJuegos Avances Tecnológicos
VideoJuegos Avances Tecnológicos
 
3C González ariel - Gaming
3C  González ariel - Gaming3C  González ariel - Gaming
3C González ariel - Gaming
 
Informática de los videojuegos (1)
Informática de los videojuegos (1)Informática de los videojuegos (1)
Informática de los videojuegos (1)
 
Generación de las consolas
Generación de las consolasGeneración de las consolas
Generación de las consolas
 
Evolución de las consolas de videojuegos
Evolución de las consolas de videojuegosEvolución de las consolas de videojuegos
Evolución de las consolas de videojuegos
 
Juegos De Videos
Juegos De VideosJuegos De Videos
Juegos De Videos
 
Tarjetas Graficadoras 2
Tarjetas Graficadoras 2Tarjetas Graficadoras 2
Tarjetas Graficadoras 2
 
Videoconsolas(evolucion)
Videoconsolas(evolucion)Videoconsolas(evolucion)
Videoconsolas(evolucion)
 
Historia de los videojuegos
Historia de los videojuegosHistoria de los videojuegos
Historia de los videojuegos
 
Aprende a reparar consolas de videojuegos
Aprende a reparar consolas de videojuegosAprende a reparar consolas de videojuegos
Aprende a reparar consolas de videojuegos
 
Anchundia 3B Investigacion
Anchundia 3B InvestigacionAnchundia 3B Investigacion
Anchundia 3B Investigacion
 
noticias
noticiasnoticias
noticias
 
Desarrollo de las consolas de videojuegos
Desarrollo de las consolas de videojuegosDesarrollo de las consolas de videojuegos
Desarrollo de las consolas de videojuegos
 
Historia de las consolas de videojuego
Historia de las consolas de videojuegoHistoria de las consolas de videojuego
Historia de las consolas de videojuego
 
X dvideojuegos
X dvideojuegosX dvideojuegos
X dvideojuegos
 
X dvideojuegos.pdf
X dvideojuegos.pdfX dvideojuegos.pdf
X dvideojuegos.pdf
 
Innovasiones tecnologicas
Innovasiones tecnologicasInnovasiones tecnologicas
Innovasiones tecnologicas
 
perifericos de actualidad
perifericos de actualidadperifericos de actualidad
perifericos de actualidad
 
Los videojuegos a lo largo de la historia
Los videojuegos a lo largo de la historiaLos videojuegos a lo largo de la historia
Los videojuegos a lo largo de la historia
 

Destacado

52725497 revist-users-1000-ideas-pc-tomo-2
52725497 revist-users-1000-ideas-pc-tomo-252725497 revist-users-1000-ideas-pc-tomo-2
52725497 revist-users-1000-ideas-pc-tomo-2xavazquez
 
Vip imprimir.genial-desmontaje portatiles-pc practicas
Vip imprimir.genial-desmontaje portatiles-pc practicasVip imprimir.genial-desmontaje portatiles-pc practicas
Vip imprimir.genial-desmontaje portatiles-pc practicasxavazquez
 
Genial vip-completo-manual de instalacion de windows xp
Genial vip-completo-manual de instalacion de windows xpGenial vip-completo-manual de instalacion de windows xp
Genial vip-completo-manual de instalacion de windows xpxavazquez
 
La educacion de la voz (margarita fernandez)
La educacion de la voz (margarita fernandez)La educacion de la voz (margarita fernandez)
La educacion de la voz (margarita fernandez)
Gerardo Daniel Gallo
 
Mercado coorporativo acciones 2017
Mercado coorporativo acciones 2017Mercado coorporativo acciones 2017
Mercado coorporativo acciones 2017
Alfredo Borda Bossana
 
Vip 174 pags muy interesante opc imprimir soporte-tecnico
Vip 174 pags muy interesante opc imprimir soporte-tecnicoVip 174 pags muy interesante opc imprimir soporte-tecnico
Vip 174 pags muy interesante opc imprimir soporte-tecnicoxavazquez
 
ENSAYO DE TRANSFORMADORES, PROTOCOLOS Y SU IMPORTANCIA.
ENSAYO DE TRANSFORMADORES, PROTOCOLOS Y SU IMPORTANCIA.ENSAYO DE TRANSFORMADORES, PROTOCOLOS Y SU IMPORTANCIA.
ENSAYO DE TRANSFORMADORES, PROTOCOLOS Y SU IMPORTANCIA.
Alfredo Borda Bossana
 
Windows 7 avanzado
Windows 7 avanzadoWindows 7 avanzado
Windows 7 avanzado
Whaleejaa Wha
 
Interesante importancia del backup 212025973-documento-guia-de-backup-baja
Interesante importancia del backup 212025973-documento-guia-de-backup-bajaInteresante importancia del backup 212025973-documento-guia-de-backup-baja
Interesante importancia del backup 212025973-documento-guia-de-backup-bajaxavazquez
 
Presentación final febrero 2016
Presentación final febrero 2016Presentación final febrero 2016
Presentación final febrero 2016
Alfredo Borda Bossana
 
126511002 users-tecnico-hardware-desde-cero-pdf-by-chuska-www-cantabriatorren...
126511002 users-tecnico-hardware-desde-cero-pdf-by-chuska-www-cantabriatorren...126511002 users-tecnico-hardware-desde-cero-pdf-by-chuska-www-cantabriatorren...
126511002 users-tecnico-hardware-desde-cero-pdf-by-chuska-www-cantabriatorren...xavazquez
 
03 optimizacion
03   optimizacion03   optimizacion
03 optimizacionxavazquez
 
Manual del Electricista Habilitado Categoría 3
Manual del Electricista Habilitado Categoría 3Manual del Electricista Habilitado Categoría 3
Manual del Electricista Habilitado Categoría 3
Alfredo Borda Bossana
 
Vip users baja resolucion--guia-pc-hardware
Vip users baja resolucion--guia-pc-hardwareVip users baja resolucion--guia-pc-hardware
Vip users baja resolucion--guia-pc-hardwarexavazquez
 
Vip users produccion musical
Vip users produccion musicalVip users produccion musical
Vip users produccion musicalxavazquez
 
Vip users imprimir-tecnico hardware desde cero
Vip users imprimir-tecnico hardware desde ceroVip users imprimir-tecnico hardware desde cero
Vip users imprimir-tecnico hardware desde ceroxavazquez
 
Vip users windows 7
Vip users windows 7Vip users windows 7
Vip users windows 7xavazquez
 
47090239 revist-users-video
47090239 revist-users-video47090239 revist-users-video
47090239 revist-users-videoxavazquez
 
04 diagnostico
04   diagnostico04   diagnostico
04 diagnosticoxavazquez
 
Vip users windows 8
Vip users windows 8Vip users windows 8
Vip users windows 8xavazquez
 

Destacado (20)

52725497 revist-users-1000-ideas-pc-tomo-2
52725497 revist-users-1000-ideas-pc-tomo-252725497 revist-users-1000-ideas-pc-tomo-2
52725497 revist-users-1000-ideas-pc-tomo-2
 
Vip imprimir.genial-desmontaje portatiles-pc practicas
Vip imprimir.genial-desmontaje portatiles-pc practicasVip imprimir.genial-desmontaje portatiles-pc practicas
Vip imprimir.genial-desmontaje portatiles-pc practicas
 
Genial vip-completo-manual de instalacion de windows xp
Genial vip-completo-manual de instalacion de windows xpGenial vip-completo-manual de instalacion de windows xp
Genial vip-completo-manual de instalacion de windows xp
 
La educacion de la voz (margarita fernandez)
La educacion de la voz (margarita fernandez)La educacion de la voz (margarita fernandez)
La educacion de la voz (margarita fernandez)
 
Mercado coorporativo acciones 2017
Mercado coorporativo acciones 2017Mercado coorporativo acciones 2017
Mercado coorporativo acciones 2017
 
Vip 174 pags muy interesante opc imprimir soporte-tecnico
Vip 174 pags muy interesante opc imprimir soporte-tecnicoVip 174 pags muy interesante opc imprimir soporte-tecnico
Vip 174 pags muy interesante opc imprimir soporte-tecnico
 
ENSAYO DE TRANSFORMADORES, PROTOCOLOS Y SU IMPORTANCIA.
ENSAYO DE TRANSFORMADORES, PROTOCOLOS Y SU IMPORTANCIA.ENSAYO DE TRANSFORMADORES, PROTOCOLOS Y SU IMPORTANCIA.
ENSAYO DE TRANSFORMADORES, PROTOCOLOS Y SU IMPORTANCIA.
 
Windows 7 avanzado
Windows 7 avanzadoWindows 7 avanzado
Windows 7 avanzado
 
Interesante importancia del backup 212025973-documento-guia-de-backup-baja
Interesante importancia del backup 212025973-documento-guia-de-backup-bajaInteresante importancia del backup 212025973-documento-guia-de-backup-baja
Interesante importancia del backup 212025973-documento-guia-de-backup-baja
 
Presentación final febrero 2016
Presentación final febrero 2016Presentación final febrero 2016
Presentación final febrero 2016
 
126511002 users-tecnico-hardware-desde-cero-pdf-by-chuska-www-cantabriatorren...
126511002 users-tecnico-hardware-desde-cero-pdf-by-chuska-www-cantabriatorren...126511002 users-tecnico-hardware-desde-cero-pdf-by-chuska-www-cantabriatorren...
126511002 users-tecnico-hardware-desde-cero-pdf-by-chuska-www-cantabriatorren...
 
03 optimizacion
03   optimizacion03   optimizacion
03 optimizacion
 
Manual del Electricista Habilitado Categoría 3
Manual del Electricista Habilitado Categoría 3Manual del Electricista Habilitado Categoría 3
Manual del Electricista Habilitado Categoría 3
 
Vip users baja resolucion--guia-pc-hardware
Vip users baja resolucion--guia-pc-hardwareVip users baja resolucion--guia-pc-hardware
Vip users baja resolucion--guia-pc-hardware
 
Vip users produccion musical
Vip users produccion musicalVip users produccion musical
Vip users produccion musical
 
Vip users imprimir-tecnico hardware desde cero
Vip users imprimir-tecnico hardware desde ceroVip users imprimir-tecnico hardware desde cero
Vip users imprimir-tecnico hardware desde cero
 
Vip users windows 7
Vip users windows 7Vip users windows 7
Vip users windows 7
 
47090239 revist-users-video
47090239 revist-users-video47090239 revist-users-video
47090239 revist-users-video
 
04 diagnostico
04   diagnostico04   diagnostico
04 diagnostico
 
Vip users windows 8
Vip users windows 8Vip users windows 8
Vip users windows 8
 

Similar a Mundo 3 d

Tarjetas de video
Tarjetas de videoTarjetas de video
Tarjetas de video
Esmailyn García
 
Tarjetas de video
Tarjetas de videoTarjetas de video
Tarjetas de video
Carlos Torres
 
Tarjetas de video
Tarjetas de videoTarjetas de video
Multimedia grupo 3 tarjetas de video
Multimedia grupo 3 tarjetas de videoMultimedia grupo 3 tarjetas de video
Multimedia grupo 3 tarjetas de videodamili5512
 
Presentacion mauro final
Presentacion mauro finalPresentacion mauro final
Presentacion mauro finaljohnfag
 
Tarjetas de video
Tarjetas de videoTarjetas de video
Tarjetas de videoalexis caro
 
Tarjetas de video herramientas de multimedia
Tarjetas de video   herramientas de multimediaTarjetas de video   herramientas de multimedia
Tarjetas de video herramientas de multimedia
Jordi Enrique Lopez Portorreal
 
Manual de reparación pc bolilla x - video y sonido - ver2
Manual de reparación pc   bolilla x - video y sonido - ver2Manual de reparación pc   bolilla x - video y sonido - ver2
Manual de reparación pc bolilla x - video y sonido - ver2Aldo Hernán Zanabria Gálvez
 
Monitores y tarjetas de video
Monitores y tarjetas de videoMonitores y tarjetas de video
Monitores y tarjetas de videoJonathan Uesdb MB
 
Innovasiones tecnologicas
Innovasiones tecnologicasInnovasiones tecnologicas
Innovasiones tecnologicas
MILENAANDREASANTOASPEREZ
 
TARGETA DE VIDEO
TARGETA DE VIDEO TARGETA DE VIDEO
TARGETA DE VIDEO
carolina tuta
 
Exposicion tarjeta de video
Exposicion tarjeta de videoExposicion tarjeta de video
Exposicion tarjeta de videoRichard Torres
 
Tarjeta graficadora gpu
Tarjeta graficadora gpuTarjeta graficadora gpu
Tarjeta graficadora gpu
ANDREA
 
Evolucion de las videoconsolas
Evolucion de  las videoconsolasEvolucion de  las videoconsolas
Evolucion de las videoconsolas
nas2103
 
Tarjetas gráficas 2014
Tarjetas gráficas 2014Tarjetas gráficas 2014
Tarjetas gráficas 2014
Mauricio Espinoza Fajardo
 
Tarjetas de video historia manuel
Tarjetas de video   historia manuelTarjetas de video   historia manuel
Tarjetas de video historia manueljohnfag
 
Tarjetas de video historia manuel
Tarjetas de video   historia manuelTarjetas de video   historia manuel
Tarjetas de video historia manueljohnfag
 

Similar a Mundo 3 d (20)

Tarjetas de video
Tarjetas de videoTarjetas de video
Tarjetas de video
 
Tarjetas de video
Tarjetas de videoTarjetas de video
Tarjetas de video
 
Tarjetas de video
Tarjetas de videoTarjetas de video
Tarjetas de video
 
Multimedia grupo 3 tarjetas de video
Multimedia grupo 3 tarjetas de videoMultimedia grupo 3 tarjetas de video
Multimedia grupo 3 tarjetas de video
 
Presentacion mauro final
Presentacion mauro finalPresentacion mauro final
Presentacion mauro final
 
Tarjetas de video
Tarjetas de videoTarjetas de video
Tarjetas de video
 
Tarjetas de video herramientas de multimedia
Tarjetas de video   herramientas de multimediaTarjetas de video   herramientas de multimedia
Tarjetas de video herramientas de multimedia
 
Manual de reparación pc bolilla x - video y sonido - ver2
Manual de reparación pc   bolilla x - video y sonido - ver2Manual de reparación pc   bolilla x - video y sonido - ver2
Manual de reparación pc bolilla x - video y sonido - ver2
 
Monitores y tarjetas de video
Monitores y tarjetas de videoMonitores y tarjetas de video
Monitores y tarjetas de video
 
Innovasiones tecnologicas
Innovasiones tecnologicasInnovasiones tecnologicas
Innovasiones tecnologicas
 
Presentac..
Presentac..Presentac..
Presentac..
 
TARGETA DE VIDEO
TARGETA DE VIDEO TARGETA DE VIDEO
TARGETA DE VIDEO
 
Tarjetas gráficas
Tarjetas gráficasTarjetas gráficas
Tarjetas gráficas
 
Exposicion tarjeta de video
Exposicion tarjeta de videoExposicion tarjeta de video
Exposicion tarjeta de video
 
Tarjeta graficadora gpu
Tarjeta graficadora gpuTarjeta graficadora gpu
Tarjeta graficadora gpu
 
Videoconsola
VideoconsolaVideoconsola
Videoconsola
 
Evolucion de las videoconsolas
Evolucion de  las videoconsolasEvolucion de  las videoconsolas
Evolucion de las videoconsolas
 
Tarjetas gráficas 2014
Tarjetas gráficas 2014Tarjetas gráficas 2014
Tarjetas gráficas 2014
 
Tarjetas de video historia manuel
Tarjetas de video   historia manuelTarjetas de video   historia manuel
Tarjetas de video historia manuel
 
Tarjetas de video historia manuel
Tarjetas de video   historia manuelTarjetas de video   historia manuel
Tarjetas de video historia manuel
 

Más de xavazquez

Users técnico pc - jpr504 - 24
Users   técnico pc - jpr504 - 24Users   técnico pc - jpr504 - 24
Users técnico pc - jpr504 - 24xavazquez
 
Users técnico pc - jpr504 - 23
Users   técnico pc - jpr504 - 23Users   técnico pc - jpr504 - 23
Users técnico pc - jpr504 - 23xavazquez
 
Users técnico pc - jpr504 - 22
Users   técnico pc - jpr504 - 22Users   técnico pc - jpr504 - 22
Users técnico pc - jpr504 - 22xavazquez
 
Users técnico pc - jpr504 - 21
Users   técnico pc - jpr504 - 21Users   técnico pc - jpr504 - 21
Users técnico pc - jpr504 - 21xavazquez
 
Users técnico pc - jpr504 - 20
Users   técnico pc - jpr504 - 20Users   técnico pc - jpr504 - 20
Users técnico pc - jpr504 - 20xavazquez
 
Users técnico pc - jpr504 - 19
Users   técnico pc - jpr504 - 19Users   técnico pc - jpr504 - 19
Users técnico pc - jpr504 - 19xavazquez
 
Users técnico pc - jpr504 - 18
Users   técnico pc - jpr504 - 18Users   técnico pc - jpr504 - 18
Users técnico pc - jpr504 - 18xavazquez
 
Users técnico pc - jpr504 - 17
Users   técnico pc - jpr504 - 17Users   técnico pc - jpr504 - 17
Users técnico pc - jpr504 - 17xavazquez
 
Users técnico pc - jpr504 - 16
Users   técnico pc - jpr504 - 16Users   técnico pc - jpr504 - 16
Users técnico pc - jpr504 - 16xavazquez
 
Users técnico pc - jpr504 - 15
Users   técnico pc - jpr504 - 15Users   técnico pc - jpr504 - 15
Users técnico pc - jpr504 - 15xavazquez
 
Users técnico pc - jpr504 - 14
Users   técnico pc - jpr504 - 14Users   técnico pc - jpr504 - 14
Users técnico pc - jpr504 - 14xavazquez
 
Users técnico pc - jpr504 - 13
Users   técnico pc - jpr504 - 13Users   técnico pc - jpr504 - 13
Users técnico pc - jpr504 - 13xavazquez
 
Users técnico pc - jpr504 - 12
Users   técnico pc - jpr504 - 12Users   técnico pc - jpr504 - 12
Users técnico pc - jpr504 - 12xavazquez
 
Users técnico pc - jpr504 - 11
Users   técnico pc - jpr504 - 11Users   técnico pc - jpr504 - 11
Users técnico pc - jpr504 - 11xavazquez
 
Users técnico pc - jpr504 - 10
Users   técnico pc - jpr504 - 10Users   técnico pc - jpr504 - 10
Users técnico pc - jpr504 - 10xavazquez
 
Users técnico pc - jpr504 - 09
Users   técnico pc - jpr504 - 09Users   técnico pc - jpr504 - 09
Users técnico pc - jpr504 - 09xavazquez
 
Users técnico pc - jpr504 - 08
Users   técnico pc - jpr504 - 08Users   técnico pc - jpr504 - 08
Users técnico pc - jpr504 - 08xavazquez
 
Users técnico pc - jpr504 - 07
Users   técnico pc - jpr504 - 07Users   técnico pc - jpr504 - 07
Users técnico pc - jpr504 - 07xavazquez
 
Users técnico pc - jpr504 - 06
Users   técnico pc - jpr504 - 06Users   técnico pc - jpr504 - 06
Users técnico pc - jpr504 - 06xavazquez
 
Users técnico pc - jpr504 - 05
Users   técnico pc - jpr504 - 05Users   técnico pc - jpr504 - 05
Users técnico pc - jpr504 - 05xavazquez
 

Más de xavazquez (20)

Users técnico pc - jpr504 - 24
Users   técnico pc - jpr504 - 24Users   técnico pc - jpr504 - 24
Users técnico pc - jpr504 - 24
 
Users técnico pc - jpr504 - 23
Users   técnico pc - jpr504 - 23Users   técnico pc - jpr504 - 23
Users técnico pc - jpr504 - 23
 
Users técnico pc - jpr504 - 22
Users   técnico pc - jpr504 - 22Users   técnico pc - jpr504 - 22
Users técnico pc - jpr504 - 22
 
Users técnico pc - jpr504 - 21
Users   técnico pc - jpr504 - 21Users   técnico pc - jpr504 - 21
Users técnico pc - jpr504 - 21
 
Users técnico pc - jpr504 - 20
Users   técnico pc - jpr504 - 20Users   técnico pc - jpr504 - 20
Users técnico pc - jpr504 - 20
 
Users técnico pc - jpr504 - 19
Users   técnico pc - jpr504 - 19Users   técnico pc - jpr504 - 19
Users técnico pc - jpr504 - 19
 
Users técnico pc - jpr504 - 18
Users   técnico pc - jpr504 - 18Users   técnico pc - jpr504 - 18
Users técnico pc - jpr504 - 18
 
Users técnico pc - jpr504 - 17
Users   técnico pc - jpr504 - 17Users   técnico pc - jpr504 - 17
Users técnico pc - jpr504 - 17
 
Users técnico pc - jpr504 - 16
Users   técnico pc - jpr504 - 16Users   técnico pc - jpr504 - 16
Users técnico pc - jpr504 - 16
 
Users técnico pc - jpr504 - 15
Users   técnico pc - jpr504 - 15Users   técnico pc - jpr504 - 15
Users técnico pc - jpr504 - 15
 
Users técnico pc - jpr504 - 14
Users   técnico pc - jpr504 - 14Users   técnico pc - jpr504 - 14
Users técnico pc - jpr504 - 14
 
Users técnico pc - jpr504 - 13
Users   técnico pc - jpr504 - 13Users   técnico pc - jpr504 - 13
Users técnico pc - jpr504 - 13
 
Users técnico pc - jpr504 - 12
Users   técnico pc - jpr504 - 12Users   técnico pc - jpr504 - 12
Users técnico pc - jpr504 - 12
 
Users técnico pc - jpr504 - 11
Users   técnico pc - jpr504 - 11Users   técnico pc - jpr504 - 11
Users técnico pc - jpr504 - 11
 
Users técnico pc - jpr504 - 10
Users   técnico pc - jpr504 - 10Users   técnico pc - jpr504 - 10
Users técnico pc - jpr504 - 10
 
Users técnico pc - jpr504 - 09
Users   técnico pc - jpr504 - 09Users   técnico pc - jpr504 - 09
Users técnico pc - jpr504 - 09
 
Users técnico pc - jpr504 - 08
Users   técnico pc - jpr504 - 08Users   técnico pc - jpr504 - 08
Users técnico pc - jpr504 - 08
 
Users técnico pc - jpr504 - 07
Users   técnico pc - jpr504 - 07Users   técnico pc - jpr504 - 07
Users técnico pc - jpr504 - 07
 
Users técnico pc - jpr504 - 06
Users   técnico pc - jpr504 - 06Users   técnico pc - jpr504 - 06
Users técnico pc - jpr504 - 06
 
Users técnico pc - jpr504 - 05
Users   técnico pc - jpr504 - 05Users   técnico pc - jpr504 - 05
Users técnico pc - jpr504 - 05
 

Mundo 3 d

  • 1. Diego Ruiz | diego@dedalus-software.com.ar No es novedad escuchar que la tecnología avanza rápidamente, y este dicho, en el mundo 3D, está lejos de ser una excepción. Quien no haya jugado a un videojuego en los últimos dos años se sorprenderá muchísimo al ver cuánto han cambiado. Y es que el mercado de los videojuegos mueve enormes sumas de dinero, y estas cifras justifican inversiones gigantescas en desarrollo de tecnología relacionada. En 1992 salieron al mercado Wölfestein 3D y Alone in the Dark, dos exponentes de títulos en tres dimensiones que marcarían el comienzo de una época. Claro que aquellos juegos distan mucho de lo que podemos encontrar hoy en día en las consolas de última generación, pero experimentar la sensación que nos otorgaban hacía evidente que la era de los juegos 2D estaba llegando a su fin. Desde el punto de vista técnico, un juego 3D (si bien comparte muchas de las características de uno 2D) es un mundo nuevo, especialmente en el apartado gráfico. Los personajes ya no son sprites sino modelos conformados por polígonos y recubiertos de texturas; los escenarios dejaron de ser mapas armados a partir de pequeños bitmaps, y ahora son auténticas y complejas mallas usualmente ordenadas por algoritmos de particionamiento espacial como el BSP (Binary Space Partitioning); y muchos elementos nuevos entran en escena, como luces, materiales, sistemas de partículas 3D, etc. En esta nota, introduciremos algunos de los conceptos más importantes que maneja la tecnología 3D y veremos su aplicación al desarrollo de videojuegos. También analizaremos cuáles son los dispositivos que hoy se pueden encontrar en el mercado y cuáles son las consolas de videojuegos que anhelaremos en unos pocos meses. Pero, para lograrlo, vamos a ver un poco cómo fue avanzando este mercado, sumergiéndonos en la historia reciente de los adaptadores de video. 24 POWERUSR
  • 2. UN POCO DE HISTORIA LA IMPORTANCIA DE LAS PLACAS DE VIDEO EN NUESTRAS COMPUTADORAS SE HA IDO INCREMENTANDO CON EL PASO DEL TIEMPO. EN UN PRINCIPIO, LAS MEJORAS ESTABAN RELACIONADAS CON LA CANTIDAD DE COLORES QUE PODIA OFRECER EL DISPOSITIVO Y/O CON LA RESOLUCION. SIN EMBARGO, POCO A POCO, ESTOS ELEMENTOS FUERON ADQUIRIENDO MAYOR FUNCIONALIDAD Y SE HAN HECHO FUNDAMENTALES PARA LOS JUEGOS. C Escribir un byte en ella significaba modificar el color de un pixel en nuestro monitor. Luego, los dispositivos de video comenzaron a ganar in-teligencia, fruto de la necesidad de crear aplicaciones ca-da vez más complejas (principalmente, juegos). Dejaron de ser estúpidos esclavos que sólo leían una porción de su memoria para generar la señal correspondiente por el puerto de salida al monitor. Comenzaba la era de las placas aceleradoras 3D. Se denomi-naron vagamente aceleradoras, debido a que implementa-ban —en mayor o menor medida— operaciones en hardware que, clásicamente, se hacían por software, razón por la cual las aplicaciones 3D se ejecutaban con más velocidad. EL INICIO DE LA ERA 3D En estas páginas pretendemos remitirnos más a las genera-ciones y arquitecturas de dispositivos que a los modelos es-pecíficos que cada empresa saca al mercado cada seis me-ses. Sin embargo, existen hitos que son marcados específi-camente por una u otra firma, y que no pueden quedar al margen. Un ejemplo de lo expresado es el caso de la difunta compañía 3Dfx Interactive (ver recuadro). La primera generación de procesadores de video inteligentes consistió en la implementación de un grupo de operaciones prefijadas por medio de las cuales se procesaba una serie de vértices que luego finalizarían representando polígonos en pantalla, materia prima de todo objeto 3D. Dicha inteligencia fue “vendida” comercialmente a los usua-rios finales por parte de NVIDIA bajo el nombre “motor de transformación e iluminación” (Transformation and Lighting), más conocida popularmente por su abreviatura, TnL. Para comprender un poco mejor cómo funciona este tipo de dispositivos, es conveniente introducir el modo en que PLACAS DE VIDEO uando las computadoras personales irrumpieron en el mercado, el adaptador más popular era el MDA (un fabricante muy popular de aquel enton-ces era la empresa Hercules), un dispositivo que ofrecía una resolución de 720x350 y era monocromático. Luego, llegó el momento del color. Al comienzo, con dis-positivos modestos como el clásico CGA (Color Graphics Adapter), que brindaba tan sólo cuatro colores con una resolución de 320x200 (alcanzaba 640x480 en modo mo-nocromático). Y tras él, el dispositivo EGA (Enhanced Graphics Adapter), que ofrecía 16 colores en una ya de-cente resolución de 640x350. Sin embargo, muchas personas conocieron el color ya con el popular VGA (Video Graphics Adapter) y sus con-secuentes mejoradas versiones (SVGA, XGA, SXGA, etc.). El adaptador VGA ofrecía 256 colores en resolución de 320x200; el SVGA (Super Video Graphics Adapter), por su parte, dependía de la cantidad de memoria que poseía la placa. A partir de este punto, ingresamos en la historia reciente de las placas de video. LA MEMORIA DE VIDEO Cuando las placas SVGA eran las más populares dentro de nuestros flamantes gabinetes mini tower, la caracte-rística más importante del dispositivo era la cantidad de memoria que poseía. A mayor memoria, mayor cantidad de colores y mayor resolución para deleitarnos la vista. Con 1 MB de RAM en nuestra placa de video, podíamos llegar a una resolución de 1024x768 con profundidad de 256 colores y ser el orgullo (nerd) de la cuadra. En aquel entonces, la memoria de video se utilizaba exclusiva-mente como video buffer, es decir que era una represen-tación lógica de lo que se veía en pantalla. ATARI 2600: PROGRAMAR SIN VIDEO BUFFER La consola de juegos más popular de Atari fue la gloriosa Atari 2600. Una de las razones de su éxito fue su bajo costo de fabricación. En aquella época, la memoria era muy cara, y disponer de un video buffer en la consola incrementaba notablemente su precio. El total de memoria con que contaba el sistema para dibujar en pantalla era suficiente sólo para dos líneas de video. Los programadores debían ingeniárselas para escribir, de modo sincronizado, el barrido vertical, y así crear en pantalla la imagen que el juego necesitara en cada momento. La consola Atari 2600 tenía un procesador 6507 de 8 bits (1,19 MHz), 128 bytes de RAM, 4 KB máximos de ROM, una resolución en pantalla de 192x160 pixeles y 16 colores (4 simultáneos en pantalla). El primer modelo salió a la calle en 1978, y el último —el Atari 2600 Jr.—, en 1986 (aunque recientemente se lanzó, para los nostálgicos, una pequeña consolita Atari 2600 dentro de su clásico joystick con diez juegos incluidos). LA VCS (VIDEO COMPUTER SYSTEM) ATARI 2600. POWERUSR 25
  • 3. end). Para esto lanzan diversos modelos que se ajusten a la necesidad y el bolsi-llo de cada usuario. En el mercado high end, el modelo de vanguardia de NVIDIA es la serie GeForce 6800 (teniendo como mayor exponente la versión Ultra), mientras que 3DFX INTERACTIVE 3Dfx Interactive fue una empresa dedicada al desarrollo de dispositivos de video 3D. Signo del tiempo en el que vivimos, fue un ejemplo notorio de lo efímero que es el éxito; muchos no la vieron venir. Se formó en el año 1994, y en 1998 ya era dueña casi total del mercado de aceleradoras 3D. Lo curioso del caso es que 3Dfx, en un principio, ofrecía un dispositivo que era un complemento para el adaptador de video principal del sistema. Por lo tanto, una PC con los modelos de placas Voodoo Graphics o Voodoo2 requería una placa de video convencional para realizar el trabajo en escritorio de Windows. Además, sólo aceleraba aplicaciones en pantalla completa que hicieran uso de su API de programación (Glide) y ofrecía una profundidad de colores de únicamente 16 bits. Aun así, 3Dfx Interactive se convirtió en el líder del mercado y entró en la ATI ofrece su línea RADEON X850 (cuyo tope es la poderosa XT Platinum Edition). Si bien no es objeto de este artículo espe-cificar con gran detalle los modelos de estos fabricantes, en la tabla de esta página podemos ver las opciones de me-jor rendimiento propuestas por ambos. fase más compleja: mantenerse en la cresta de la ola. A mediados de 1999 sacó al mercado el modelo Voodoo3, que arremetía contra la mayor cantidad de defectos que se les podía achacar a los modelos anteriores, pero ya no estaba solo: NVIDIA poco a poco se convertía en una espada de Damocles y, silenciosamente, ganaba mercado con sus productos TNT y, luego, TNT2. La Voodoo3 vendió relativamente bien, pero no tanto como se esperaba. 3Dfx intentó recuperarse con una nueva familia de productos: Voodoo4 y Voodoo5. Pero en aquel momento, NVIDIA había finalizado su flamante GeForce: la suerte estaba echada. 3Dfx Interactive tomó malas decisiones estratégicas y tuvo atrasos considerables en el lanzamiento de sus últimos modelos. Finalmente, en 2000 fue comprada por NVIDIA, con lo cual finalizó su ciclo de vida. PLACAS DE ULTIMA GENERACION Característica NVIDIA 6800 ULTRA ATI RADEON X850 PE Interfaz de memoria 256 bits 256 bits Cantidad de memoria 512 MB 256 MB Tipo de memoria GDDR3 GDDR3 Velocidad memorias 1,1 GHz 1,1 GHz Velocidad core 400 MHz 540 MHz Fill rate 6,4 Gpixels/s 8,6 Gpixels/s Vértices por segundo 600 MT/s 810 MT/s RAMDAC 400 MHz 400 MHz Cantidad de pipelines 16 16 Cantidad de transistores 222 millones 160 millones Vertex shader model 3.0 2.0 Pixel shader model 3.0 2.0 Tipo interfaz AGP / PCIE AGP / PCIE Max. resolución 2048x1536 2048x1536 trabajan las librerías 3D más popula-res, como es el caso de OpenGL y Direct3D, ya que éstas se desarrollan paralelamente al hardware, a tal punto que en algunos no es fácil de-terminar cuál empuja a cuál. De esto hablaremos en las próximas páginas. PLACAS DE VIDEO DE ULTIMA GENERACION Tanto la gigante californiana NVIDIA como el contendiente canadiense ATI Technologies se encuentran compi-tiendo ferozmente por liderar el mer-cado de los dispositivos de video. Por un lado, esto es bueno para nosotros, ya que existe una mejora continua, y sin pausa, de la tecnología gráfica. Por otro lado, dicha competencia mu-chas veces evita un desarrollo de fondo de los nuevos dispositivos: con la necesidad de salir en pocos meses con un producto más veloz que el competidor, simplemente se busca por fuerza bruta aumentar la cantidad de procesamiento del dispositivo, au-mentando la frecuencia de clock de la GPU y/o aumentando la velocidad a la cual trabajan las memorias, lo cual significa mayor consumo, más calor, mayor tamaño de placa, etc. Ambas empresas diferencian a los mercados de alto desempeño (high end) de aquellos más modestos (low EN ESTA FOTO SE PUEDE OBSERVAR LA CLASICA TARJETA DE VIDEO 3DFX VOODOO3 3000. 26 POWERUSR
  • 4. COMO SE FORMAN LAS IMAGENES DE POLIGONOS Y VERTICES ¿NUNCA SE PREGUNTARON COMO ES QUE SE PROCESAN LAS IMAGENES EN LA COMPUTADORA? LA GENERACION DE UN MUNDO 3D EN UNA PANTALLA BIDIMENSIONAL COMO LA DEL MONITOR IMPLICA LA APLICACION DE DISTINTAS TECNICAS REALIZADAS DIRECTAMENTE POR LA PLACA DE VIDEO. AQUI VEREMOS COMO FUNCIONAN. C uando estamos jugando un juego 3D de computadora o consola, todo lo que vemos en escena son objetos formados por polígonos (más específica-mente, triángulos), los cuales, a su vez, se encuentran formados por vértices. Cada vértice de un objeto en particular (por ejemplo, un personaje del juego) está definido en un espacio local a dicho obje-to; es decir que posee un centro (0, 0, 0) relativo a sí mismo e independiente del origen del mundo donde finalmente será inmerso. Como es posible inferir, existe una conversión de un espacio a otro que alguien debe realizar; al mismo tiempo, todos los vértices deberán ser reorientados dentro de una escena para que ésta sea visualizada desde un punto en particular (como si se tratara del ojo de una cáma-ra). Entonces, se definen ciertos linea-mientos con los cuales se procesarán los vértices y se facilitará la operación con ellos en los usos más comunes. El pipeline prefijado establece (como se puede apreciar en la figura de la página 30) una serie de operaciones que se reali-zarán sobre cada vértice entrante (de cada triángulo, de cada objeto del juego). ETAPA 1: PROCESAMIENTO DE VERTICES El pipeline se alimenta de vértices. Cada uno es convertido en coordenadas ho-mogéneas para, luego, poder ser multi-plicado por tres matrices: la matriz de mundo, la de vista y la de proyección. Luego, la coordenada resultante es rees-calada en función del punto de visuali-zación especificado (en general, la pan-talla completa o la ventana que estamos utilizando como objetivo para el dibuja-do) y, en caso de quedar fuera del área de visualización, es eliminada. Finalmente, el vértice es transferido al proceso de rasterización, donde será di-bujado en pantalla. La matriz de mundo: la primera ma-triz de mundo se utiliza para colocar el objeto en la escena 3D. Realiza una transformación que va del espacio del modelo al espacio del mundo en el cual trabajamos. La transformación de mun-do puede incluir traslaciones, rotaciones y escalamientos. La matriz de vista: esta segunda matriz reubica todos los objetos en función de un punto de visualización especificado. La matriz de proyección: especifica, principalmente, la escala y la perspecti-va adoptadas. Esta matriz determinará, también, cuánto vemos de la escena, es decir, el volumen de visualización. Es importante entender que el uso de matrices es un recurso matemático crea-do para simplificar la manipulación de vértices. Con ellas es muy sencillo mo-dificar la posición, la orientación y la escala de éstos. Una vez que el vértice ha sido procesa-do, si se mantiene dentro del volumen de visualización predefinido, pasará a una segunda etapa: la rasterización. ETAPA 2: LA RASTERIZACION En la rasterización se “pintan” los vérti-ces, y para hacerlo se utiliza una ecua-ción en la cual participan varios elemen-tos, como el color del vértice, las luces de la escena que lo afectan, la normal que especifica el vértice en cuestión y el material activo que corresponda. Luego, se rellena todo el triángulo, realizando una interpolación de los colores de cada vértice que lo conforman. Un objeto 3D también puede estar cu-bierto por una textura, que es, básica-mente, un mapa de bits con ciertas pro-piedades. Las texturas, para poder ser aplicadas a la geometría, deben estar cargadas en memoria de video. De este modo, ya no son sólo utilizadas como video buffer. Este uso “secundario” es, hoy en día, la principal razón para optar por tarjetas de mayor memoria: una pla-ca de video con más memoria podrá al-bergar más texturas, y de mejor calidad. Las placas de última generación poseen 256 MB o 512 MB de memoria de video, MODELO FORMADO CON VERTICES QUE ESPECIFICAN COORDENADAS DE TEXTURA. EL MISMO MODELO DE LA IZQUIERDA, PERO YA CON UNA TEXTURA APLICADA. 28 POWERUSR
  • 5. cifra que es el promedio, al día de hoy, de la memoria principal en nuestros equipos. Pero si bien el proceso de iluminar vérti-ces por hardware fue un gran avance, al poco tiempo dejó de ser suficiente. Se precisaba una flexibilidad mayor, pero... ¿cómo saber qué operaciones implemen-tar en una GPU, si las necesidades po-drían ser distintas? Pues permitiendo que cada desarrollador escribiera el programa que manipulara los vértices a su gusto. Por ejemplo, ¿cómo podríamos imple-mentar que un conjunto de vértices se moviera dentro de un rango de posicio-nes en función del tiempo? Utilizando el pipeline prefijado, deberíamos modificar el valor de cada vértice antes de ingresar en él, o modificar la matriz de mundo por cada vértice que tuviera un valor es-pecífico. Ambos métodos son factibles pero poco eficientes, pues requieren un uso notable de la CPU. Mejor sería poder hacer la cuenta del cálculo del desplaza-miento de la posición de cada vértice en el pipeline y, mejor aún, liberar a la CPU de dicho cálculo. El pipeline programable nos permite es-pecificar (mediante un lenguaje especia-lizado para tal fin) un programa que procese el vértice en función de sus ne-cesidades. Estos pequeños programas re-ciben el nombre de shaders; más especí-ficamente, cuando trabajan con vértices, vertex shaders, y cuando lo hacen con pixeles, pixel shaders. PIXEL Y VERTEX SHADERS Los dispositivos de video con pixel y vertex shaders son moneda corriente en el mercado de las placas de video actua-les; casi todos los juegos AAA modernos hacen uso de esta característica de algún modo, y hasta algunos, recientemente, comenzaron a exigir que esta caracterís-tica estuviera presente para poder iniciar su ejecución. La característica básica de esta nueva tecnología consiste en una GPU progra-mable. Con los vertex shaders es posible especificar un pequeño programa que to-me al vértice entrante y lo manipule a su gusto. De este modo, se pueden efectuar cálculos aritméticos arbitrarios tomando como materia prima vértices (en el caso de vertex shaders) y pixeles (en el caso de pixel shaders). La versión 9.0c de DirectX permite utilizar la versión 3.0 del set de instrucciones de pixel y vertex shaders. En ella se incorpora mayor cantidad de instrucciones aritméti-cas, mayor cantidad de registros y mayor cantidad máxima de instrucciones por programa que en versiones anteriores. DirectX 9 puede emular el uso de vertex shaders cuando el hardware necesario no está presente, mediante una capa de emu-lación vía software. Claro que lo hace con una performance notablemente inferior a la implementación en GPU. VERSIONES DE SHADERS EN DIRECTX DirectX 8.0: primer soporte a pixel y vertex shaders. Se soportaron las versiones 1.0 y 1.1 de pixel shader, y las versiones 1.0 y 1.1 de vertex shader. DirectX 8.1: no hubo cambios en vertex shaders. Se agregó soporte para versiones 1.2, 1.3 y 1.4 para pixel shaders. DirectX 9.0: se agregó soporte para pixel y vertex shaders 2.0. DirectX 9.0c: se agregó soporte para pixel y vertex shaders 3.0. VERTEX SHADERS: REGISTROS DE ENTRADA Registro Descripción Cantidad en VS 1.1 Cantidad en VS 2.0 Cantidad en VS 2.x a0 Direccionamiento 1 1 1 c# Constante (tipo float) 96 (como mínimo) 256 (como mínimo) 256 (como mínimo) v# Entrada 16 16 16 r# Temporal 12 12 12 (como mínimo) b# Constante (tipo bool) - 16 16 i# Constante (tipo int) - 16 16 aL Contador de bucle - 1 1 p0 Predicado - - 1 VERTEX SHADERS: REGISTROS DE SALIDA Registro Descripción Cantidad en VS 1.1 Cantidad en VS 2.0 Cantidad en VS 2.x oPos Posición 1 1 1 oFog Niebla 1 1 1 oPts Tamaño punto 1 1 1 oD# Color 2 (difuso y especular) 2 (difuso y especular) 2 (difuso y especular) oT# Coordenadas de textura 8 8 8 * Nota: En la versión 3.0 de VS los registros de salida son 12 y son generales; se dejó de lado la especificación del tipo, y ahora el sistema es más flexible y pueden utilizarse según conveniencia. POWERUSR 29
  • 6. OPERADORES PROGRAMABLES LOS SHADERS SIEMPRE HABLAMOS DE LOS SHADERS Y DE SU IMPORTANCIA EN LAS TARJETAS DE VIDEO ACTUALES. LO QUE NUNCA COMENTAMOS ES COMO SE COMPONEN INTERNAMENTE Y DE QUE MANERA LOS UTILIZAN LOS PROGRAMADORES DE JUEGOS PARA CREAR SUS MARAVILLAS. EN ESTAS PAGINAS NOS METEREMOS DENTRO DE LOS PIXEL Y VERTEX SHADERS, Y LOS MOSTRAREMOS EN DETALLE. L os vertex shaders operan sobre vértices o, mejor dicho, la salida de la operación de un vertex shaders es un vértice en formato homo-géneo, listo para ser enviado a la etapa de clipping y reescalado. Un vertex shader no puede crear ni des-truir geometría (no puede crear vértices ni tampoco puede eliminarlos). Opera con un vértice a la vez y puede manipular la geo-metría existente modificando propiedades del vértice manipulado. Un pixel shader especifica el color en un pixel; usualmente, recibe como entrada coordenadas de textura. Existe cierta independencia en el uso de pixel o vertex shaders. Por lo general, los vertex shaders hacen modificaciones en la geometría, como ciertas transformaciones para crear efectos específicos (como pe-queñas olas en el agua), mientras que los pixel shaders se utilizan, principalmente, para realizar cálculos arbitrarios de ilumi-nación (como la iluminación por pixeles tan frecuente en los juegos actuales, como Doom 3 y Far Cry). VERTEX SHADERS Los vertex shaders podrían reemplazar al motor de transformación e iluminación prefijado que existía en el pipeline tradi-cional utilizado por OpenGL o Direct3D. Nuestra aplicación podría utilizar ambos para distintos vértices, pero no para el mismo, ya que se excluyen mutuamente (ver figura del pipeline completo). Debido a que los vertex shaders reemplazan al EL PIPELINE COMPLETO motor TnL, se infiere que deberían produ-cir la misma salida; en otras palabras, el vertex shader recibirá un vértice y deberá entregar un vértice, en una relación es-tricta de uno a uno; no podrá cambiar la cantidad final de vértices. La entrada a un vertex shader es uno o más vértices e información de estados del pipeline (existen estados de renderización que pueden modificar el modo en que se produce la salida). La salida es la posición en espacio de recorte (clipping) y el resto de la información usual del vértice en función de su formato (color, coordenadas de textura, etc.). ARQUITECTURA DE LOS VERTEX SHADERS El vertex shader es un programa que to-mará como entrada un vértice, y dejará a la salida: Un vértice en espacio de recorte Un color de vértice (en función del formato de vértice) Coordenadas de texturas (en función del formato de vértice) Intensidad de niebla (opcionalmente) Tamaño de punto (en función del for-mato de vértice) Como mínimo, el programa del shader deberá tomar el vértice y realizar una transformación que lo lleve de espacio local a espacio de recorte. Luego, el vér-tice contendrá información opcional que estará de acuerdo con el formato de vér- tice y el estado de renderización. Veamos sólo un poco de código de un vertex shader que realice esta operación mínima: dp4 oPos.x, v0, c0 dp4 oPos.y, v0, c1 dp4 oPos.z, v0, c2 dp4 oPos.w, v0, c3 En este caso, hemos empleado lenguaje ensamblador de la GPU, y no, HLSL. Quienes conozcan algo de ensamblador para cualquier microprocesador notarán una sintaxis familiar: un mnemónico re-presentando la operación por realizar, un componente sobre el cual se realiza la operación (en este caso, componentes de un registro de salida) y luego argumen-tos de la operación. dp4: operación por realizar, significa “producto punto de cuatro componentes”. oPos: registro de salida del vértice (es un vector de cuatro componentes) v0: registro de entrada, desde donde to-mamos el vértice con el cual trabajamos. c0..c3: constantes (vectores de cuatro componentes cada una de ellas). Esquematizando la operación, lo que he-mos hecho es lo que se puede apreciar en la figura de la página siguiente. Es decir, hemos multiplicado el vértice entrante por una matriz construida a partir de cuatro vectores constantes. La salida fue coloca-da en un registro de salida. Frame buffer blending Primitiva de teselación de alto nivel Información de vértices Vertex shader Motor de iluminación y transformación (TnL) Recorte y reescalado Pixel shader Multitexturado de DirectX 6/7 Blending de niebla Testeo de Alpha, Stencil y Depth 30 POWERUSR
  • 7. La interfaz más general de las dos es la de vertex shaders. Por medio de ella, el programador podrá usar instrucciones para especificar las operaciones que realizará el dispositivo de video con los vértices entrantes. La interfaz de pixel shaders es un poco más complicada y po-see ciertas restricciones que hay que tener en cuenta. La más importante es que los pixel shaders sólo pueden ejecutarse en un hardware que los soporte; por lo tanto, si deseamos crear juegos que utilicen esta funcionalidad y que, al mismo tiempo, funcionen en equipos no programables, deberemos realizar más de un flujo de ejecución. Hasta el momento, para hacer uso de estas facilidades el progra-mador debía escribir el código en el lenguaje ensamblador de la placa de video sobre un procesador de textos. Naturalmente (y co-mo era de esperar), comenzaron a implementarse herramientas que ayudan al programador en esta tarea: entornos que facilitan la creación de efectos y lenguajes de alto nivel que luego son tradu-cidos al lenguaje ensamblador de la placa de video en cuestión. PROGRAMACION EN ENSAMBLADOR En una época, los juegos se programaban en lenguaje ensambla-dor. Este lenguaje consiste en instrucciones de procesador de ba-jo nivel, que luego se traducen en código binario y, finalmente, son ejecutadas por el microprocesador. Programar directamente en el lenguaje que entiende la máquina posee muchas ventajas: tendremos control absoluto del modo en que se administran los registros (“posiciones de memoria” que se pueden leer y escribir de manera muy veloz, porque son locales al microprocesador). La gran desventaja es que programar en ensamblador es compli-cado. Veamos un programa sencillo en este lenguaje: mov AX, algún_número ; asigna un número cualquiera al cmp AX, 5 ; compara el contenido del registro AX je true ; si la comparación fue existosa salta mov CX, 2 ; asigna el número 2 al registro CX VERTEX SHADER PIXEL SHADER registros de vértices v15 registro de direcciones (VS 1.1 y superiores) v0 r0 t0 Etapa 0 registros temporales a0 c0 r1 Unidad de procesamiento de vértices registros temporales constantes v0 v1 c1 c95 oDn oT registros de salida pixel de salida r11 REGISTROS DE ENTRADA, TEMPORALES Y DE SALIDA, QUE SE PUEDEN UTILIZAR EN UN VERTEX SHADER. registro AX con el número 5 a la etiqueta “true” Etapa 1 Etapa 2 Etapa 3 t1 t2 t3 r0 r1 c0 c1 c7 Unidad de procesamiento de píxeles REGISTROS DE ENTRADA, TEMPORALES Y DE SALIDA QUE PUEDEN UTILIZARSE EN UN PIXEL SHADER. PIXEL SHADERS Los pixels shaders reemplazan las operaciones de multitextura-do fijas del pipeline prefijado. Para entender mejor cómo fun-cionan los pixels shaders hay que comprender el modo de fun-cionamiento dual que posee el pipeline de texturas. Tradicio-nalmente, dos caminos corren en paralelo manejando operacio-nes de color (vector pipe) y alpha (escalar pipe). El resultado de estas operaciones se mezcla al final, y termina en la especifica-ción de un color con componente alpha. Dentro del pixel shader se pueden realizar operaciones aritméti-cas (con valores de coordenadas de texturas) y operaciones con texturas (haciendo uso de una coordenada de textura). De todos modos, más allá de la operación realizada, la salida debe ser una estructura de color con componentes RGBA (Red, Green, Blue, Alpha: Rojo, Verde, Azul y Alpha). ARQUITECTURA DE LOS PIXEL SHADERS Un pixel shader toma un color como entrada, una textura de coordenada (o más) y una textura activa, y produce un valor RGBA de salida. Es posible ignorar los estados de etapas de texturas que están fijados. De hecho, es posible ignorar las coordenadas de texturas especificadas y fijar el color de mane-ra arbitraria. Lo que podrá cambiar el color fijador de lo que veremos en pantalla será el estado del render state relacionado a la niebla (recordemos que blending de niebla es una etapa posterior al pixel shader). Por lo general, un programa de pixel shaders es más pequeño que uno de vertex shaders, simplemente, debido a las operacio-nes que suelen entrar en juego. HLSL Los dispositivos de video programables que existen hoy son las GeForce#3 y superiores (exceptuando la GeForce#4 MX), y las ATI Radeon 8500 y superiores. Sin embargo, la capacidad de programación de todas estas pla-cas está fuertemente relacionada con el modo por el cual se ac-cede a estas funcionalidades, por medio de la interfaz de vertex shaders y pixel shaders de DirectX 8 (DX8) y DirectX 9 (DX9). constantes POWERUSR 31
  • 8. jmp end ; salta a la etiqueta “end” true: mov CX, 1 ; asigna el número 1 al registro CX end: El mismo programa, en lenguaje C, se escribiría del siguiente modo: a = algún_número; // asigno un número cualquiera a la variable ‘a’ if (a == 5 // ¿es igual a 5? b = 1; // asigno el número 1 a la variable ‘b’ b = 2; // asigno el número 2 a la variable ‘b’ Naturalmente, el código escrito en C es mucho más legible que el escrito en código ensamblador. De hecho, el código ensam-blador requiere de una documentación mucho más precisa, ya que entender cuál es el propósito de un trozo de código, sin es-tar contextualizado en el problema, resulta muy complicado. Otra ventaja de C es que el lenguaje no está atado a ningún microprocesador en particular. Existe un compilador que se en-carga de realizar dicha tarea. Por lo tanto, podemos escribir có-digo C y luego recompilarlo en distintas plataformas. HIGH-LEVEL SHADER LANGUAGES Se podría decir que HLSL es al ensamblador de los VS/PS (ver-tex shaders/pixel shaders) lo que el lenguaje C es al ensambla-dor de la CPU. Veamos qué código de VS se requiere para reali-zar una transformación de vértices sencilla: mov r0, c0 ; copia el registro constante c0 al temporal r0 mov r1, v2 ; copia el registro entrante v2 al temporal r1 dp3 r2, r0, r1 ; realiza un dot product entre los registros r0 y r1 y coloca el resultado en r2 mov r3, c1 ; copia registro constante c1 al temporal r3 max r0, r2, r3 ; clampea valor de r0 al máximo entre r2 y r3 mov oD0, r0 ; escribe |en registro de salida de color oD0 el valor del registro temporal r0 Con HLSL, en cambio, deberíamos escribir: float4 lightdirection = constant[0]; OUT.Diffuse = max(dp3(IN.Normal, lightdirection), 0 ); Nuevamente, el lenguaje de alto nivel permite realizar las mis-mas operaciones en menos pasos, mantener la legibilidad en niveles razonables y desprenderse de características específicas del hardware. Claro que en lo que respecta a la legibilidad, el problema se reduce un poco debido a que los programas de VS/PS no suelen poseer muchas líneas de código. Lo que se debe tener en cuenta es que, a pesar de estar realizando una programación en un nivel más alto, las limitaciones de hard-ware siguen existiendo. En versiones de VS inferiores a la 2, la cantidad de instrucciones máxima y la cantidad de registros pue-den ser un inconveniente; además, no existen instrucciones de control de flujo de ejecución (condicionales, bucles, etc.). Si estamos codificando en ensamblador de Vertex Shader/Pixel Shader, usualmente estaremos más en contacto con las limita-ciones de hardware, ya que la programación está estrechamente relacionada a las características del dispositivo. Codificando en alto nivel, estas limitaciones podrían saltearse e incurrir fácil-mente en errores de programación. El lado negativo es similar al existente en la programación tra-dicional en alto nivel contra la programación en ensamblador de CPU, y es la optimización. Un compilador podrá traducir nuestro código no de la mejor manera posible, cuando una mul-tiplicación y una adición expresada en HLSL podrían ser tradu-cidas a instrucciones de multiplicación (mul) y adición (add) in-dependientes o, tal vez, a una sola instrucción que realizara ambos procesos en una sola operación (mad). Esta situación re-dundará en mayor uso de GPU del necesario y, finalmente, en menor cantidad de cuadros por segundo para nuestro juego. RENDERMONKEY RenderMonkey es una aplicación creada por la compañía diseña-dora de procesadores gráficos ATI Technologies que puede des-cargarse libremente desde el sitio oficial. Es importante destacar que no es un lenguaje, como suele pensarse comúnmente, sino una herramienta pensada para ayudar a los artistas y/o progra-madores a crear shaders. Si alguien desea crear un shader y verlo en acción, deberá crear un framework que realice la carga de la geometría, textu-ras, pase las constantes al shader, etc. Todo este trabajo es rea-lizado por RenderMonkey, por lo que quien quiera crear un efecto deberá concentrarse solamente en su programación espe-cífica del vertex y pixel shader, y no, en aplicaciones auxilia-res. Además, la aplicación permite modificar elementos viendo su consecuencia en tiempo real. Si quieren obtener más información respecto a RenderMonkey, recomiendo visitar www.ati.com/developer/rendermonkey. EN ESTA CAPTURA DE PANTALLA VEMOS A RENDERMONKEY, LA HERRAMIENTA PARA CREAR SHADERS, EN ACCION. 32 POWERUSR
  • 9. EL FUTURO CERCANO LAS CONSOLAS DE JUEGOS DE PROXIMA GENERACION ESPECIALMENTE EN NORTEAMERICA, LAS CONSOLAS DE JUEGOS SON MAS POPULARES QUE LAS PC, NO SOLO POR SU PODER DE PROCESAMIENTO, SINO TAMBIEN POR SU ECONOMIA Y COMODIDAD. POR ESO, CON EL ADVENIMIENTO DE LAS NUEVAS CONSOLAS, NO PODIAMOS DEJAR DE MENCIONAR LO QUE SE VIENE EN ESTE AMBITO ¿LA PLAYSTATION 3? ¡NO! UN CLASICO DISEÑO FALSO DE LOS VARIOS QUE CIRCULAN POR LA RED. to a la placa de video que poseerá la PlayStation 3, NVIDIA anunció en di-ciembre de 2004 que firmó un acuerdo con Sony para encargarse de desarrollar la nueva GPU de la consola, que poseerá una variante de la tercera generación de sus aceleradoras gráficas. XBOX 360 La nueva consola de Microsoft utilizará tres microprocesadores IBM PowerPC co-rriendo a 3,2 GHz, cada uno con dos hilos de ejecución, 32 KB de caché L1 de datos y 32 KB de instrucciones; los tres compar-tirán una caché de 1 MB del tipo L2. La consola poseerá 512 MB RAM del tipo GDDR3, y el disco rígido ahora será un opcional (recordemos que la primera Xbox incluía disco duro, característica que incre-mentaba el peso, el ruido, el consumo y el costo del sistema). Este disco será fácil-mente desmontable —para poder ser trasla-dado a la consola de un amigo con los juegos almacenados en él— y, en principio, se ofrecerá con 20 GB de capacidad. El avance de las partidas también podrá ser almacenado en tarjetas de memoria que van de 64 MB a 1 GB. La placa de video que poseerá la consola ya no será NVIDIA sino ATI, corriendo a 500 MHz con 10 MB integrados de DRAM. Los controles de juego serán inalámbricos l mercado de las consolas de jue-gos mueve muchísimo dinero. Por lo tanto, no debería sorprendernos E la importancia que le brindan a esta uni-dad de negocio las principales empresas que dominan el mercado (Sony, Micro-soft y Nintendo). Sólo en el año 2004 se vendieron un total de 25 millones de consolas en todo el mundo. Las consolas siempre se han caracteriza-do por ser muy avanzadas tecnológica-mente, al menos cuando son lanzadas al mercado. En un principio, los gráficos son increíbles, mucho mejores de lo que puede verse en el mundo de las PCs. Pe-ro luego, los nuevos modelos de CPU y GPU que se ofrecen como partes inde-pendientes para computadoras alcanzan y superan holgadamente a las consolas. Debido a que el ciclo de vida de una consola de juegos es de alrededor de cin-co años, podríamos establecer que las consolas actuales ya son piezas antiguas. Este año en particular presenciaremos el lanzamiento de una nueva generación de consolas. Cuando esta revista se encuen-tre en los kioscos, Microsoft ya habrá presentado internacionalmente la nueva Xbox 360 en un programa especial emi-tido por el canal MTV. Una semana des-pués, Sony hará lo propio en la exposi-ción de entretenimiento electrónico más importante del mundo (E3), introducien-do lo que será la PlayStation 3. Mucho se ha escrito en distintos sitios de la red respecto a estos nuevos y extraordinarios juguetes tecnológicos. También se vieron muchos “posibles” diseños de ellos, aunque casi todos eran fakes (falsos). Las noticias verdaderas se mezclan con las falsas, y hasta el sitio más creíble se hace eco de rumores cuando no hay su-ficiente información para presentar y la expectativa es grande. Por lo pronto, pa-semos en limpio la información oficial que se maneja para las consolas de nue-va generación más importantes. PS3 Y SU EXTRAORDINARIO CEREBRO Sony, Toshiba e IBM han estado trabajan-do de manera mancomunada para crear lo que será el nuevo microprocesador de la consola PlayStation 3, que, además, ten-drá otra infinidad de usos. Su nombre es Cell y ya se oficializaron varias de sus características. El micropro-cesador correrá a 4,6 GHz, lo cual no es poco teniendo en cuenta lo difícil que le está resultando a Intel sobrepasar la ba-rrera de los 4 GHz para su familia de pro-cesadores. Estará compuesto por 234 mi-llones de transistores, casi el doble de la cantidad que componen los últimos proce-sadores Intel Pentium 4. En la próxima edición podremos encontrar un artículo muy completo que analiza esta auténtica maravilla de la computación. Por otro lado, respec- XBOX, LA PRIMERA CONSOLA DE MICROSOFT. 34 POWERUSR
  • 10. (hasta cuatro por consola), aunque tam-bién 36 se permitirá la conexión de controles con cable. Poseerá tres puertos USB 2.0 y una unidad de DVD dual layer (y no un tipo de unidad de nueva generación como Blu-Ray como se había especulado en un principio); los formatos soportados serán DVD-video, DVD-ROM, DVD-R, DVD-RW, CD-DA, CD-ROM, CD-R, CD-RW, WMA CD, MP3 CD y JPEG Photo CD. En resumen, las especificaciones de la nueva consola de Microsoft no sorpren-dieron demasiado a quienes venían si-guiéndole la pista, ya que, básicamente, eran las que se rumoreaban. Por otro la-do, le empresa no innova demasiado en ninguna característica técnica de hard-ware, y aunque es cierto que tres micro-procesadores PowerPC es bastante más poder de CPU que el que posee la PC de un gamer, es mucho menos de lo que ofrecerá la nueva consola de Sony. NINTENDO REVOLUTION De la nueva consola de Nintendo es de la que menos información oficial existe. A ciencia cierta, sólo se conocen algunos datos emitidos por el presidente de la fir-ma, Satoru Iwata. Lo que está claro es que la consola in-tentará revolucionar la experiencia ga-ming por medio del modo de controlar el juego. Existieron rumores —que no fue-ron confirmados— respecto a que el con-trol incluiría un touch pad configurable para facilitar el manejo de tipos de juegos no muy populares al día de hoy en las consolas (por ejemplo, juegos que en la PCs se suelen manejar con mouse, como los de estrategia y los de acción en primera persona). Respecto a esto, Satoru Iwata prefirió guardar silencio, ya que argumentó que las interfaces de usuario pueden ser imitadas fá-cilmente por los competidores. La realidad es que Nintendo Ga-meCube ha vendido menos de lo planeado, al menos en el mundo occidental, y muchos pronosti-can que Revolution será la pró-xima DreamCast (consola de SEGA que fue discontinuada por vender menos unidades de las esperadas). Sin embargo, habrá que darle crédito a Nintendo, que hace ya muchos años se en-cuentra en este rubro y ha de-mostrado, de sobrada manera, que sabe cómo manejarse en situaciones adversas. ASI SE VE LA CONSOLA XBOX 360 DE MICROSOFT. GLOSARIO DE TERMINOS API (Application Programming Interface): Interfaz definida por un programa o librería por medio de la cual es posible acceder a las funcionalidades que implementa. Direct3D: Subsistema de DirectX, encargado de crear gráficos en 3D en tiempo real y de un modo eficiente. DirectX: Conjunto de componentes desarrollado por Microsoft para ser utilizado en la creación de juegos y aplicaciones multimedia de alto desempeño. Haciendo uso de esta herramienta, podremos crear gráficos 2D y 3D; sonidos, música y efectos; y aplicaciones de red, como los juegos multijugador, además de manejar dispositivos de entrada como teclado, mouse, joystick, volante, gamepad, etc. E3 (Electronic Entertainment Expo): Exposición anual de entretenimiento electrónico realizada exclusivamente para medios periodísticos, que se lleva a cabo en los Estados Unidos. En este evento se suelen presentar las novedades más importantes del año en materia de juegos y hardware relacionado. GPU (Graphics Processing Unit): Nombre que se le otorga al microprocesador de la placa de video. HLSL (High-Level Shader Language): Lenguaje de alto nivel que permite especificar el programa (shader) que ejecutará una GPU programable. Dicho programa también podría ser escrito en lenguaje ensamblador (del GPU), pero esto suele ser más complejo y se relaciona más fuertemente a una arquitectura específica. Juegos AAA: Juegos que fueron creados con un gran presupuesto y poseen alta calidad de producción. Se distribuyen de manera masiva por los canales de venta tradicionales (mostrador, pre-venta) a un precio superior a U$S 40 (por ejemplo, Half-Life 2, Doom 3, Far Cry, The Sims). OpenGL: Librería gráfica 3D creada por Silicon Graphics Incorporated (SGI). Hoy en día es un estándar abierto de la industria. EL LIBRO DE PASES ESTA ABIERTO ESTA ES LA GAMECUBE DE NINTENDO. Recordemos que NVIDIA fue la encargada de desarrollar la GPU de la primera consola de Microsoft (Xbox). Microsoft también está desarrollando su nueva consola, pero su GPU ya no será de NVIDIA sino de su competencia, ATI. POWERUSR