Proceso sombra

Started by Gorak, June 14, 2011, 09:48:21 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Gorak

Hola soy semi-nuevo en Bennu y quiero hacer un proceso sombra.
La idea es que haga una replica del proceso, lo ponga en negro, le de la vuelta, lo deforme un poco
para que parezca una sombra y que se quede con bastante transparencia y difuminación.

:P no se como hacerlo.

Un saludo!

Yawin

la sombra que quieres hacer no puede estar en el propio gráfico del personaje??
O requiere un proceso sólo para él, ya que va a tener un movimiento independiente?
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

KeoH

Bomberlink hizo para su SORR unas sombras y reflejos de los personajes bastante wapos creo recordar .. a ver si se pasa y nos ilumina xD (y ya de paso q comparta el código para propósitos educativos xD)

FreeYourMind

Esperar sentados hahahah. La sombra la puedes hacer con un proceso hijo que obtenga el grafico del padre donde despues aplicas los efectos, por ejemplo distorsion, cambio de color, transparencias, etc.

HenBanKeN

#4
Estoy de acuerdo con FreeYourMind. Lo que yo haría sería que el proceso sombra fuera llamado dentro del personaje, y que heredara el gráfico del father.

Por ejemplo, si haces:

graph=father.graph;

Ese proceso dejaria al proceso sombra igual al de tu personaje.
Luego, deberías jugar con la variable "flags" que es la que logra varios efectos de los que tú necesitas.

Trata de aprender a usar los diversos valores que puede tomar flags, y luego será pan comido, supongo xD
Aún aprendiendo a manejar mis herramientas...

FreeYourMind

No no, no te lies :)
El grafico del padre no lo tienes que tocar, es el grafico del proceso hijo...

graph = father.graph;

y ya le deslocas la posicion YY y aplicas los efectos que creas necesarios para hacer una sombra chula...

l1nk3rn3l

en el bennupack lo consigues...

Medium Examples\Effects\Shadows

HenBanKeN

Quote from: FreeYourMind on June 14, 2011, 01:58:56 PM
No no, no te lies :)
El grafico del padre no lo tienes que tocar, es el grafico del proceso hijo...

graph = father.graph;

y ya le deslocas la posicion YY y aplicas los efectos que creas necesarios para hacer una sombra chula...

Ea, toda la razón xD me he confundido. Editaré para no provocar confusiones a los demás =)
Aún aprendiendo a manejar mis herramientas...

Drumpi

Leer documentación sobre:
-Variable local predefinida FLAGS.
-Variable local predefinida SIZE_Y.
-Variable local predefinida ALPHA.
Y lo ya mencionado más arriba ;D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

peterpollito

Esto me interesa. ¿Hay alguna función o valor para difuminar esa sombra?

SplinterGU

el modulo effects y los alphas y los blend no estarian mal echarle un ojo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

La momia que fuma

Para eso usa alpha

alpha=0-gráfico invisible

alpha=255-gráfico normal

Aun así tampoco hay 255 grados de transparencia de entrada, creo son 16, esto lo puedes configurar con la variable global alpha_steps si quieres mas (a cambio creo que el juego coge un poco mas de RAM para calcular estos grados de transparencia)

También tienes la solución bastante mas simple de flags=4, que pone transparencia del 50%

A lo de graph=father.graph; añadamos graph=father.flags+2; para que te aparezca el gráfico invertido, o graph=father.flags+6; para que aparezca invertido+transparente al 50%

Para cambiar el color, mirate las funciones de blendop en la wiki, te serán muy útiles, aunque según como lo uses, es incompatible con cosas como alpha y no recuerdo si con flags 4 también (Aunque hay apaños). Otra modo para el color sería usar un fpg de 8 bits para el personaje (para un solo personaje suele ser mas que suficiente con 256 colores) y jugar con la paleta en el proceso de sombra.

Con size_y como sugiere drumpi, puedes deformar la imagen a lo alto, pero como apunte, recomendaría que el centro del personaje (Punto de control 0) este en la base del gráfico, en el punto en que los pies tocan el suelo y por lo tanto la sombra, te ahorrara quebraderos de cabeza a la hora de colocar la sombra.

peterpollito

Vale gracias Splinter, ya vi el BLUR. ¿Funciona tambien en 32 bits?

SplinterGU

las funciones del mod_effect, por ahora solo 1,8,16 bits... pero creo que las puedo poner facil a 32bits.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Quote from: SplinterGU on June 15, 2011, 02:02:14 AM
las funciones del mod_effect, por ahora solo 1,8,16 bits... pero creo que las puedo poner facil a 32bits.

Ahí llegaría el karma, creo que peterpollito quiere darle un uso muy lujurioso a esa función para hacer unas sombras todo guapas xD
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es