Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: bnl en 06 de Octubre de 2002, 06:11:06 PM

Título: 2D Usando Direct Graphics
Publicado por: bnl en 06 de Octubre de 2002, 06:11:06 PM
                                Hola
   Estoy intentando crear un mapa en 2D usando casillas de 32x32. Se hacerlo con las DirectX 7.0, pero me gustaria hacerlo con las 8.1. No acabo de comprender como se dibuja en 2D usando las 8.1 He mirado bastantes tutoriales (en ingles  :( ) y no me he enterado mucho. ¿Deberia crearme tantos poligonos (cuadrados) como casillas entren en la pantalla y asignar a cada poligono la textura de la casilla a dibujar en esa posicion? A ver si alguno me podeis ayudar. Muchas gracias                                
Título: Perdon
Publicado por: bnl en 06 de Octubre de 2002, 11:35:13 PM
                                Me confundi de foro. El mensaje anterior debi postearlo en el de programacion. :(                                
Título: 2D Usando Direct Graphics
Publicado por: synchrnzr en 07 de Octubre de 2002, 01:46:41 PM
                                Bueno, mientras me de cuenta... ^_^'

Por lo poco que sé las DX 8.1 están enfocadas totalmente a las 3D y hay que hacer cosas raras para hacer 2D, pero en esto te podrán aconsejar mejor otros que se dedican más al tema ;)

Sync                                
Título: 2D Usando Direct Graphics
Publicado por: NeLo en 07 de Octubre de 2002, 03:06:21 PM
                                Tendrás que ponerte en proyección ortográfica  y pasar polígonos transformados.

DirectX 9 está al caer y tendrá mejores funciones para 2D, como bloquear el buffer y hacer blit.

Saludos.                                
Título: 2D Usando Direct Graphics
Publicado por: nostromo en 07 de Octubre de 2002, 04:50:34 PM
                                Hola,

Puedes seguir haciendolo incluso con DirectX 5, no importa que version de directx tengas instalada(siempre que sea igual o superior a la 5  :) ). Yo lo que hago es seguir con la ayuda del directx 7 sobre directdraw(porque es lo que se han cargado en la 8) y utilizo las funciones de esta versión.

En fin, esto es asi gracias a que cuando trabajas con directx realmente estas trabajando con un interface (com) sobre el objeto directx, es decir tienes diferentes maneras de trabajar con la misma libreria aunque esta evolucione hacia 3d y se olvide de los arcaicos como yo  :D

Un saludo                                
Título: 2D Usando Direct Graphics
Publicado por: Sergio en 07 de Octubre de 2002, 06:33:59 PM
                               
CitarTendrás que ponerte en proyección ortográfica  y pasar polígonos transformados.

DirectX 9 está al caer y tendrá mejores funciones para 2D, como bloquear el buffer y hacer blit.

Saludos.

pero si le pasas los poligonos transformados la proyeccion ortografica no es necesaria, no?

saludos!                                
Título: 2D Usando Direct Graphics
Publicado por: NeLo en 07 de Octubre de 2002, 09:02:42 PM
                                Si le pasas los polígonos transformados no necesitas blit ni nada que ver con pixels. Todo polígonos.                                
Título: 2D Usando Direct Graphics
Publicado por: Sergio en 07 de Octubre de 2002, 09:46:11 PM
                               
CitarTendrás que ponerte en proyección ortográfica  y pasar polígonos transformados.

espera que he pillado de mas en la 'cita' y no me has entendido (o eso creo...O_o). digo que si le pasas los poligonos transformados, no es necesario poner la proyeccion ortografica. me equivoco?                                
Título: 2D Usando Direct Graphics
Publicado por: NeLo en 07 de Octubre de 2002, 10:39:53 PM
                                Pon la proyeccion ortográfica (fuera perspectiva) y pasa vértices transformados (en coordenadas de pantalla).                                
Título: 2D Usando Direct Graphics
Publicado por: bnl en 07 de Octubre de 2002, 11:13:21 PM
                                Muchas gracias a todos por contestarme.  :D
¿Entonces pensais q lo mejor es que siga programando con las directX 7? Con estas ya se hacer algunas cosillas y es bastante sencillo (sobre todo para lo q me esperaba), pero puesto q estoy aprendiendo todavia me desagradaba un poco aprender algo que ya esta obsoleto y por eso intente hacerlo con la 8                                
Título: 2D Usando Direct Graphics
Publicado por: bnl en 07 de Octubre de 2002, 11:24:40 PM
                                No me ha quedado muy claro lo q decis de como crear los graficos 2D con las DirectX 8
¿la proyeccion ortografica es la q se ve totalmente en 2D, como visto el objeto totalmente desde arriba?
¿como se pone esta vista?
¿para dibujar el mapa en base a casiilas de 32x32 tendria q poner en la pantalla tantos triangulos como casillas entren en la pantalla (multiplicado por 2 al tener 2 triangulos cada casilla a dibujar) y a cada cuadrado ponerle la textura que corresponda?
Saludos                                
Título: 2D Usando Direct Graphics
Publicado por: NeLo en 08 de Octubre de 2002, 12:02:35 AM
                                Sí, esa es la vista ortográfica. Mira la función D3DXMatrixOrthoLH.

Y sí, así se haría un mapa de tiles.

Saludos.                                
Título: 2D Usando Direct Graphics
Publicado por: bnl en 08 de Octubre de 2002, 10:31:51 PM
                                Lo que dice la ayuda que viene en la SDK de las DirectX es bastante breve. Creo entender q construye una matriz y que al multiplicar cada punto que tengamos por esa matriz obtendremos su proyeccion ortografica. ¿estoy muy equivocado o solo un poco?  :ojo:
  Para que es necesario hacer la proyecion? No bastaria al crearnos los triangulos q recubran toda la pantalla darles el mismo valor a la coordenada z (cero por ejemplo)?
  Saludos                                
Título: 2D Usando Direct Graphics
Publicado por: Lord Trancos en 08 de Octubre de 2002, 11:05:23 PM
                                Puedes usar poligonos ya transformados. El segundo tutorial de DirectX 8 muestra como dibujar un triangulo mediante vertices ya tranformados.                                
Título: 2D Usando Direct Graphics
Publicado por: NeLo en 08 de Octubre de 2002, 11:14:19 PM
                                Puedes hacer dos cosas:

O utilizas vértices transformados, con lo cual las transformaciones las tendrás que aplicar tú, pero sabrás donde van a aparecer los vértices en pantalla.

O utilizas la proyección ortográfica con la cual podrás seguir usando las transformaciones normales de D3D, pero es algo más complicado saber donde van a aparecer los vértices.

Saludos.                                
Título: 2D Usando Direct Graphics
Publicado por: [Over] en 13 de Octubre de 2002, 03:32:00 PM
                                Hola bnl.

Bueno, para dibujar 2D usando dx 8.1 puedes ahorrarte todas esas cosas que dicen e inclusive sino vas a usar nada 3D, olvidarte totalmente de la camara y programar tu juego olvidandote de los conceptos de 3D. Las dx 8.1 (como la 8), incorporan una interface llamada IDXSPRITE, que se usa para dibujar texturas 2D sin la necesitad de crear un poligono,aplicarle texturas, colocar vista,etc.. Ella sola se encarga de ello y es bastante rapido, logicamente no te lo hace todo. Tu necesidad 2D, será casi como la de todos, necesitaras dibujar imagenes de cualquier tamaño en pantalla,moverlas,etc.., al usar un api totalmente 3D, necesitaras solo un leve "concepto" de 3D en tu clase o funcion de dibujado 2D. Es necesario que la imagen la partas en texturas de un tamaño compatible con la tarjeta que estas usando (o usará el usuario), logicamente potencia de 2. Una vez que consigas tener un array,lista (lo que quieras) con todas las texturas potencia de 2 que formaría tu imagen, solo tiene que dibujarla usando la IDXSPRITE y listo, la imagen sale en pantalla olvidandote de todo el tema de la camara. Mirate el SDK.

P.D:
m_p3DXSprite-Draw(pTextura,&Rect,&Scala,&RotCenter,Rotation,&Pos,ModulateColor);

Una cosa asi, se usa para dibujar una textura 2D en dx 8.

Espero haberte servido de ayuda.