Girado de graficos

Started by Futu-block, July 18, 2016, 12:56:07 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

En mi programa de edición de comic, a la hora de crear los personajes ''despiezados'' y girar las partes se pixelan de una forma muy cafre, como sabemos ya


¿hay alguna alternativa por codigo?

y si no, buscando alternativas...

·¿Bennu carga imagenes vectorizadas? para que dibuje los vectores sin pixelar
aparte que no me importaria dibujar graficas, el muñecote está mas o menos formada de eso, pero ¿puedo sacar snapshot para exportar imagen del resultado? o tendré que recurrir al impr pant...

Drumpi

Si usas Pixtudio, hay una variable que ajusta el algoritmo de rotación de "nearest neighbour" a "linear", pero no recuerdo su nombre. En Fenix/Bennu no hay de eso y tendrías que implementar el algoritmo de rotación a mano (está en internet, sólo tienes que traducirlo a este lenguaje y usar map_put_pixel.
Había una librería que te permitía cargar imágenes vectorizadas, pero te las transformaba en map al cargarla.

Para snapshots tienes dos métodos: usar map_xputnp con cada uno de los procesos de tu muñecote, o con la función:
http://wiki.bennugd.org/index.php?title=Screen_get

A las malas, puedes usar algún algoritmo de postprocesado, que una vez que tengas la imágen, te suavice esos pixelacos, pero tendrías que implementarlo tu, así que estamos en las mismas que con la rotación.
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)

Futu-block

Oka, gracias, y teniendo en cuenta que cada fpg tiene mil imágenes, como que la rotación me la pasaré por el forro y exportare esprites girados, de todas formas tengo que cambiar los esprites según el movimiento, por ejemplo so tiene el brazo encogido o estirado

Ahora lo que me preocupa más son dos cosas; la primera es salvar el conjunto de esprites salvarlo como un esprite nuevo y si hace falta en un fpg nuevo
Y segundo, el cambio de color esprite por esprite, aunque sí dispongo de mil en un fpg tampoco debe de importar, a una media de 10 esprites de la misma "especie" puedo tener cien especies de diez colores distintos; o 50 especies de 20 colores distintos... Tú sabe

FreeYourMind


Futu-block


Drumpi

Hombre, solución para sprites en distintos grados de giro no te puedo dar más que las que ya te he dado (salvo que quieras programarte tu propia rutina en una dll que sustituya a la oficial).

Pero lo de los colores sí: usa gráficos de 8bits. En un modo de 16bits, cada proceso puede tener una paleta propia, y cambiarle los colores a un gráfico de 8bits es tan sencillo como usar una paleta u otra, te ahorrarías cantidad de trabajo y de memoria. Incluso puedes generar la paleta en tiempo real con los colores que te de la gana, y ver los cambios en el momento.
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)

Futu-block

interesante, cuentame mas
(osea, porme una url)

Drumpi

Lo de las rotaciones pregúntale a Splinter, lo de crear una mod habla con l1nk3rn3l.
Lo de las paletas, pues:
http://wiki.bennugd.org/index.php?title=Pal_load
Y una variable local llamada "palete", creo (una variable local que funciona como X, FILE, GRAPH, etc, etc...). Abre la ventana de debug para buscar el nombre exacto porque no me acuerdo ahora, y experimenta un poco ;)
También puede interesarte:
http://wiki.bennugd.org/index.php?title=Pal_set
y echar un vistazo al resto de funciones de la mod_pal, al final de esa página de la wiki.
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)

Futu-block

sigo necesitando como ''pegar'' o dibujar varios esprites en uno solo, he mirado en la biblia a cuenta de crear nuevos fpg pero solo me duplica el primer fpg
¿alguien que me oriente? plis, necesito exportar un grafico que sea el resultado de la interposición de varios otros

Drumpi

Para pegar gráficos tienes las funciones MAP_PUT, mírate MAP_PUT, MAP_XPUT, y la más potente (y más lenta) MAP_XPUTNP.
Luego puedes crear un nuevo FPG con NEW_FPG y añadir mapas con FPG_ADD y luego creo que debías usar FPG_SAVE para guardar los cambios.

En la wiki que te puse, es muy útil ver las funciones relacionadas de la parte inferior, e investigar las distintas lib para ver qué funciones trae. Aun recuerdo cuando me dejaron el manual de DIV, cuando estaba aprendiendo: me tiré un mes o dos yendo de función relacionada en función relacionada :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)

Futu-block

Gracias, estaba tocando esos temas y son mas ''potentes'' de lo que creia