Bennu Game Development

Foros en Español => General => Topic started by: oskarg on August 25, 2016, 02:02:09 PM

Title: Busco ejemplo de carga de varias paletas a la vez....
Post by: oskarg on August 25, 2016, 02:02:09 PM
Hola,buenas...
Estoy buscando un ejemplo donde se cargue diferentes graficos con sus diferentes paletas de 8 bits a la vez en bennugd .Se agradece de antemano quien me pueda ayudar al respecto.
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: l1nk3rn3l on August 25, 2016, 06:36:32 PM
en el bennupack incluye bastantes ejemplos incluyendo el que pides

https://sourceforge.net/projects/coldev/files/bennupack/

creo que es basic and medium examples..

;D
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: oskarg on August 25, 2016, 08:30:52 PM
Gracias,bajando y probando......
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on August 28, 2016, 08:34:31 PM
Las paletas solo las hay para 8bits o también para 16?
Y cuantos colores son en total?
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: l1nk3rn3l on August 28, 2016, 09:37:47 PM
Solo aplica para 256 colores(8bits)

https://es.wikipedia.org/wiki/Bpp


(http://1.bp.blogspot.com/-gd1kmOtH8L4/VMDQnpTsneI/AAAAAAAAACs/rPGpTLcCbD4/s1600/bit_depth_chart.jpg)
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on August 29, 2016, 08:29:41 PM
gracias, karma++
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Drumpi on September 02, 2016, 05:49:02 PM
No exactamente.
Técnicamente los modos de 8bits son los que usan las paletas de colores por su propia naturaleza: usan 256 colores, y se referencia a cada uno de ellos mediante un byte, así puedes elegir los colores que quieras usar, ahorras memoria, y hay un montón de historia y temas técnicos que no voy a ponerme a explicar :D

PERO el modo 16bits también permite usar paletas. Teóricamente, cada paleta debe ser cargada mediante LOAD_PAL y almacenada en una variable tipo int (igual que se hace con los FPG). Se pueden cargar paletas desde ficheros tipo PAL de DIV, MAPs de 8bits y FPGs de 8bits (creo que había algo sobre paletas de photoshop, pero no recuerdo si era nativo, mediante librería, o sólo cosa de FPGEdit).
Luego, cuando se asignaba un gráfico a un proceso, este contaba con una variable local llamada PALLETTE o algo así, al cual se le debía asignar el color de la paleta cargada que se quería usar. Así, podemos tener un único FPG y varias paletas para consegir los famosos "recolor", o los cambios de paleta al estilo Megaman, diversos equipos de fútbol, etc...
La pega es que esto es sobre el papel, y nunca me ha dado por probarlo a fondo para dar información más a fondo, y no ha sido por falta de ganas.

En teoría también se podía cargar una paleta global, como se hacía en Fenix (que sólo permitía una única paleta, incluso en modo 16 bits, si no recuerdo mal) pero no he conseguido hacerlo funcionar adecuadamente, como se vio en la última crap compo (tampoco tuve demasiado tiempo para probar cosas ^^U).
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on September 14, 2016, 09:57:08 PM
bueno, ya he buscao y rebuscao y no tengo nada que llevarme a la boca

pediria, si se puede, un misero ejemplo donde se pueda modificar las paletas de 8 bit, ya que en la biblia desgraciadamente no viene

en un momento dao estaba pensando en usar un grafico modificado segun los perfiles de color, osea uno en rojo, otro en verde y otro en azul, ponerlo delante del grafico principal y jugar con el alfa; no me suena mala idea...

¿alguien lo ha catao?
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Drumpi on September 15, 2016, 12:41:18 AM
Te lo digo de memoria porque la hora que es no puedo ponerme a mirártelo, pero creo que set_colors, pasándole como variable un array con los valores RGB que quieras (o sea, que necesitas que tenga 3 posiciones por cada color), te permitía cambiar los colores de una paleta.
Debería estar en la wiki junto con un ejemplo (o en el bennupack).
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on September 15, 2016, 12:14:02 PM
pues no, no hay mucha documentación sobre ello, hasta dicen que no trataran de hablar del tema
(http://forum.bennugd.org/index.php?action=dlattach;topic=4313.0;attach=3629)


asi que mi unica solución es crear algo que me sirva usando los tres colores magenta cian y amarillo con su alfa, porque desgraciadamente si uso el rojo, verde y azul, como que no vá...

aparte que tambien tendré que usar el negro, es una forma que no me disgustaria si no fuera que tengo que hacer una copia del grafico en esos colores

¿hay forma humana crear una sección o alguna ''copia'' en negativo de la forma del grafico para no tener que sacar duplicados inutiles?

aparte que no me deberia de preocupar mucho porque en un fpg hay 999 graficos y se puede usar infinitos fpgs...
creo
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Drumpi on September 15, 2016, 04:14:28 PM
Pero eso que pone:
1 - Es para novatos. Sí que se puede usar paletas en modos de 16 y 32 bits, lo que pasa es que internamente hay un paso de conversión de colores y se pierde rendimiento, cuando las paletas se han usado siempre para reducir el uso de recursos. Hoy día sólo te sirve para eso, para hacer cambios de colores fácilmente.
2- El manual se desarrolló para Fenix, y parece que esa parte está desactualizada, porque Splinter añadió, tanto para Fenix como para Bennu, el manejo de múltiples paletas en modos de 16 y 32 bits, por lo que puedes cargar vrias paletas.

Usar RGB o CMY da igual, eso es cuestión de gustos y da diferentes colores en función de los valores (otra cosa sería usar HSV), pero ten en cuenta que en modos 8bits, en ningún caso vas a tener valores de alpha.

La otra solución es usar tablas de blendops, que es lo recomendado para modos de 16bits, aunque consumen "bastante" memoria (65565*3 bytes, creo). Las hay de muchos tipos, consulta la wiki. Una de ellas te permite invertir los colores, pero te lo tengo que mirar en un antiguo código donde lo usé.

http://wiki.bennugd.org/index.php?title=Blend_table
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on September 15, 2016, 08:26:08 PM
el problema que a mi me surge es que quiero formar una imagen a raiz de muchas, para el interfaz de las caras que estoy programando, si ''abro'' la posibilidad que haya diferentes tonos de piel/cabello me sale mucho mas rentable el modificar un unico grafico hasta de 256 veces diferentes dentro del mismo programa; de la otra forma seria hacer 256 graficos distintos que a una media de 10 formas de caras me quedo sin cupo en el fpg

mi solución que parece mas razonable es hacer cada cara cinco veces (blanco, negro, magenta, cian, amarillo) y jugar con las alfas y posición. No es una cosa muy ''purista'' pero si le doy el interfaz adecuado puede resultar provechosa y quizas interesante

Luego un ''snapshot'' y a guardar como grafico nuevo en un fpg nuevo, y da igual como lo ha hecho si el resultao es bueno

En cuanto a lo del blend, no me parece mu ''guay'' andar con un codigo que todavia no entiendo, si voy a hacer una aplicación online igual no me convendrá que gaste mucha memoria, pregiero hacerlo super simplon y que cumpla su prometido
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on September 15, 2016, 11:22:44 PM
Bueno, el apaño está hecho y me es bastante satisfactorio, por lo menos para mi:

En el ejemplo podemos ver como podemos cambiarle el color de la cara a este personajillo bajo las siguientes variables:

· Color negro     · Z arriba del tó (1)
· Color amarillo  · Z siguiente     (2)
· Color cian        · Z siguiente     (3)
· Color magenta · Z siguiente     (4)

Con las capas de colores se le puede aplicar el alfa (en fracciones de 32 por ahora) y el orden con respecto a las demas, o tambien conocida como Z, y salen unos efectos de color muy guapos con solo cuatro graficos...

(http://forum.bennugd.org/index.php?action=dlattach;topic=4313.0;attach=3632)
pd: las teclas para modificar los valores son esas tan raras


Diseñar el interfaz grafica para dar ''coba'' no creo que sea dificil, ahora si, lo delicado será sacar un ''snapshot'' para que me lo guarde como un png, pero eso ya es otra historia, je je je
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Drumpi on September 17, 2016, 11:18:07 AM
Te recomiendo de verdad que investigues lo de las paletas. En todo caso, puede que te interese probar también el flag aditivo con gráficos de color rojo, verde y azul puro (se usa como los flags de espejado y transparencia, y combinado con alpha creo que podría funcionar incluso mejor) ;)
Hay que experimentar en esta vida para obtener buenos resultados :P
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on September 18, 2016, 12:49:15 AM
Vale, ya lo tengo mucho mas claro y he encontrado la solución, a expensas que alguien me diga si de esta forma gasto mas memoria o es factible...


La clave es hacer una deteccion de durezas al grafico en cuestión, luego si el pixel coincide con el color en cuestion, hacemos el cambio y ya esta...
Resultado: ya se puede obtener cambiar al color deseado en rgba sobre cualquier ''grafico'' 32 bit

Incluyo ejemplo por si quereis sacaros un beneficio a mi costa que fielmente renunciaré a mi parte a menos que me obliguen a trincar la pasta, ja ja ja
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Drumpi on September 18, 2016, 03:32:06 AM
Es otra solución, desde luego. Mientras no tengas problemas en detectar los colores...
Respecto al rendimiento, bueno no es. De hecho es la solución más lenta que se puede dar (creo, porque las funciones put son muy lentas), pero lo que te debes preguntar es ¿ralentiza tu PC? ¿No? pues sigue adelante hasta que encuentres otra solución.

EDIT: Iba a responderte a otro mensaje en el que pedías documentación. Por desgracia no encuentro el mensaje. La documentación siempre ha sido la piedra en el camino de todo Fenixero/Linuxero, así que si no lo encuentras en los manuales, la wiki o los mini tutoriales, te toca preguntar o investigar por tu cuenta, lo que significa hacer 20 códigos diferentes para que sólo te funcione uno. Lo siento pero es así.
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on September 23, 2016, 11:38:43 PM
Por lo pron he encontrao un ejemplo con un roll pallete, no voy mal encaminao...

trabaja en 8 bit que no me hace mucho tilin, no pido yo un 32 bit en mega ultra colores biselados, pero por lo menos si unos 16 bit

de todas formas: ¿se puede con una paleta de 8 bit crear graficos y guardarse como un fpg de 24 bits?
todo dentro del mismo programa, sin tener que salirse y abrir un fpg editor
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Drumpi on September 24, 2016, 12:19:19 AM
Bueno, a ver si ahora que no estoy tan liado te puedo mirar lo de las paletas en 16bits.

En teoría sí que puedes crear un map de cualquier profundidad (new_map o map_new, tercer, parámetro). Guardarlo ya es un problema aparte, porque no sé si el FPG que se crea en memoria es de la misma profundidad que se ha determinado en set_mode, o como decía Splinter, dependía del primer mapa que se introdujera. Lo que sí se es que en 24bits es imposible porque eso no existe (los FPGs son de 1, 8, 16 o 32 bits), y que se guardaría en formato comprimido.

De todas formas se puede guardar en cualquier formato de FPG si sabes usar ficheros. El formato no es muy complicado, y creo que tendrás alguno de mis códigos de ejemplo (que se me venga a la cabeza, "cambia color" o el editor de mapas de tiles deberían tener un proceso o función de ejemplo).

Mañana tengo un bautizo, pero si he terminado con los deberes el domingo, el lunes o el miércoles debería tener algo sobre las paletas, si no me lío con otra cosa (el martes es que estoy en clase de inglés... Sí, estoy sacándome el papelito que dice que sé inglés).
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Futu-block on September 24, 2016, 08:25:00 AM
No se, a mí no me termina mucho de convencer, en otro ejemplo de paleta sale un parsonajillo dando puñetazos y al dar una u otra tecla cambia de color sus pantalones...
Investigando por la carpeta veo que hay dos fpgs distintos, cada uno con un color de pantalón, así no me hace mucho tilín a mí a pesar que es una solución mu buena
Title: Re:Busco ejemplo de carga de varias paletas a la vez....
Post by: Drumpi on September 26, 2016, 05:52:30 PM
No te he podido hacer el ejemplo hoy, pero creo que para pasado mañana o así te lo podré tener listo. Me interesa hacerlo porque así compruebo cómo funcionan lo de las multi-paletas, que aun no he podido echarle un tiento (siempre que hago un proyecto nuevo es con las prisas de la fecha de entrega).

De todas formas, si tienes un windows2000 o anterior a mano, puedes ver un ejemplo en el juego de fútbol que traía DIV2: con un solo FPG tenía todos los equipos del mundo y más, gracias al uso inteligente de las paletas. Eso sí, he mirado el código por encima y es bastante largo, es el más complejo de todo el catálogo de ejemplos de DIV2.