Junio 20, 2013, 06:25:33 am

Autor Tema: Transparencia ASD(Resuelto)  (Leído 373 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado JRX7500

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 24
    • Ver Perfil
Transparencia ASD(Resuelto)
« en: Mayo 19, 2011, 01:25:32 am »
No se si se le llame asi, al menos asi solia usarla cuando programaba en mugen, esto lo usaba para efectos con un fondo negro y al aplicarles esta transparencia el fondo se quitaba y el efecto quedaba brillante, hay manera de aplicar esto en gm por que tengo unos efectos de magias que me encantaria poder usar en mi juego.
« última modificación: Mayo 19, 2011, 11:12:00 pm por JRX7500 »
No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.

Desconectado LigTopet

  • Moderadores globales
  • Okupa
  • *
  • Puntos: 85
  • Mensajes: 507
  • Sexo: Masculino
  • A por ellos!!
    • Ver Perfil
Re: Transparencia ASD
« Respuesta #1 en: Mayo 19, 2011, 02:28:56 am »
Segun lo que entendi, prueba a usar las funciones de "blend mode":
Cita de: Manual
Hay dos funciones más que son muy útiles para dibujar texturas. Normalmente, las primitivas se mezclan con el fondo usando el factor de transparencia. Pero puedes controlar la forma en que sucede esto. Por ejemplo, puedes indicar si los colores de la primitiva deben sumarse a los del fondo o restarse. De esta forma puedes crear puntos de luz o sombras. También es posible elegir el máximo entre el nuevo color y el color original para evitar efectos de saturación que ocurren al sumar varios colores. Observa que ni al restar, ni al calcular el máximo se toma en cuenta el valor de transparencia totalmente (DirectX no lo permite), así que debes asegurarte de que el área alrededor es negra. Como ya hemos dicho, hay dos funciones para esto. La primera te da las cuatro opciones ya descritas. La segunda te da muchas más opciones. Es muy recomendable que experimentes con estas funciones ya que se pueden crear efectos muy espectaculares como explosiones, sombras, efectos de luz, halos...

draw_set_blend_mode(mode) Indica el modo de mezcla a usar de entre los siguientes: bm_normal, bm_add (suma), bm_subtract (resta), y bm_max (máximo). No olvides volver a poner el modo normal cuando termines lo que estás haciendo por que esto afectará a la forma en que se dibujan los sprites y fondos.
draw_set_blend_mode_ext(src,dest) Indica el modo de mezcla que se debe usar para la fuente y el destino. El color resultante se calcula aplicando a cada color (fuente y destino) un factor diferente. Estos factores de mezcla se especifican con esta función. Los colores de fuente y el destino están formados por las componentes de rojo, verde, azul y transparencia. Así, llamamos a los componentes de la fuente (Rf,Gf,Bf,Af) y a los del destino (Rd, Gd, Bd, Ad). Todos estos factores se encuentran entre 0 y 1. Los factores de mezcla que puede usar en esta función son:

    bm_zero: El factor de mezcla es (0, 0, 0, 0).
    bm_one: El factor de mezcla es (1, 1, 1, 1).
    bm_src_color: El factor de mezcla es (Rf, Gf, Bf, Af).
    bm_inv_src_color: El factor de mezcla es (1–Rf, 1–Gf, 1–Bf, 1–Af).
    bm_src_alpha: El factor de mezcla es (Af, Af, Af, Af).
    bm_inv_src_alpha: El factor de mezcla es (1–Af, 1–Af, 1–Af, 1–Af).
    bm_dest_alpha: El factor de mezcla es (Ad, Ad, Ad, Ad).
    bm_inv_dest_alpha: El factor de mezcla es (1–Ad, 1–Ad, 1–Ad, 1–Ad).
    bm_dest_color: El factor de mezcla es (Rd, Gd, Bd, Ad).
    bm_inv_dest_color: El factor de mezcla es (1–Rd, 1–Gd, 1–Bd, 1–Ad).
    bm_src_alpha_sat: El factor de mezcla es (f, f, f, 1); f = min(Af, 1–Ad).

Por ejemplo, el modo de mezcla normal pone la fuente a bm_src_alpha y el destino a bm_inv_src_alpha. No olvides volver a poner el modo normal cuando termines porque si no los sprites y fondos se dibujarán con el nuevo modo.

Dibujar primitivas texturizadas es un poco complicado pero se consiguen resultados geniales. Puedes incluso crear juegos en falso 3D.
« última modificación: Mayo 19, 2011, 02:32:26 am por Topet »

Desconectado JRX7500

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 24
    • Ver Perfil
Re: Transparencia ASD
« Respuesta #2 en: Mayo 19, 2011, 02:53:13 am »
Exactamente lo que buscaba, gracias!

Desconectado Ciberman

  • Okupa
  • *
  • Puntos: 15
  • Mensajes: 1186
  • Sexo: Masculino
  • Ciberman Games - Un pixel Marca la Diferencia
    • Ver Perfil
    • Ciberman Games
Re: Transparencia ASD
« Respuesta #3 en: Mayo 19, 2011, 02:57:07 am »
si despues de encontrar el efecto que buscas serías tan amable de mostrarlo y dar a conocer la combinación de blend mode, te agradeceríamos mucho...

Progreso de Juego al Azar:
Cita de: CGM 2008
CGM: Un poco mas serios, mejores Juegos.
Bienvenid@ a CGM. Recomenzamos desde cero, con un reglamento mas estricto, mejor definido y con mas ganas que nunca de hacer juegos con calidad comercial. El que avisa no es traidor: Leete las reglas si no quieres llevarte un capon makero.
Mercilessly!!
[/tabl

Desconectado JRX7500

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 24
    • Ver Perfil
Re: Transparencia ASD
« Respuesta #4 en: Mayo 19, 2011, 08:51:11 pm »
Me precipite al decir que era lo que buscaba, bueno si lo es pero el problema es que cuando lo aplique en mi juego se aplicaba a los sprites,backgrounds, etc... hay alguna manera de usarlo para que solo se aplique a algunos objetos y a otros no?

Desconectado LigTopet

  • Moderadores globales
  • Okupa
  • *
  • Puntos: 85
  • Mensajes: 507
  • Sexo: Masculino
  • A por ellos!!
    • Ver Perfil
Re: Transparencia ASD
« Respuesta #5 en: Mayo 19, 2011, 09:26:00 pm »
Solo falta aplicar la lógica.
Si cambias el blending, se va a quedar asi para todo, para dibujar lo que quieres y para todo lo demas (sprites, backgrounds, etc...), entonces:
draw_set_blend_mode(bm_add)//lo cambias
//aqui todo lo que quieres dibujar
draw_set_blend_mode(bm_normal)//lo devuelves a normal

Saludos
« última modificación: Mayo 19, 2011, 09:28:04 pm por Topet »

Desconectado JRX7500

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 24
    • Ver Perfil
Re: Transparencia ASD
« Respuesta #6 en: Mayo 19, 2011, 11:05:49 pm »
Muchas gracias. Ahora si es perfecto justo lo que buscaba!
Dejo la imagen para que puedan ver el efecto que se consigue:



La primera es el sprite original y la segunda despues de aplicar el blendmode.

Muchas gracias Topet!