Logo de Torre de Babel
Portada Libros Diseño web Artículos Glosario RSS
Buscar

Píldora histórica (1)

En 1948 Howard Aiken, matemático de la Universidad de Harvard y constructor de la máquina Mark I (un ordenador electro-mecánico que facilitaba la resolución de ecuaciones diferenciales), instó al U.S. National Bureau of Standards a que abandonase por completo el proyecto para la construcción y comercialización de ordenadores electrónicos ya que, según él, nunca llegaría a existir un mercado para este tipo de máquinas. En sus previsiones, el mundo nunca necesitaría más de cinco o seis ordenadores.


Publicado el 24/2/2010

Windows 7 y Ubuntu

Portada del libro

Portada del libro

En los últimos meses han aparecido nuevas versiones de varios de los sistemas operativos con mayor difusión, entre ellos Windows, cuya versión 7 se ha convertido en pocas semanas en la versión de Windows más vendida, y también Ubuntu 9.10, la renovación de la que posiblemente sea la distribución de Linux más sencilla de instalar y usar.

Como usuario habitual de estos dos sistemas operativos, mi intención con las guías prácticas que he escrito ha sido recoger los aspectos que he creído más útiles de mi propia experiencia con ellos, aunque a niveles diferentes.

La Guía práctica de Ubuntu está dirigida a usuarios que nunca antes hayan utilizado Linux, por lo que describe los pasos a seguir para familiarizarse con este sistema operativo partiendo desde cero y tocando aspectos que van desde la edición de documentos hasta la configuración de impresoras o la conectividad a través de Internet.

En contraposición, el título Guía práctica Windows 7 registro y configuración está pensado para usuarios habituales de Windows que quieren profundizar en el uso de este sistema operativo y aprovechar al máximo sus posibilidades, para lo cual en ocasiones tendrán que acceder al registro del sistema y realizar cambios que mejoran o adecúan el funcionamiento del sistema a las preferencias de cada uno.

Como es habitual, en la sección Libros puedes encontrar todos los detalles sobre éstos y los demás libros que he publicado hasta el momento, incluyendo imágenes de sus portadas y el índice completo de contenidos.


Publicado el 22/2/2010

Lenguajes para programar shaders (III) - HLSL

HLSL (High Level Shading Language) es un lenguaje de programación de shaders, similar a Cg, creado por Microsoft y que, en consecuencia, se usa conjuntamente con DirectX. En realidad HLSL ha sido desarrollado de manera conjunta por Microsoft y nVidia, siendo ésta la razón de su similitud con Cg.

Al igual que ocurre con Cg, los shaders escritos con HLSL pueden ser compilados desde la línea de comandos, generando un módulo con código preparado para transferir a la GPU, o bien introducirse como código fuente en un programa DirectX, en cuyo caso se compilarían durante la ejecución.

Dependiendo de la versión de DirectX con la que se trabaje, HLSL permitirá usar unas versiones u otras del Shader Model. Con DirectX 9 puede elegirse entre las versiones 1, 2 y 3 de SM, mientras que con DirectX 10 la única opción es el SM 4.0, es decir, la última versión. Esto es así porque DirectX 10 está diseñado para funcionar sobre un cauce gráfico totalmente programable, sin hacer uso de las etapas fijas clásicas que se describieron al principio de este documento.

¿Qué se necesita para poder programar shaders con HLSL? Únicamente el DirectX SDK, disponible gratuitamente en la web de Microsoft. Éste incluye, aparte de todas las herramientas necesarias, un gran conjunto de aplicaciones de ejemplo y documentación, accesibles a través del visor mostrado en la figura inferior.

DirectX Sample Browser

Para crear y utilizar un shader con HLSL, asumiendo que está utilizándose DirectX 10, habría que seguir los pasos indicados a continuación:

  • Escribir el código del shader almacenándolo en un archivo de texto, como se haría con cualquier otro código fuente.
  • En el programa DirectX, utilizar la función D3D10CompileShader() para compilar el shader y obtener su versión binaria.
  • A continuación, usando la versión binaria, se genera el shader en el dispositivo con el que está trabajándose mediante el método Create{Vertex|Pixel|Geometry}Shader(). Éste devuelve un puntero al shader que ya estará alojado en la GPU.
  • Por último se activa el shader para introducirlo en el cauce gráfico, usando para el método {GS|PS|VS}SetShader().

Un método alternativo consiste en utilizar un formato de archivo específico de DirectX, con extensión .fx, en el que pueden introducirse múltiples shaders, por ejemplo uno para vértices, otro para geometría y un tercero para fragmentos, usando la función D3DX10CreateEffectFromFile() para cargarlos de manera conjunta. En la imagen inferior puede verse el entorno de Visual Studio 2008, con un programa DirectX 10 en la parte superior que recupera un PS y un VS de un archivo de efectos. Ésta es el que establece los shaders a compilar y transferir a la GPU.

Shaders en Visual Studio


Publicado el 17/2/2010

Curso de shaders

Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web