Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - [EX3]

#5161
                                Sigo sin conseguir ke el AlphaTest tire y tampoco logro el AlphaBlend con le metodo de los vertices (si he conseguido tintar las texturas al dibujarlas, pero el parametro Alpha se lo pasa por el forro). O algo sigo haciendo mal o algo me he dejado por el camino, nu se  :-?.

MChiz has logrado hacer funcionar el AlphaTest?

Salu2...                                
#5162
                                Nas:

Me estoy dando cuenta que Direct Graphics no me dibuja los graficos con el suavizado ke yo esperaba, no suaviza mucho los pixeles en comparacion con DirectDraw. Me gustaria saber como podria (si es ke se puede) suavizar mas la textura al dibuajarla en D3D8.

Aprovecho tb para comentar otro asuntillo relacionado con la Clase D3DXSprite de DirectGraphics. He empezado a utilizar la clase y me funciona "bien", el alphablend me lo hace perfecto, cosa que es lo ke yo buscaba solucionar en el anterior post, pero por ejemplo, tengo problemas con el tamaño del sprite al dibujarlo, no logro hacer que me dibuje el sprite con la dimension original de la textura.
Se supone (me suponia) ke si la escala es a 1 deberia respetar las dimensiones del sprite, no ke me lo dibuja al doble del tamaño e igualando la medida tanto en altura como en anchura (un cuadrado). Es normal?
Tb tengo un problemilla con las coordenadas, como veo ke el parametro de las coordenadas es de tipo Single (En C++ Float, creo) no logro pasarle coordenadas negativas (-10,-20 por ejemplo), hay alguna manera de hacerlo o no se puede?

Weno, espero que alguien pueda ayudarme, gracias  :)

Salu2...                                
#5163
                                Si no son examenes son trabajos, etc... ,si tamos todos casi igual, la vida del estudiante, ke dura es  :D                                
#5164
                                Las texturas las cargo con esa funcion, ya ke si no no podria especificar el ColorKey.

Todavia tengo ke implementar en el modulo grafico la clase D3DXSPRITE, por ke todavia trabajo al metodo antiguo (crear el poligono y pintar la textura).

Voy a ojear los tutos de esa web, lo malo es ke no podre sera compilar los ejemplos para probarlos, ya ke trabajo en VB y no tengo a mano el VC++ (se me casco el CD :-? ) pero con los tutos me basta.

Muchas gracias por la ayuda, ZaelSius!  :D

MChiz, si consigues hacer algo con el AlphaTest me gustaria ke me lo enseñaras, ok? y si lo consigo yo, lo mismo. :ojo:

Salu2...                                
#5165
                                Mas ke nada darte las gracias por haberlo intentarlo  :D                                
#5166
                                Ke va, simplemente son BMPs normales y corrientes.                                
#5167
                                Con el D3DBLEND_ONE si me respeta el ColorKey, por ke el fondo del sprite es azul puro RGB(0,0,255), si tuviese ke pintar toda la textura el fondo tb se veria. Aki tienes la imagen:

http://usuarios.lycos.es/dxlib32/images/Te...est/Soldier.bmp (72k)

En D3D7 el uso del ColorKey se activaba desde SetRenderState:
Device.SetRenderState D3DRENDERSTATE_COLORKEYENABLE, 1
pero en D3D8 no esta ese codigo. En D3D8 el ColorKey parece estar activo con estas lineas:
Device.SetRenderState D3DRENDERSTATE_ALPHABLENDENABLE, 1

Device.SetRenderState D3DRS_SRCBLEND, D3DBLEND_SRCALPHA

Device.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA


Estas lineas si no me equivoco son las ke se usan para hacer AlphaBlend.
Seguire probando el AlphaTest, a ver si con el soluciono el problema.

Salu2...                                
#5168
                                Si no recuerdo mal, la cara utiliza el D3DBLEND_ONE, ke segun la intensidad del color, mientras mas osucro mas transparente y mas claro menos. Con ese metodo no tengo problemas. A la textura que da vueltas se le aplica el alphablend normal y corriente, esa es la tecnica que me esta dando la lata, por ke el alphablen si me lo hace, pero me pinta las zonas vacias de la textura. Eso es lo ke estoy intentando arreglar, sin tener exito.                                
#5169
                                Bajate el ejemplo del ke me base para hacer el hibrido entre DirectDraw & Direct3D, de ahi saque el codigo para el alphablend:
http://usuarios.lycos.es/dxlib32/publico/direct5d.zip
Por cierto, el ejemplo no hacia la transparencia del ColorKey, pero si lo acticvas te lo hace. Sinceramente, este ejemplo es un poco chapuza, jeje

Estuve haciendo algunas pruebas con el AlphaTest, ke al final lo encontre en el *.CHM, pero no logre hacer que funcionase. Todavia estoy buscando por la red, a ver si encuentro algun ejemplo que tire, ya sea en C++ o VB, mientras tire.

Salu2...                                
#5170
                                El CHM.* lo tengo y algo vi del AlphaTest, probare por mi cuenta a ver ke saco en claro, y si te decides hacer el ejemplo y decides compartirlo te lo agradeceria mucho  :D

Aun asi me mosquea ke de la otra manera me funcionase en Dx7 y no me tire en Dx8  :(

Salu2...                                
#5171
                                Pos la ayuda del SDK de las DirectX para mi nunca ha sido muy clara ke digamos y ejemplos de AlphaBlend habia uno o dos creo y tampoco son muy sencillos de comprender, al menos para mi  :oops: y en la web ke miraba cada cierto tiempo, vbdx4 o algo parecido, del amigo Hoxley, no trabajan mucho el tema del alphablend.

Weno, cuando tenga algo de tiempo libre seguire buscando por ahi, ke por narices tendre que encontrar algo, digo yo.

Salu2...                                
#5172
                                Hombre, el tema no es ke haga el alphablend a las zonas con el ColorKey, simplemente ke no las dibuje.

Por cierto, ¿Sabes de algun tuto que explique el uso del AlphaTest?
Gracias.

Salu2...

P.D.: Al final no he logrado entender el funcionamiento del alphablend de akel ejemplo ke me baje, a parte de la ayuda ke me podais brindar seguire buscando por ahi.                                
#5173
                                Es mas sencillo, me refiero al alphablending tradicional, ese que le pasas como parametro la intensidad de transparencia que tendria la textura entera, solo que no se por que no me respeta el ColorKey de la textura, color que no tiene ke dibujar.

Me mosquea que acabo de encontrar un ejemplo que hace lo que yo kiero, utilizando bitmaps. Es un ejemplo de mecanica de particulas, cada particula es un pequeño bitmap que se va haciendo mas transparente dependiendo de la distancia, pero no logro entender el codigo responsable del alphablend. Seguire ojeandolo, ke insistiendo se consigue todo, jeje  :ojo:

Por cierto, lo del D3DRS_TEXTUREFACTOR me venia en el codigo del ejemplo de DirectX7 y sin el no funcionaba el alphablend.

Salu2...                                
#5174
                                He visto tu tutorial sobre AlphaBlend y esta muy interesante, pero ese metodo, por lo que he visto, no me permite hacer alphablending progresivo, vamos, que no puedo decirle que intensidad de transparencia tiene que darle a la textura al renderizar, corrigeme si me equivoco, que en d3d toadavia estoy tan verde como RGB(0,255,0) :jaja:.

Esto es lo que conseguia hacer en una version de la dx_lib32 que era un hibrido entre DirectDraw y Direct3D 'Inmediate Mode' (DirectX 7), ahi utilizaba el codigo anterior y parecia que funcionaba:
http://usuarios.lycos.es/dxlib32/images/OldVer/01.JPG
http://usuarios.lycos.es/dxlib32/images/OldVer/02.JPG

Esto es lo que me ocurre con Direct Graphics utilizando el mismo codigo:
http://usuarios.lycos.es/dxlib32/images/Test/101.jpg                                
#5175
                                Nas:

Tengo problemas al realizar alphablend sobre una textura en Direct Graphics, el alphablend me lo hace pero no respeta el ColorKey de la transparencia de la textura, en vez de omitir el color que no debe dibujar lo muestra en negro.

El codigo que uso lo saque de un ejemplo de Direct3D7:



           Device.SetRenderState D3DRENDERSTATE_ALPHABLENDENABLE, 1

           Device.SetRenderState D3DRS_SRCBLEND, D3DBLEND_SRCALPHA

           Device.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA

           Device.SetRenderState D3DRS_TEXTUREFACTOR, D3DColorRGBA(255, 255, 255, AlphaBlendValue)

           Device.SetTextureStageState 0, D3DTSS_ALPHAARG1, D3DTA_TFACTOR





Si hay otra forma de hacer el alphablend en Direct Graphics agradeceria que me la explicaran.

Gracias y Salu2...

[EX3]                                





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.