PDA

Ver la versión completa : Mis preguntas sobre Bennu



Hokutoy
13/11/2009, 09:58
Saludos!
Aprovechando que el tema Bennu esta calentito calentito y esta el foro a petar de gente que lo domina (a parte del propio "creador") aprovecho para ir formulando preguntas a ver si me podeis ir hechando una mano. Gracias!

1) Hay alguna manera de, teniendo un grafico 16 bits/8bits dentro de un Fpg, y mostrandolo con Graph, mostrar dicho grafico en blanco y negro (descartando la informacion del color o algo así)? No hay un Flag que haga eso verdad?

2) Esto es mas complicado para mí. Imagina que tengo cargado en memoria 4 fpgs (circulo, cuadrado, rombo y triangulo) y que cada uno contiene 4 graficos de su figura geometrica pero en 4 colores distintos. Como puedo crear un nuevo fpg "virtual" o en memoria que contenga, por ejemplo, una figura y un color concreto de cada uno de los cuatro fpg mencionados... es decir crear a partir de los cuatro fpgs existentes un quinto fpg virtual compuesto de imagenes de los otros 4 fpg.

Ya se me iran ocurriendo mas preguntas! Gracias!

panreyes
13/11/2009, 10:33
1. http://wiki.bennugd.org/index.php?title=Blendop_grayscale
2. Puedes crear fpgs en memoria con new_fpg y add_fpg, e incluso salvarlos con save_fpg.

Pégale un vistazo al Wiki, que si buscas, está todo documentado:
http://wiki.bennugd.org/

Darumo
13/11/2009, 14:11
¿esto no se podia hacer asignando una paleta de 8bit al proceso? es lo que dio a entender el programador de Bennu en otro hilo hace poco (creo que en el anuncio de la ultima version salio el tema), que en 16bit si se cargaban FPG de 8bit la paleta 8bit seguia existiendo y podia asignarse una paleta 8bit al proceso que manejaba el grafico y asi tener diferentes colores de un proceso a otro con el mismo grafico.

Hokutoy
13/11/2009, 15:29
1. http://wiki.bennugd.org/index.php?title=Blendop_grayscale
2. Puedes crear fpgs en memoria con new_fpg y add_fpg, e incluso salvarlos con save_fpg.

Pégale un vistazo al Wiki, que si buscas, está todo documentado:
http://wiki.bennugd.org/

Gracias por los apuntes! He estado trasteando y algo he conseguido... lo malo es que tengo en pantalla mas de un proceso con el mismo gráfico y usando el mismo fpg. Al asignar la tabla blend de "escalado de grises" se me ponen todos los graficos que son del mismo tipo a "blancoynegro" en vez de que solo se vuelva el proceso especifico que llama a la "acción". Imagino que es porque la nueva "blend table" modifica directamente el fpg en la memoria y afecta a por igual a todas sus representaciones.
Bueno... tendre que estrujarme mas el coco.

Gracias!

Drumpi
16/11/2009, 11:26
RGBSCALE (INT fpg, INT mapa, FLOAT r, FLOAT g, FLOAT b)
Cambia un gráfico a una escala de colores especificada en forma de componentes rgb. El valor de R, G y B debe estar comprendido entre 0 y 1.

Parámetros:
INT fpg: Identificador de la librería cargada con load_fpg().
INT mapa: Identificador del mapa dentro de la librería.
FLOAT r: Cantidad de rojo.
FLOAT g: Cantidad de verde.
FLOAT b: Cantidad de azul.

Ejemplo:
Program Test_RGBSCALE;
Global
Float r,g,b;
rr,rg,rb;
Float rgb[]=0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0;
scale=0;
Begin
full_screen=false;
graph_mode=mode_16bits;
load_fpg("fpg2.fpg");
load_png("triangulo_16.png");
write(0,10,10,3,"Test RGBSCALE para Fenix...");
write(0,160,190,4,"Pulsa ESC para Salir...");
put_screen(0,1);
x=160; y=120; graph=map_clone(0,1000); size=200;
write(0,160,70,4,"Valores R G B:");
write_float(0,110,80,4,&r);
write_float(0,160,80,4,&g);
write_float(0,210,80,4,&b);
timer=0;
Repeat
If(timer>100 || !scale)
unload_map(0,graph);
graph=map_clone(0,1000);
rr=rand(0,10);
rg=rand(0,10);
rb=rand(0,10);
r=rgb[rr];
g=rgb[rg];
b=rgb[rb];
rgbscale(0,graph,r,g,b);
timer=0;
scale=1;
End
Frame;
Until(key(_esc))
End

más sencillo, ocupa menos memoria y no se si será más rápido (al menos en GP2X daba menos problemas que con las blendops).

Hokutoy
16/11/2009, 13:35
Gracias Drumpi luego lo pruebo y ya te diré que tal. :rever:

Hokutoy
17/12/2009, 11:17
Buenas!
Mas preguntas que me van surgiendo.
Sabiendo mi falta de conocimiento respecto a la diferencia entre 16 bits de color y 32 bits de color (imagino que es algo así como que en 32bits cada pixel puede tener un alpha independiente?)
Alguien tan amable me lo puede explicar brevemente?
BennuGD para WIZ soporta graficos en 32bits?
Con un simple Set_mode(320,240,32); ya esta configurado el programa para 32 bits? Para crear el fpg hay que hacer algo especial?

La verdad es uqe he intentado varias cosas pero los graficos me siguen apareciendo con un sombreado negro muy molesto.

Gracias!

amzg
17/12/2009, 11:47
Buenas!
Mas preguntas que me van surgiendo.
Sabiendo mi falta de conocimiento respecto a la diferencia entre 16 bits de color y 32 bits de color (imagino que es algo así como que en 32bits cada pixel puede tener un alpha independiente?)
Alguien tan amable me lo puede explicar brevemente?
BennuGD para WIZ soporta graficos en 32bits?
Con un simple Set_mode(320,240,32); ya esta configurado el programa para 32 bits? Para crear el fpg hay que hacer algo especial?

La verdad es uqe he intentado varias cosas pero los graficos me siguen apareciendo con un sombreado negro muy molesto.

Gracias!

Buenas,

Con un simple Set_mode(320,240,32) y creando un fpg de 32 bits con el [B]FPG Edit 2009 consigues que el sprite se vea perfecto con sus alphas. En windows lo he conseguido funcionar, pero en wiz no, desconozco si el Bennu soporta 32 bit en wiz :confused:

:brindis:

Rivroner
17/12/2009, 13:15
De momento sólo en PC lo soporta, lo ha dicho más de una vez Splinter.

amzg
17/12/2009, 13:28
Algo era ello jeje, gracias Rivroner por sacarnos de dudas.

:brindis:

Rivroner
17/12/2009, 13:32
No te fies de mi mucho que a veces me invento cosas. :quepalmo:

Drumpi
17/12/2009, 18:13
En este caso no es un invento: hay algo en WIZ o en sus SDL que impide el trabajo en modos de 32 bits de color.
Que por cierto, no es sólo añadir un canal de Alphas: el modo 16 bits reparte sus bits entre las componentes RGB en grupos de 5,6,5, mientras que en 32 bits tienes 8 para cada componente, dando lugar a más colores (aunque en 16 bits te tienes que fijar muchísimo para detectar el cambio).

Los FPGs de 32 bits existen, iba a decir que eran experimentales, pero me consta que funcionan perfectamente, la única pega es que aun no existe una herramienta terminada para crearlos. FPGEdit 2009 es la más completa hasta el momento, aunque hay otra alternativa made in Bennu por el otro foro.
Tampoco es muy difícil crearse una funcioncilla con el propio Bennu para generarlos ;)
Y creo que también se pueden usar PNGs directamente.

Rivroner
17/12/2009, 18:17
Lo que yo decía. :quepalmo: