TODO

Started by SplinterGU, November 28, 2008, 06:08:30 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

perdón, es que en las rutas busco una diagonal para cortar el nombre del archivo de su ruta (argv[1]),  para abrir el archivo, guardar su nombre y su ruta.
14,14,14 sería el valor de find aquí, (me equivoqué era 14 y no 15).
("001010011000aaa00","a",-1

de cualquier forma ya lo arreglé, y ya tenemos nueva versión de editor fpg, inteno hacerlo lo más fácil y sencillo de usar. :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

MythomizeR

Pues eso, y es que hasta ahora no había tenido problema para exportarlos a .png -aunque se ralentizara la ejecución de l programa, como es lógico- a fin de, a partir de estos, crear un vídeo, pero es que ahora en un programa distinto, me hace cosas raras como la de grabarme varias veces el mismo fotograma, o directamente detenerse la ejecución de este...

Saludos.

SplinterGU

No entiendo el problema
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

MythomizeR

La cuestión es que quiero hacer capturas de los fotogramas de un programa -con ayuda de la función save_png- para luego montar un vídeo .avi a partir de éstas.

Esto llegué a hacerlo sin problemas en alguna ocasión, vamos, que que logré hacer capturas de todos los frames del programa para luego montar el vídeo con el virtualdub, pero lo cierto es que estoy intentando hacer lo mismo con otro programa pero como digo me produce efectos indeseados tales como la grabación repetida de un mismo fotograma (frame) o como que simplemente se quede detenido -bloqueado- el programa... una cosa rara, ya lo sé, porque total va a tan solo 25 FPS el programa... pero bueno

No se, quizás el problema provenga de alguna función implementada por mí lo que esté originando el problema... tendré que revisarlo...

Ya diré algo, gracias y saludos.

SplinterGU

deberia funcionar bien, si tenes las prioridades adecuadas en los procesos... el que captura deberia ser el de menor prioridad y tu set_fps no debe estar configurado con skip frames, si tenes todo eso, entonces deberia ir bien
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

MythomizeR

#80
Bueno, pues aun poniendo el proceso capturador con menor prioridad que ninguno (el set_fps ya lo tenía de antes trabajando sin frameskip) y tras numerosas pruebas, sigo teniendo los mismos problemas -incluso ocurre que durante la ejecución de programa no se ven las imágenes, quedándose la pantalla en negro-, al menos con el susodicho programa...

Porque después he probado a capturar los fotogramas de otro programa distinto que no habia probado y no he tenido ningún problema, salvo eso sí, un fade a rojo que no era grabado en los .png, es decir los fotogramas los grababa bien pero por alguna extraña razón el efecto de fundido no lo incluía en la exportación de los .png...

Ya seguiré testeando/investigando luego otro poco a ver si aíslo el problema...

Saludos y gracias.

SplinterGU

Si es 8 bits es probable que el fundido no lo captures.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

MythomizeR

#82
Estoy trabajando a 640x400 a 32 bits, aunque por lo que dices igual va por ahí el problema, no lo se... porque ahora mismo no recuerdo si he llegado a capturar o no fundidos con esa profundidad de color, aunque creo que sí....

SplinterGU

si compartieras el codigo seria de gran ayuda.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

MythomizeR

#84
Mira, te adjunto un ejemplo muy básico que muestra cómo falla la captura del fade en 32 bits...

Se trata de un simple fade a rojo, y para capturar las pantallas, simplemente tienes que descomentar el código que se encarga de ello y que viene claramente indicado.

Las capturas son creadas dentro de la subcarpeta 'captures'.

SplinterGU

#85
La get_screen es un tanto errada conceptualmente, lo que hace es forzar un frame, pero lo hace a medias... yo te sugiero el siguiente codigo:


Program prueba;

import "mod_video";
import "mod_map";
import "mod_string";

import "mod_draw";

Global
    int counter=0;

begin
    full_screen=false;
    set_mode(640,480,32,WAITVSYNC);
    set_fps(25,0);

    drawing_map(0,0);
    draw_box(50,50,100,100);

    fade(200,0,0,1);
    while(fading)
        frame;
        save_png(0,-1,"captures/img"+substr("00000"+counter,-5)+".png");
        counter++;
    end
end
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

save_png... con graph "-1"??? -1 es la pantalla? falta ayuda completa XD está bien el moddesc.exe pero está claro que no es suficiente.

Así que con -1 graba los fade? y esas cosas? a ver si puedo probarlo en un rato.

Yo si noté hace tiempo (y lo Posteé en el Foro) que el save_png guardaba el negro Puro como transparente. Lo que hice fue ponerle un graph como fondo con un negro rgb(5,5,5).
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

MythomizeR

#87
Quote from: SplinterGU on May 03, 2009, 11:57:30 PM
La get_screen es un tanto errada conceptualmente, lo que hace es forzar un frame, pero lo hace a medias... yo te sugiero el siguiente codigo...
Gracias, lo probaré.


Editado:

Ahora sí que captura el fade, gracias.

Editado II:

Y también he descubierto el problema que hacía que mi programa se detuviera a veces y en puntos aleatorios, y no era por mi código, no al menos directamente:


[code language="bennu"]if(t%(fps*3)==0) k-=18; end
if(t%(fps*1)==0) k+=6; end[/code]

y es que como se ve, al depender 'k' de 'fps' la cual no mantiene siempre el mismo valor, si tenemos en cuenta que 'k' hace de índice de un vector, pues no es complicado imaginarse las malas consecuencias que ello puede traer, y que de hecho me ha traido...

Así pues, nada, he sustituido 'fps' por un 'fps2' que guarda un valor fijo de 25 y Santas Pascuas.

SplinterGU

Quote from: TYCO on May 04, 2009, 06:56:31 AM
save_png... con graph "-1"??? -1 es la pantalla? falta ayuda completa XD está bien el moddesc.exe pero está claro que no es suficiente.

Así que con -1 graba los fade? y esas cosas? a ver si puedo probarlo en un rato.

Yo si noté hace tiempo (y lo Posteé en el Foro) que el save_png guardaba el negro Puro como transparente. Lo que hice fue ponerle un graph como fondo con un negro rgb(5,5,5).

Me extraña araña!

Eso del mapa 0,-1 deberias saberlo desde hace tiempo... 0,-1 desde los remotos tiempos de fenix fue la pantalla... no tiene nada que ver con la save_png.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

Yo vengo de los tiempos de Fénix y me encargé una temporada de pasar Documentación a una plantilla XML, y lo que tengo de SAVE_PNG es esto:

SAVE_PNG

Guarda en disco un gráfico, en formato PNG

SINTAXIS
INT SAVE_PNG( INT librería, INT gráfico, STRING fichero)

VALOR DE RETORNO
INT :

PARÁMETROS
INT librería : Código de la librería FPG
INT gráfico : Número del gráfico
STRING fichero : Nombre del fichero

DESCRIPCIÓN
Esta función guarda en disco un gráfico cualquiera en formato PNG. Este gráfico puede formar parte de una librería FPG cualquiera, o haber sido creado en memoria con funciones como NEW_MAP o MAP_CLONE.

Los ficheros PNG no soportan información extendida como por ejemplo el centro, los puntos de control o las animaciones.

NOTAS
1. El gráfico PNG será de 8 o 32 bits en función del grafico original (8 o 16 bits respectivamente).

VEA TAMBIÉN
SAVE_MAP, MAP_CLONE, NEW_MAP


Como se puede apreciar no se hace referencia alguna a que si indicas GRAPH=0 o -1, sea la "pantalla". Por tanto... tengo razón, tanto la ayuda de Bennu como la de Fénix (las Wikis que yo conozca) no es completa, y cosas como éstas... para un novato pasan totalmente desapercibidas.... incluso para gente que lleva más tiempo como yo. Sino... que levanten la mano los lo sabian.... ves? ni una mano XD.

Respecto a las TRANSPARENCIAS al hacer el "save_png" con:
save_png(0,-1,"PRUEBA" + itoa(contador) + ".PNG");
Los negros PUROS me los graba como transparecia (o canal alpha), uso 16Bits. Pero si en vez de -1 le pongo un Graph capturado con get_screen(); lo hace bien, al menos en 16Bits.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)