Zona-Alternativa
Hola Bienvenido.

Se que estas alli... Veo que aun no estas REGISTRADO.

Registrate y Participa junto a nosotros. necesitamos de tu ayuda!

-Te Saluda el Staff de Zona-ALTERNATIVA y sus Moderadores-

Zona-Alternativa


 
ÍndicePortalFAQBuscarMiembrosGrupos de UsuariosRegistrarseConectarse

Comparte | 
 

 PIXEL SHADERS Y VERTEX SHADERS

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Analista Z.-ALTERNATIVA
Primeros Pasos
Primeros Pasos
avatar

Cantidad de envíos : 23
Fecha de inscripción : 26/04/2008

MensajeTema: PIXEL SHADERS Y VERTEX SHADERS   Lun Jun 09, 2008 9:32 pm

Informacion que les puede servir de mucho

Lean el articulo, fue tomado de: www.neoteo.com


Pixel Shaders y Vertex Shaders

Habitualmente, manejamos estos términos dentro del rubro de las placas
de video, pero... ¿Qué son? ¿Para qué se utilizan? ¿Qué tarjetas lo
incluyen? Todas estas preguntas y otras más serán contestadas en el
siguiente informe

Desde que comenzó la “revolución 3D” en el ámbito de los juegos de
computadora, allá por mediados de la década de los 90’, la tendencia de
la tecnología aplicada a este rubro ha sido trasladar el trabajo de
procesamiento de gráficos tridimensionales, desde la CPU hacia la
tarjeta de video.

En primer lugar fue el filtro de las texturas, para lo cual se crearon
chips especialmente dedicados para realizar esta tarea. Así nacieron
las famosas placas aceleradoras 3D, que incorporaban dichos chips
y un cantidad de memoria propia en la misma tarjeta. Luego, con la salida del GeForce 256
de NVIDIA, el procesador gráfico pasó a encargarse de lo que, hasta ese
momento, realizaba la CPU. Estamos hablando de la función de Transformación e Iluminación (Transform & Lighting),
utilizada para llevar a cabo los cálculos de geometría y de iluminación
general de una escena en 3D. Hubo una versión mejorada de este motor, a
la que se llamó de Segunda Generación. Ésta vino incluida a partir de
la GeForce 2 y la gama Radeon de ATI, avanzando un poco más en cuanto a materia gráfica.

El gran cambio se dio a partir de la incorporación de los Píxel shaders y Vertex shaders.
Esto permitió a los programadores una mayor libertad a la hora de
diseñar gráficos en tres dimensiones, ya que puede tratarse a cada
píxel y cada vértice por separado. De esta manera, los efectos
especiales y de iluminación puede crearse mucho más detalladamente,
sucediendo lo mismo con la geometría de los objetos. Veamos de qué se
tratan estas dos características, tan importantes dentro de una tarjeta
de video hoy en día.


La prueba de 3DMark 2003 que evalúa los shaders

Así se los denomina normalmente. Sin entrar en terrenos de difícil
comprensión, podemos decir que son pequeños programas que se encargan
del procesamiento de vértices (Vertex shaders) y de pixeles (Píxel shaders).
La principal ventaja es que, como su naturaleza lo indica, pueden ser
programados por el desarrollador, otorgando una flexibilidad que hasta
antes de la aparición de los shaders era poco más que impensada.
Recursos como las operaciones condicionales o los saltos se utilizan de
forma similar que en los lenguajes más conocidos. Sin los shaders,
muchos de los efectos eran realizados en conjunto con la unidad de
procesamiento central, disminuyendo en gran medida el rendimiento y
limitando el avance a nivel gráfico de los mismos.

Un vertex shader
es una función que recibe como parámetro un vértice. Sólo trabaja con
un vértice a la vez, y no puede eliminarlo, sólo transformarlo. Para
ello, modifica propiedades del mismo para que repercutan en la
geometría del objeto al que pertenece. Con ésto se puede lograr ciertos
efectos específicos, como los que tienen que ver con la deformación en
tiempo real de un elemento; por ejemplo, el movimiento de una ola.
Donde toma una gran importancia es en el tratamiento de las superficies
curvas, y su avance se vio reflejado en los videojuegos más avanzados
de la actualidad. Particularmente, en el diseño de los personajes y sus
expresiones corporales.

En cambio, un píxel shader no interviene en el proceso de la definición del “esqueleto” de la escena (Wireframe), sino que forma parte de la segunda etapa: la rasterización (Rendering).
Allí es donde se aplican las texturas y se tratan los pixeles que
forman parte de ellas. Básicamente, un píxel shader especifica el color
de un píxel. Este tratamiento individual de los pixeles permite que se
realicen cálculos principalmente relacionados con la iluminación del
elemento del cual forman parte en la escena, y en tiempo real. Teniendo
la posibilidad de iluminar cada píxel por separado es como se lograron
crear los fabulosos efectos de este estilo que se pueden apreciar en Doom 3, Far Cry y Half Life 2,
por mencionar sólo los más conocidos. La particularidad de los píxel
shaders es que, a diferencia de los vertex shaders, requieren de un
soporte de hardware compatible. En otras palabras, un juego programado
para hacer uso de píxel shaders requiere si o si de una tarjeta de
video con capacidad para manipularlos.


Esquema de funcionamiento de una Unidad de Pixel Shader en la Radeon X800



Comparen la diferencia entre aplicar y no aplicar pixel shaders. Es
perceptible a simple vista, no como muchos otros efectos conocidos en
el rubro


Los vertex shaders no obligan a que esté presente el hardware necesario para ejecutarlos en el ordenador

Para establecer los comandos de las funciones de píxel y vertex shaders se utiliza el lenguaje HLSL (High Level Shader Languages),
que vendría a ser un lenguaje de alto nivel para trabajar con estos
programas. Existe uno de bajo nivel, bastante más difícil de programar,
que se denomina ensamblador. Su sintaxis comparte muchas
características con los ensambladores utilizados para programar sobre
las CPU. La ventaja del HLSL es la de todo lenguaje de alto nivel:
facilidad para llevar a cabo operaciones mediante unas pocas
instrucciones de fácil aprendizaje. Como punto débil encontramos el
mismo defecto que poseen todos los lenguajes de este tipo, y es la
falta de optimización del código. Trabajando directamente sobre el
hardware, es mucho más factible que se lleguen a aprovechar todas sus
posibilidades. En cambio, habiendo un compilador de por medio, siempre
se pierde algo de rendimiento en el programa final.
Una aplicación -no un lenguaje- destinada a trabajar con píxel shaders es RenderMonkey.
Fue creada por ATI, fabricante de los populares chips Radeon. Se puede
descargar gratuitamente de la pagina oficial (vean los links
relacionados a la nota) para que cualquier programador o artista pueda
crear un shader y verlo en funcionamiento. Una importante
característica es que permite la modificación de elementos en tiempo
real, viendo como repercuten los cambios al momento de establecerlos.

Cambiando de tema, cuando hablamos de la compatibilidad con DirectX
nos referimos al conjunto de instrucciones de shaders incluidas en
estas librerías de Microsoft. En realidad, las instrucciones de píxel y
vertex shaders vinieron a partir de DirectX 8 en adelante. Por ello,
cuando se dice que una tarjeta de video es compatible con esta u otra
versión posterior de DirectX por hardware, se está
especificando que es capaz de aprovechar las instrucciones de shaders
incorporadas en estas librerías. Por cierto, en algunos lados se
declara la compatibilidad a nivel general, tanto con píxel como con
vertex shaders. El conjunto de ambas funciones se conoce como Shader Model x, donde x
es la versión de este modelo de referencia (que depende de las
versiones de los propios shaders). El último y más reciente es el Shader Model 3.0,
compuesto por píxel shader 3.0 y vertex shaders 3.0. Hasta el momento,
escasos juegos aprovechan las posibilidades de este modelo, pero los
que lo hacen son espectaculares. Sin ir más lejos, tenemos el reciente
caso de The Elder Scrolls: Oblivion, considerado como el videojuego con mejores gráficos de todos los tiempos

ubo
una evolución lógica de los shaders en estos últimos años. Este
progreso tiene que ver, principalmente, con cuestiones internas de
programación. Parámetros como la cantidad de registros disponibles, el
número de instrucciones permitido por programa y la incorporación de
instrucciones aritméticas más complejas, entre otros, aumentaron la
flexibilidad a la hora de programar los shaders. Estos valores son los
que diferencian una versión de Shader Model de otra.
A
continuación veremos una lista de las distintas versiones de DirectX
con soporte para shaders y los procesadores gráficos compatibles con
cada una. Vale aclarar que existe la retro-compatibilidad, por lo que,
por ejemplo, si una GPU soporta Shader Model 2.0, también lo hace con
Shader Model 1.1.

DirectX 8.0 (Pixel Shader 1.1 Vertex Shader 1.1): Familia GeForce 3, de NVIDIA.
DirectX 8.1 (Pixel Shader 1.3 y 1.4 Vertex Shader 1.1):
Familia GeForce 4 TI, de NVIDIA (hasta Pixel Shader 1.3). Radeon 8500,
9000, 9100, 9200 y 9250, de ATI (hasta Pixel Shader 1.4).
DirectX 9.0 (Pixel Shader 2.0Vertex Shader 2.0):
Familia GeForce FX, de NVIDIA. Radeon 9500, 9700, 9800 y Familia Xx00,
de ATI. Familia 900 y 950, de Intel. Familia Volari, de XGI.
Deltachrome y Gammachrome, de S3.
DirectX 9.0c (Pixel Shader 3.0Vertex Shader 3.0): Familia GeForce 6 y GeForce 7, de NVIDIA. Familia X1000, de ATI.


Como verán, ATI implementó la cuarta versión de los shaders recién a partir de su última línea (la X1000). Por su parte, NVIDIA fue pionera al utilizarlo desde la familia GeForce 6
(6200, 6600 y 6800), salida mucho tiempo antes que la recién mencionada
de ATI, obteniendo una leve ventaja. Pero, como ya dijimos, recién
ahora se está empezando a utilizar el Shader Model 3.0 en los juegos de
ordenador. Por esa razón es que se justifica la decisión de ATI de no
realizar un cambio de arquitectura prematuro


Far Cry, una pequeña muestra de lo que pueden lograr los shaders 3.0

El futuro de estas funciones programables es prometedor. Microsoft ya está
ultimando detalles de lo que será la próxima versión de DirectX,
denominada DirectX 10. En ésta se incluirá la quinta versión de los shaders, conformando en Shader Model 4.0.
Por supuesto, NVIDIA y ATI están pensando en esta tecnología para
optimizar sus productos y sacarle el mayor provecho. Hasta el momento,
sólo se conocen los nombre clave de estos futuros chips: el G80 en el caso de NVIDIA y el R600 por parte de ATI.



Si con Shader Model 3.0 se puede conseguir algo así, imagínense con la
siguiente generación de shaders.
Volver arriba Ir abajo
Ver perfil de usuario
 
PIXEL SHADERS Y VERTEX SHADERS
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Shaders para naves y colibries
» Destiny : El armario de los shaders , pruebatelos aqui .
» [a ver si llegamos a algo] ENB - sweetFX como es eso de los shaders?
» RGL Error: error on creating shaders, out of video memory (SOLUCION)
» Darksiders - Requisitos de su versión para PC

Permisos de este foro:No puedes responder a temas en este foro.
Zona-Alternativa :: Noticias :: -NotiMundo ZONA-ALTERNATIVA--
Cambiar a: