|
Autor |
|
Ámbito |
Iniciación a Direct3D 8 |
Lenguaje de Programación |
Delphi 4 |
Fecha |
2001/01/21 |
Índice
I - Acerca de Direct3D 8.
I - Acerca de Direct3D 8. No es mi intención la de hacer un tutorial acerca del Direct3D 8. Para aprender a programar Direct3D hay que usar la documentación de Microsoft (que esta en el SDK), la cual esta en ingles y en C++ (y en Visual Basic). Quien quiera programar Direct3D se tendra que pelear con esta documentación. Hacer un tutorial en español y para Delphi, (medianamente decente) que explique todos (o gran parte de) los aspectos de Direct3D requeriria demasiado trabajo para una sola persona... Asi que he optado por poner a vuestra disposición los tutoriales del 1 al 5 del SDK de Microsoft adaptados a Delphi, mas 3 ejemplos extra bastante sencillitos. Aunque lo ideal es que seais vosotros mismos los que, cogiendo la
documentación de Miscrosoft, escribais vuestras propias adaptaciones
pasito a pasito; solo de este modo aprendereis como funciona. II - Acerca de los ejemplos. Este ejemplo muestra simplemente el esquema básico de una aplicación Direct3D. No tiene ninguna complicación. - Tutorial 2 - En este tutorial podeis observar como representar figuras. En este caso se trata solamente de un poligono que ya ha sido transformado. ¿Y eso que es? Pues se trata de un poligono que ya se encuentra en un espacio 2D. La representación de objetos 3D se hace del siguiente modo; los vertices de los poligonos que forman los objetos son movidos, rotados y proyectados de forma que se obtienen a partir de sus coordenadas 3D, las correspondientes coordenadas 2D en pantalla. Pues en este ejemplo, el poligono ya se encuentra en un espacio 2D y sus coordenadas son coordenadas de pantalla. ¿Y esto pa que sirve? Pues imagina que quieres dibujar la barra de vida del personaje de tu juego; entonces coges y dibujas un rectangulo (2 poligonos) en las coordenadas de pantalla que quieras y listo. También si le pones una textura con color transparente (Colorkey) puedes dibujar un sprite 2D. (Tal y como lo hace el metodo ID3DXSprite.Draw que vimos en el segundo capitulo de esta serie.) - Tutorial 3 - En este caso el poligono si se encuentra en un espacio 3D. Las matrices World, View y Projection son las que le dicen al DirectX como debe de transformar las coordenadas 3D en coordenadas 2D. - Tutorial 4 - Este tutorial muestra como usar materiales y luces. En los ejemplos anteriores el color de cada vertice se especificaba. En este caso todos los vertices comparten un mismo material con el consecuente ahorro de memoria. Algunos aspectos interesantes sobre este ejemplo; - Tutorial 5 - Este tutorial muestra como cargar y aplicar texturas. Este tutorial muestra como aplicar 2 texturas en 2 pasos. (Nota: algunas tarjetas 3D modernas permiten aplicar varias texturas en 1 solo paso; este ejemplo NO muestra como hacerlo.) Y ademas una de esas texturas es un mapa de entorno esferico (Spheremap) el cual proporciona la apariencia de reflejo. NOTA: El ejemplo 5 también muestra como hacer el mapeado esferico. Para ello basta cambiar el valor de SHOW_HOW_TO_USE_TCI y ponerlo en TRUE. - Tutorial X 2 - Este tutorial muestra como cargar una textura con un color transparente y como usarla. - Tutorial X 3 - Este tutorial muestra como "coger" con el ratón poligonos de un escenario 3D. Lo que se hace es "crear" un "rayo" a partir de las coordenadas del ratón y averiguar a que poligonos atraviesa. ¿Y esto pa que sirve? Pues por ejemplo, si en lugar de obtener el "rayo" a partir de las coordenadas del ratón, lo obtenemos a partir del cañon de un rifle de francotirador que lleva el protagonista de nuestro juego 3D, podremos averiguar si le hemos volado la cabeza a nuestros enemigos. ;-)
III - Código fuente de ejemplo. Para compilar estos ejemplos necesitaras las cabeceras de DirectX 8 para Delphi de Delphi-Jedi y el Delphi 4 o superior. Para ejecutar la mayoria de los ejemplos necesitaras la libreria D3DX8AB.DLL que encontraras junto a las cabeceras de DirectX 8. |