User Tag List

Página 2 de 3 PrimerPrimer 123 ÚltimoÚltimo
Resultados 16 al 30 de 31

Tema: [BennuGD] Cambiando colores a los gráficos con paleta de 8 bits

  1. #16

    Fecha de ingreso
    Jan 2016
    Ubicación
    Cádiz
    Mensajes
    3,324
    Mencionado
    36 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,543
    Agradecer Thanks Received 
    712
    Thanked in
    Agradecido 468 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    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

  2. #17

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por masteries Ver mensaje
    @SplinterGU

    @masteries

    Si, esa es una de las cosas en las que estaba pensando... para cambiar los colores de los coches y de las líneas laterales de la carretera tendré que hacer esto. Pero sigue sin permitirme cambiar los colores de unos gráficos y de otros no (pertenecientes al mismo set gráfico), al final en estos casos me toca tirar de lo "viejo" y consumir un par de megabytes más de RAM.

    Por cierto, dado que te interesa, el vídeo que he puesto es muy viejo; ahora el port de PS2 emplea un mezclador de audio en Tiempo-Real, ejecutado en una IRQ a 50/60 Hz donde se mezcla 1/50 o 1/60 de segundo de audio.
    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-----

    Cita Iniciado por masteries Ver mensaje
    @SplinterGU

    Si, esa es una de las cosas en las que estaba pensando... para cambiar los colores de los coches y de las líneas laterales de la carretera tendré que hacer esto. Pero sigue sin permitirme cambiar los colores de unos gráficos y de otros no (pertenecientes al mismo set gráfico), al final en estos casos me toca tirar de lo "viejo" y consumir un par de megabytes más de RAM.

    Por cierto, dado que te interesa, el vídeo que he puesto es muy viejo; ahora el port de PS2 emplea un mezclador de audio en Tiempo-Real, ejecutado en una IRQ a 50/60 Hz donde se mezcla 1/50 o 1/60 de segundo de audio.
    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?
    ...

  3. #18

    Fecha de ingreso
    Jun 2004
    Ubicación
    Malaga
    Mensajes
    2,601
    Mencionado
    10 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    7
    Agradecer Thanks Received 
    43
    Thanked in
    Agradecido 39 veces en [ARG:2 UNDEFINED] posts
    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

  4. El siguiente usuario agradece a Darumo este mensaje:

    masteries (04/07/2016)

  5. #19

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,445
    Mencionado
    112 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    331
    Agradecer Thanks Received 
    1,188
    Thanked in
    Agradecido 589 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Darumo Ver mensaje
    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.
    Gracias, es buena idea esa.

    El ahorro de memoria se debe a que quiero que el juego quepa entero en la RAM de una PlayStation2 y también se pueda jugar a él en una GP2X F100 / F200.

  6. #20

    Fecha de ingreso
    Jun 2004
    Ubicación
    Malaga
    Mensajes
    2,601
    Mencionado
    10 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    7
    Agradecer Thanks Received 
    43
    Thanked in
    Agradecido 39 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por masteries Ver mensaje
    Gracias, es buena idea esa.

    El ahorro de memoria se debe a que quiero que el juego quepa entero en la RAM de una PlayStation2 y también se pueda jugar a él en una GP2X F100 / F200.
    La ram siempre es un tema complejo. hay que comerse el coco e ingeniárselas para hacer lo posible con lo que se tiene.

  7. #21

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por masteries Ver mensaje
    Gracias, es buena idea esa.

    El ahorro de memoria se debe a que quiero que el juego quepa entero en la RAM de una PlayStation2 y también se pueda jugar a él en una GP2X F100 / F200.
    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
    ...

  8. #22

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,445
    Mencionado
    112 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    331
    Agradecer Thanks Received 
    1,188
    Thanked in
    Agradecido 589 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por SplinterGU Ver mensaje
    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
    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-----

    Cita Iniciado por Darumo Ver mensaje
    La ram siempre es un tema complejo. hay que comerse el coco e ingeniárselas para hacer lo posible con lo que se tiene.
    Y que funcione bien en una GP2X también tiene su gracia
    Última edición por masteries; 05/07/2016 a las 09:45

  9. #23

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por masteries Ver mensaje
    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
    perdon, pense que no se habia entendido lo que explique, y por eso replantee mi explicacion...
    ...

  10. #24

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,234
    Mencionado
    248 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    679
    Agradecer Thanks Received 
    1,864
    Thanked in
    Agradecido 1,277 veces en [ARG:2 UNDEFINED] posts
    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%

  11. El siguiente usuario agradece a Drumpi este mensaje:

    masteries (08/07/2016)

  12. #25

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    a mi me gustaria saber la profundidad de colores del juego...
    ...

  13. #26

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,445
    Mencionado
    112 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    331
    Agradecer Thanks Received 
    1,188
    Thanked in
    Agradecido 589 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Drumpi Ver mensaje
    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 ).
    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.

  14. #27

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,646
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    189
    Agradecer Thanks Received 
    2,640
    Thanked in
    Agradecido 1,647 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    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.

  15. #28

    Fecha de ingreso
    Nov 2005
    Ubicación
    Excartagenero
    Mensajes
    23,719
    Mencionado
    276 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    6,013
    Agradecer Thanks Received 
    5,866
    Thanked in
    Agradecido 3,823 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    1
    ¿Alguien de por aquí?

    Acercamiento a la comunidad BennuGD: Javis
    http://zxdevs.com/2016/08/tuutut/

  16. #29

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    gracias @josepzin
    ...

  17. #30

    Fecha de ingreso
    Jan 2016
    Ubicación
    Cádiz
    Mensajes
    3,324
    Mencionado
    36 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,543
    Agradecer Thanks Received 
    712
    Thanked in
    Agradecido 468 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    Jarl!!

Página 2 de 3 PrimerPrimer 123 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •