Igual dejando un "gráfico" base con relleno transparente sobre un gráfico base de un color o dibujando una forma básica que haga de fondo y cambiándole el color según desees, te puede servir
el tema es que los modos 8 bits tenes 1 paleta para todo, si usas un modo de video de 16bits o 32bits, y graficos de 8bits, podes asignar 1 paleta para cada grafico individualmente, y de esta forma podes algo similar a lo que queres hacer, pero lo hace directamente el motor al hacer el dibujado del sprite.
si en ps2 usas 32bits, entonces si podes hacer esto, en ese caso usas map_pal_asign (para asignarla a un grafico) o directamente usar la variable PALETTE en el proceso y modifica solo a ese proceso, a PALETTE le asignas el valor de un LOAD_PAL o un NEW_PAL (para mi, esta es mejor, porque podes mantener procesos con el grafico original y otros modificados)
usando esto ultimo no tenes que optimizar los graficos ni nada raro.
bueno, espero esto te sirva.
-----Actualizado-----
me olvide preguntarte, veo que en el video sigue el problema de que los objetos lejanos vienen mas rapido que los cercanos, eso ya lo has solucionado en las ultimas versiones?
...
Podrías limitar el numero de coches en escena, por ejemplo tener 3 coches con diferentes colores asignados de la paleta (coche1 colores del 101 a 110, coche2 de 111 a 120, coche3 de 121 a 130), e ir cambiando los colores concretos de cada coche cuando salgan de la escena (supongo se puede editar el color de forma individual en la paleta de 8bit), daría la sensación de que en el juego hay coches de muchos colores cuando realmente solo tienes gráficos de 3 coches coloreados.
No se si me explico bien y se entiendo lo que digo, o si te sirve o no.
Última edición por Darumo; 04/07/2016 a las 18:32
masteries (04/07/2016)
La maestría interior...
Metal Slug para Atari STE: Video-1 Video-2
En venta memorias de 512 KB y 1 MB para Amiga 500 y Amiga 500 Plus
En venta disco duro tarjeta micro SD para Atari ST/E, compatible SDHC
asi no vas a ahorrar memoria, porque necesitas tener el grafico con pixels de diferentes color en memoria... la forma de ahorrar es como te dije yo, si es que usas modo de 32bits (que segun veo en wikipedia es lo que soporta ps2), cada paleta son solamente 768bytes, y solo tenes 1 coche en memoria y lo podes dibujar con tantos colores como quieras, solo a un costo de 768bytes cada vez que le asignas una paleta nueva y esa paleta se puede reutilizar sin consumir memoria.
ejemplo
paleta1 = load_pal o new_pal; // 768 bytes de memoria
paleta2 = load_pal o new_pal; // 768 bytes de memoria
proceso1
grafico = lala;
palette = paleta1; // 0 bytes de memoria extra, esto no consume memoria, ni procesamiento extra para dibujarlo
end
proceso2
grafico = lala;
palette = paleta1; // 0 bytes de memoria extra, esto no consume memoria, ni procesamiento extra para dibujarlo
end
proceso3
grafico = lala;
palette = paleta2; // 0 bytes de memoria extra, esto no consume memoria, ni procesamiento extra para dibujarlo
end
y asi
Última edición por SplinterGU; 04/07/2016 a las 20:54
...
Si eso ya lo sé Splinter... sólo quería agradecer al muchacho el hecho de haber querido participar, ya fuese brillante o moderada su intervención.
No tenía intención ni esperaba que nadie echara por tierra su propuesta, pues a todas luces no parecía necesario.
-----Actualizado-----
Y que funcione bien en una GP2X también tiene su gracia
Última edición por masteries; 05/07/2016 a las 09:45
La maestría interior...
Metal Slug para Atari STE: Video-1 Video-2
En venta memorias de 512 KB y 1 MB para Amiga 500 y Amiga 500 Plus
En venta disco duro tarjeta micro SD para Atari ST/E, compatible SDHC
Jo, si lo hubieras puesto en el foro de Bennu te habría contestado mucho antes. Como ahora estoy con un proyecto tras otro, casi me paso por allí dos veces al día y por aquí casi nada
Bueno, lo ideal por velocidad y recursos es lo que te han comentado: cambiar los colores de la paleta.
http://wiki.bennugd.org/index.php?title=Pal_set
Pero claro, entiendo que no es posible porque quieres tener gráficos iguales de diferente color. Ahí te toca duplicar los gráficos y modificar los colores con
http://wiki.bennugd.org/index.php?title=Map_get_pixel
http://wiki.bennugd.org/index.php?title=Map_put_pixel
Que es una tarea lenta (todas las funciones PUT son lentas).
Pero bueno, hay otra forma más rápida y similar a lo que se hacía en los 80, pero sigues necesitando duplicar los gráficos si quieres que tengan diferentes colores entre sí, y es usar el
http://wiki.bennugd.org/index.php?title=Map_buffer
Así no haces uso del renderer ni nada para acceder a los datos del mapa, tienes acceso directo, y si tienes los bloques de memoria localizados, puedes hacer la asignación muchísimo más rápidamente con:
http://wiki.bennugd.org/index.php?title=Memset
Es que ya, para reducir más memoria, necesitarías crearte un formato de mapa con menos bpp, pero entonces ya tienes que lidiar con map_put_pixel y demás, y te iba a bajar el rendimiento cosa mala.
La única opción que se me ocurre es que uses la técnica de NES para conseguir sprites con más colores, usando superposición de dos imágenes:
- Crea un sprite de 8bits normal, con sus colores de paleta, etc.
- Crea un sprite de 1bpp (sí, existen mapas de ese tipo) y usa esto para asignar el color:
http://wiki.bennugd.org/index.php?title=Drawing_color
- Colócalo estratégicamente sobre el sprite, usando un "proceso dummie".
Al ser un mapa de 1bpp puede consumir como 8 veces menos que un map de 8bpp, pero no he trabajado lo suficiente con ellos para decirte cómo de efectivo es este método, ni cómo funciona DRAWING_COLOR, ni con qué programa puedes crear mapas/fpgs de 1bpp.
Es más, incluso puedes usar varios mapas de 1bpp en lugar de un mapa de 8bpp, uno por cada color que necesites aplicar, pero ya no sé cómo irá eso de rendimiento. Tendrás que experimentar (y comentar los resultados ).
PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%
masteries (08/07/2016)
a mi me gustaria saber la profundidad de colores del juego...
...
Gracias Drumpi,
La técnica de NES tiene su gracia, y su efectividad... de hecho la voy a entrenar a ver qué se cuenta.
Drawing_color lo estoy usando, pues en el juego ahora se generan gráficos (puentes, túneles, catenarias/cables) con draw_box, draw_line.
El juego utiliza color de 8 bits; todo en él es fruto de chapucillas y experimentación, como ha señalado Drumpi.
La maestría interior...
Metal Slug para Atari STE: Video-1 Video-2
En venta memorias de 512 KB y 1 MB para Amiga 500 y Amiga 500 Plus
En venta disco duro tarjeta micro SD para Atari ST/E, compatible SDHC
Para mi, la única manera de hacer esto y no aumentar el uso de memoria (ya sea duplicando gráficos en el fpg o en la ram) es tener un proceso que esté vigilando que no haya coches en pantalla; y cuando no haya coches haga un cambio de colores de paleta; de manera que los coches varíen de color durante la partida, pero que no se les vea cambiar de color mientras están visibles en pantalla.
Google stadia es un fracaso, google stadia funciona mal, google admite su fracaso con stadia la latencia es el problema intrinseco de stadia, el público abandona google stadia, stadia mal.
¿Alguien de por aquí?
Acercamiento a la comunidad BennuGD: Javis
http://zxdevs.com/2016/08/tuutut/
gracias @josepzin
...
Marcadores