Lectura recomendada

Publicado el Domingo 15 agosto 2010 en DirectX por Thund

Aquí os dejo una lista de libros relacionados con DirectX o con la programación gráfica en general que he leído o que conozco. Son todos en inglés, obviamente, y los podéis encontrar tanto en la Amazonia como pidiéndoselos a una mula, que cada cual elija su locura.

Introduction to 3D Game Programming With DirectX 9.0
 

Éste fue el primer libro sobre DirectX que leí. Se me hizo un poco cuesta arriba debido a que, por aquel entonces, mi conocimiento acerca del funcionamiento de una API gráfica era inexistente y mi dominio tanto del inglés como de C++ algo mediocre. Aun así le eché un par de voluntades y me fui enterando de toda la teoría que hay delante y detrás de la programación de una aplicación basada en DirectX. Como el título indica, se trata de una introducción, es decir, toca los palos principales y sin entrar en mucho detalle. Esto no quiere decir que explique las cosas de pasada y te deje más perdío que Marco el día de la madre; se centra en los aspectos más básicos, desde cero, siguiendo una curva poco pronunciada, fácil de seguir. Si te apoyas en la referencia del SDK de DirectX a la par que avanzas por los capítulos, el aprendizaje se verá mucho más reforzado. Está claro que es un libro obsoleto, no sirve a alguien que vaya a emprender su andadura por DirectX 11, pero ésto es una verdad a medias; dado que es un libro introductorio, no hace hincapié en el código y en las particularidades de la API, por lo que hay muchas técnicas y bases descritas que son comunes a cualquier librería del estilo, y que pueden ser de gran utilidad para comprender la arquitectura y la forma de trabajar de cualquier versión. Unas 394 páginas, poca cosa.

Aviso de que quizás, tras haber terminado el libro, no seáis capaces de hacer un dragón rojo echando fuego.

Advanced 3D Game Programming with DirectX 9.0
 

Una extensión del anterior, lo que no quiere decir que empiece donde aquél lo dejó, sino que entra en mucha más profundidad en los temas ya tratados y añade muchos nuevos. Si la introducción abarcaba mayormante el campo de los gráficos, éste tomo expande las fronteras hacia el resto de componentes de DirectX, como son DirectSound y DirectInput, y mete la cabeza en la inteligencia articial y las telecomunicaciones. Digno de mención son el capítulo acerca de la gestión de la escena y los detalles sobre mallas progresivas. No me gustó demasiado la maquetación con respecto a su antecesor. De las 514 páginas puedes saltarte las 60 primeras y luego ir dando saltos, el orden no es importante.

Sí, la portada es fea de cojones.

DirectX 9 Graphics The Definitive Guide to Direct3D
 
Este libro es un intento por cubrir todas las áreas habidas y por haber en torno a los gráficos, aunque se deja un apartado sin cubrir de gran importancia, como son los shaders. Empieza desde lo básico, da una base matemática y en pocas páginas nos encontramos iluminando la escena. Como puntos fuertes tiene la descripción de los archivos .X y su utilización; explica la animación por esqueletos y pieles y mediante keyframes; y es de los pocos que tratan temas de animación de texturas y el uso de DirectShow. En total 351 páginas, recomendable como libro de consulta.
Advanced Animation with DirectX
 
Se trata de un libro más especializado, concretamente en el mundo de la animación mediante código y la interpretación de formatos de animación estándar, como la animación por esqueleto / piel (incluyendo el efecto rag doll), morphing, movimiento de partículas, animación de texturas y efectos de animación de objetos blandos como la ropa. A destacar la explicación del uso de archivos .X de DirectX. Unas 346 páginas en las que no se llega a profundizar demasiado en las técnicas aunque se dan buenas bases. Lo bueno de éste libro es que vale para cualquier API gráfica, aunque en el título aparezca DirectX.
Real-time Rendering Tricks and Techniques in DirectX
 
Éste no lo he leído, más bien lo he usado como libro de consulta. Básicamente hace un breve recorrido por los elementos gráficos de Direct3D hasta que empieza a hablar de shaders. Contiene un montón de ejemplos tanto de pixel shaders como de vertex shaders; lo malo para los programadores que usen DirectX es que tales ejemplos no contienen código HLSL sino ensamblador, lo cual es bueno para los que usen otras APIs como OpenGL (si saben traducirlo a GLSL claro). Al final del libro describe técnicas como el motion blur y el picking, y dedica apartados al stencil buffer y a DirectShow. Unas 827 páginas muy recomendables.
The Complete Effect And HLSL Guide
 
Libro dedicado exclusivamente a shaders, tanto en ensamblador como en HLSL, y al framework de efectos de DirectX 9. Éste sí me lo leí de cabo a rabo porque necesitaba coger una buena base, que fuera especializada, acerca de los shaders. Tiene cosas muy malas y otras muy buenas. Una de las malas es que hay muchas partes que son copy&paste de la MSDN; si quisiera leer la MSDN me iría a la maldita MSDN. En cambio, una de las características más destacables es lo detallado de la información acerca de las equivalencias entre el lenguaje HLSL y el ensamblador, las capacidades de los distintos shader models, desde el 1.0 al 3.0, y una precisa descripción de cada instrucción de la GPU. Sabemos que, a día de hoy, contamos con el shader model 5.0 pero, si nos fijamos bien, nos damos cuenta de que desde la versión 3.0 no ha cambiado demasiado el abanico de funciones ni su comportamiento, aunque sí lo hayan hecho algunos elementos de la semántica y la capacidad del hardware (número de instrucciones permitidas, número de constantes…), casos para los que disponemos de la referencia del SDK o la MSDN. El otro aspecto a remarcar de éste libro es que es de los pocos sitios donde se habla del Effects Framework, que parece siempre como si lo guardaran en secreto por la poca información que se puede encontrar por ahí. A mí me aclaró muchas cosas, por eso lo recomiendo, o si ha salido alguna nueva versión del libro tanto mejor. Se hace cortito, 307 páginas de las que la mitad son tablas.
3D Math Primer for Graphics and Game Development
 
Bases matemáticas para muchas de las cosas que normalmente utilizamos y que damos por sentado. No me lo he leído, pero lo pongo aquí para que se sepa de su existencia. Son 435 páginas.
Geometric Tools for Computer Graphics  
El libro gordo de Petete, 1055 páginas para explicarnos una barbaridad de conceptos y algoritmos matemáticos. Los amantes del álgebra, los espacios vectoriales y la geometría se harán pajas con él. Echando un vistazo al índice (pues no me lo he leído aún) puede verse claramente cómo cubre un montón de aspectos útiles, como la formación de elementos geométricos, intersecciones, partición espacial binaria, triangulación, cálculos de distancias, etc. Por ahí se dice que tiene un montón de erratas, pero en su página web vienen todas aquellas que se han detectado (que oye, son unas cuantas). Recomendabilísimo.
Game Programming Gems  
He decidido poner toda la saga junta porque su descripción es similar y no quiero morirme escribiendo. Muchos ya la conoceréis, se trata de una serie de publicaciones que contienen perlas algorítmicas, técnicas geniales y muy extendidas en la programación de juegos en el ámbito profesional, escritas por veteranos de la industria en muchas ocasiones. Los que no sabíais de su existencia, quedaréis gratamente sorprendidos. Eso sí, yo miraría antes el índice de cada uno antes de comprarlo, ya que cada cual contiene métodos muy dispares, a todos los niveles, no sólo relacionados con los gráficos. Imprescindibles.
Introduction to 3D Game Programming with Direct3D 10
 
Homólogo del anteriormente descrito pero para DirectX 10 (además, escrito por el mismo autor). No lo he leído pero se ve que es lo mismo adaptado a la siguiente versión. Unas 500 páginas.
Advanced 3D Game Programming with DirectX 10
 
La temática es la misma que la de su homólogo de DirectX 9 (y otra vez, coincide el autor). Amplía el contenido acerca de la IA y habla de las curvas beizer y los quads. Este lo he leído un poco por encima. Un total de 527 páginas.
C++ for Game Programmers
 
Este post no es para libros de C++, pero el que he puesto está precisamente orientado a la programación de juegos, o aplicaciones gráficas. Muy recomensable, expone una gran cantidad de trucos, recomendaciones y optimizaciones que todo programador agradece, y siempre hay alguna cosa que se aprende por muy ducho que seas en la materia. Son 434 muy amenas para los amantes de C++.

Hay muchos más por ahí, pero esto es un post no la Biblioteca de Alejandría.

Etiquetas: , , ,