Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Efectos en Sprites con DirectDraw

Iniciado por [EX3], 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

[EX3]

                                Nas a tod@s:

Estoy programando en Visual Basic con DirectX, y a la hora de 'Blitear' un Sprite uso la funcion 'BltFX' que permite aplicar efectos a las superficies. He conseguido aplicar los efectos de 'Espejado'(tanto en Vertical como en Horizontal) dado lo sencillos ke son, pero cuando intento hacer Rotacion del sprite no funciona, y tb estoy intentando aplicar el efecto de 'Translucencia' o 'Alpha-Blending', cosa ke tampoco estoy logrando. Me gustaria saber si hay alguien ke pudiese explicarme como utilizar al completo la funcion 'BltFX' o por lo menos las funciones mencionadas (Rotacion y Traslucencia). Agradeceria cualquier ayuda que me pudiesen prestar.

Saludos...

[EX3]                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

mac^threepixels

                                Tendrias que chequear las caps del dispositivo, para saber si lo soportan.

Pero te ahorrare el esfuerzo, no conozco ninguna tarjeta que rote sprites.                                
----------------------------------
mac^threepixels
http://www.threepixels.org

[EX3]

                                Hice la comprobacion de soporte y en efecto, mi targeta no soporta la rotacion de sprites, y como tu dices, posiblente ninguna lo haga.

Asi pues me olvido por el momento de aplicar ese efecto a los sprites.

Gracias.                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

DoVerMan_

                                Pues nada EX3, q del alpha tmb t puedes olvidar, ya que las funciones para blitear graficos q traen las directdraw, no lo hacen.
Si quieres alpha blend tienes dos opciones,la primera,implementartelo tu mismo, para lo cual t sugiero asm (y si puedes utilizar mmx mejor).La segunda opcion, es pasarte a d3d que si que t lo hace.
Saludos a to el mundo.                                

[EX3]

                                ASM se puede usar en VB???                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

[EX3]

                                Por cierto, ke siempre me lo he preguntado, ke es exactamente ASM???                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Lord Trancos

                                Lenguaje "ensamblador". Es para "programar la CPU directamente".
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

DoVerMan_

                                Pues la verdad es q nunca he programado en VB, pero imagino que si se podra utilizar "Ensamblador" con el.                                

synchrnzr

                                No estés tan seguro. A mi me suena que no se puede, aunque puedo estar equivocado...

Sync :guay:                                

fiero

                                En la versión 4 de VB no se podía, porque recuerdo que en la universidad hacian DLLs en C, para poder meter código ensamblador y luego cargaban la DLL desde Visual Basic.
No creo que se pueda directamente, ya que entonces se acabaría con la estabilidad de VB, ya que en asm es facil cagarla...

un saludo                                
www.videopanoramas.com Videopanoramas 3D player

[EX3]

                                Pos nada, ke me va a tocar hacer el efecto de 'alphablending' a "la antigua usanza", (pixel por pixel), si no me ekivoco en DirecDraw se pueden manipular los pixeles de una superficie, asi que tan solo tendre que hacer una mezcla de color entre el pixel de la superficie del sprite y el de la superficie donde lo dibuje, no? Weno, se intentara haber ke sale :sonriendo:

Muchas Gracias a todos...
[EX3]

P.D.: Lo ke no sabre es como hacer diferente nivel de transparencia en el 'alphablending', alguna sugerencia?                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

BeRSeRKeR

                                Si no me equivoco, la fórmula del alpha blending es:

Red_Final = Red_Fuente * Alpha + Red_Destino * (1 - Alpha)
Green_Final = Green_Fuente * Alpha + Green_Destino * (1 - Alpha)
Blue_Final = Blue_Fuente * Alpha + Blue_Destino * (1 - Alpha)

Saludos...
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

[EX3]

                                Parece sencillo, 'Alpha' si no me equivoco es el grado de transparencia, no?                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Lord Trancos

                                Q raro q no haya alphablend en DDraw,... pq me suena que habia una función del GDI que dibujaba un bitmap con AlphaBlend
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

[EX3]

                                Haber si la hay:

object.BltFx( _
   destRect As RECT, _
   ddS As DirectDrawSurface7, _
   srcRect As RECT, _
   flags As CONST_DDBLTFLAGS, _
   BltFx As DDBLTFX) As Long

El problema es que no se como se configuran los flags de DDBLTFX (Conjunto de efectos para aplicar en las superficies) para realizar el 'AlphaBlending', ke desde un principio he intentado que alguien me explicase.

En la documentancion del SDK no lo explican, y no viene ningun ejemplo que use este metodo.

Por cierto Berseker, he comprobado el resultado que da la formula de antes y devuelve unos valores muy grandes para tratarlos como colores RGB, no falta alguna formula para convertir esos valores en valores RGB validos?

Saludos...                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.