|
Autor |
|
Ámbito |
Iniciación a DirectX 8 |
Lenguaje de Programación |
Delphi 4 |
Fecha |
2001/01/16;2001/05/28 |
Índice
I - El futuro de DirectDraw / Planteamiento del
problema. I - El futuro de Direct Draw / Planteamiento del problema. Tal y como se vio en el primer capitulo de esta serie, DirectDraw ha sido eliminado (o mas bien, esta siendo eliminado) de las DirectX. Aunque aún puede ser usado el interfaz de versiones anteriores. Ahora bien, si decidimos usar las nuevas capacidades 3D de DirectX
tendremos que usar el último interfaz Direct3D. Y si usamos este
interfaz no podremos utilizar al mismo tiempo DirectDraw... El primer problema para dibujar sprites "2D" usando poligonos es que tambien tendremos que usar texuras y eso tiene sus consecuencias; ya que las texturas por lo general deben de ser cuadradas y sus dimensiones potencias de 2; es decir las texturas deben de ser imagenes de 8x8, 16x16, 32x32, 64x64, 128x128 o 256x256 pixels (no es recomendable usar tamaños superiores ya que algunas tarjetas 3D no los soportan). Entonces que pasa si queremos dibujar una imagen de 640x480 ? pues
que tendremos que partirla a cuadraditos de las dimensiones ya
comentadas... *puajjjj*... II - Dibujar sprites "2D" con D3DX. Como pelearse con poligonos para dibujar imagenes 2D puede resultar bastante incomodo, usaremos el interfaz ID3DXSprite de la libreria D3DX. Este interfaz dispone de una función llamada Draw;
Al igual que ocurre con los objetos 3D, para dibujar estos sprites
"2D" tendremos que hacerlo entre las funciones Direct3DDevice8.BeginScene
y Direct3DDevice8.EndScene; III - Código fuente de ejemplo.
Para compilar el ejemplo necesitaras las cabeceras de DirectX 8 para Delphi de Delphi-Jedi y el Delphi 4 o superior. Para ejecutar el ejemplo necesitaras la libreria D3DX8AB.DLL que
encontraras junto a las cabeceras de DirectX 8. IV - Más código fuente de ejemplo. Tal y como se explica en este articulo, el uso de texturas límita el tamaño de la imagen (depende del dispositivo 3D). Podeis encontrar un ejemplo de como afrontar este problema (dividiendo la imagen en fragmentos) en el programa Avalon Picture Viewer (incluye el código fuente). |