| Artículos | 01 SEP 2002

Cg: C para gráficos

Tags: Histórico
Eugenio Barahona.
La empresa nVIDIA ha presentado una versión del lenguaje de programación Cque produce código ejecutable en las GPU compatibles DirectX 8, 8.1 y OpenGL.

Desde que Microsoft lanzó al mercado la versión 8 y posteriores de su conjunto de API denominadas DirectX, se produjo la aparición en el mercado de hardware gráfico compatible con las capacidades que dichas librerías exponían a los programadores de aplicaciones. La principal novedad que aportaba este nuevo hardware era la posibilidad de ejecutar código directamente en el procesador gráfico del adaptador de vídeo, lo que en algunos terrenos abría un amplio abanico de posibilidades que el hardware anterior no permitía explorar.
En la jerga de DirectX estas nuevas capacidades se implementaban mediante pequeños programas denominados vertex shaders y pixel shaders. Los primeros operan sobre la geometría 3D de los modelos que el hardware renderiza, por lo que si nuestro hardware gráfico no soporta dicha capacidad, ésta puede emularse por software de manera relativamente óptima gracias a los juegos de instrucciones SSE, SSE2 y 3DNow! de Intel y AMD. Sin embargo, si nuestro hardware gráfico no soporta pixel shaders será imposible emularlos por software, ya que dicho tipo de programas afecta directamente al modo en que se calculan los píxeles que forman parte de los triángulos que el hardware genera.
Pero no todo iban a ser ventajas, ya que el desarrollo de vertex shaders y pixel shaders requería obligatoriamente su codificación en un lenguaje ensamblador definido por Microsoft que debe soportar cualquier procesador gráfico que implemente por hardware dichas funciones. Se necesitaba, por tanto, una herramienta que acelerase el desarrollo de este tipo de programas y proporcionase un cierto nivel de abstracción sobre el lenguaje ensamblador del procesador gráfico.
El lenguaje Cg (C for graphics) que recientemente ha anunciado nVIDIA, y que se ha desarrollado con la colaboración de Microsoft, proporciona a los programadores de aplicaciones 3D un entorno de programación similar al lenguaje C estándar que vienen usando desde hace años, con las ventajas que ello conlleva en cuanto a reducción de los tiempos de desarrollo.
El nuevo lenguaje de programación se ha creado de manera que sea multi-API y multiplataforma, de forma que los programas que se desarrollen mediante esta herramienta puedan utilizarse tanto con software diseñado para DirectX como para OpenGL. Los vertex shaders y pixel shaders creados de esta forma también se ejecutarán en plataformas distintas del PC, lo que es totalmente lógico si pensamos que dichos programas son totalmente independientes del juego de instrucciones del microprocesador principal del sistema. Los programadores que desarrollen tanto para PC como para la consola Xbox usarán ampliamente esta última capacidad, ya que el hardware gráfico de esta última soporta directamente la ejecución de vertex shaders y pixel shaders.
En teoría, los programas compilados mediante Cg son igual de rápidos que los creados en ensamblador por un programador experto, si bien no cabe la menor duda de que con el paso del tiempo el compilador de nVIDIA sufrirá revisiones que harán que produzca código ejecutable más optimizado y, especialmente, que aproveche al máximo los recursos de las GPU (Graphics Proccesing Unit) de todos los fabricantes de hardware gráfico.
NVIDIA ha puesto a disposición de todos los programadores interesados el kit de desarrollo del lenguaje Cg, por lo que los lectores interesados pueden descargarlo desde developer.nvidia.com /Cg.

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información