Source: http://forum.bennugd.org/index.php?topic=4481.msg70982
Timestamp: 2017-04-25 20:18:44+00:00

Document:
Tema: Filtro o Shader para efecto de televisor CRT (Leído 393 veces)
Sexo: Filtro o Shader para efecto de televisor CRT
Para comenzar, saludos a todos los miembros de la comunidad. Soy un novato en el mundo de Bennu y un recién llegado al foro.Estoy empezando a desarrollar un juego que va a intentar capturar el espíritu del software de las consolas de 16 bits (en especial de SEGA Mega Drive/Genesis). Para ello, deseo conseguir un efecto muy particular y estoy teniendo problemas para conseguirlo; la idea es aplicar un filtro o shader al juego para simular la pantalla de un antiguo televisor CRT, de manera similar a lo que se consigue al aplicar el filtro NTSC de Blargg en los emuladores de consolas clásicas. Estoy utilizando 320x224 como resolución, para luego escalar todo por medio de scale_resolution. ¿Es posible conseguir tal efecto? ¿Se pueden utilizar shaders en Bennu o Pixtudio? De ser así, puede alguien guiarme a un artículo o tutorial con la información de como hacerlo? Si es difícil de lograr, me contentaría con poder aplicar un ligero blur a todo el buffer de video y luego dibujar scanlines por encima, pero desconozco si es posible procesar dicho buffer antes de que sea puesto en pantalla en Bennu.Agradecería cualquier tipo de ayuda.
Sexo: Re:Filtro o Shader para efecto de televisor CRT
He hecho un par de capturas para que se entienda mejor lo que tengo ganas de hacer.Primero, éste es el resultado que obtengo al poner los gráficos en pantalla con el filtro, usando:Código: [Seleccionar]scale_resolution=08000600;set_mode(320, 224, 32);Se puede ver que las scanlines se escalan con el resto de los procesos, y el efecto es un tanto tosco.La siguente imagen muestra el resultado que me gustaría lograr:Las scanlines son más sutiles y el ligero difuminado ayuda a esconder el escalado de los pixels de los gráficos en baja resolución.
Se me ocurre que en vez de reescalar todo, trabajando a la resolución real deseada, se puede usar un scroll que contenga el juego entero y renderizarlo a un mapa tamaño de la resolución "falsa" del juego. Ese mapa se lo metes a un proceso y lo escalas a tamaño resolución real, y por encima, otro proceso con el efecto CRT también a resolución real.(De hecho...Me puse a hacer un ejemplo para echar el rato, pero....no consigo que funcione el scroll a mapa...no me acepta los dos parámetros extra de fpg y gráfico de destino. Probé también con un ejemplo de la wiki y otro de Javis que encontré por el foro y nada, que no me quiere los dos parámetros extra (Probé en Pixtudio y tras los mínimos cambiós de sintaxis necesarios ahí si compilan ambos).....No se, se eliminó esta característica? Iluminadme, please xD)
Cita de: La momia que fuma en Marzo 28, 2017, 06:34:57 amSe me ocurre que en vez de reescalar todo, trabajando a la resolución real deseada, se puede usar un scroll que contenga el juego entero y renderizarlo a un mapa tamaño de la resolución "falsa" del juego. Ese mapa se lo metes a un proceso y lo escalas a tamaño resolución real, y por encima, otro proceso con el efecto CRT también a resolución real.(De hecho...Me puse a hacer un ejemplo para echar el rato, pero....no consigo que funcione el scroll a mapa...no me acepta los dos parámetros extra de fpg y gráfico de destino. Probé también con un ejemplo de la wiki y otro de Javis que encontré por el foro y nada, que no me quiere los dos parámetros extra (Probé en Pixtudio y tras los mínimos cambiós de sintaxis necesarios ahí si compilan ambos).....No se, se eliminó esta característica? Iluminadme, please xD)Momia, si podés completar el ejemplo y lo hacés público, sería excelente; si no, igual se agradece la intención. En línea
En cuanto algún buen samaritano del foro me aclare por que puñetas no me acepta los puñeteros parámetros extra de start_scroll para renderizar a mapa (Véase en los ejemplos que enlacé antes...no compilan, protesta por el start_scroll), dalo por hecho, que tengo ganas de probar Es raro, recuerdo haber trasteado con eso en su día sin mayor problema, y por si acaso me aseguré de usar la última versión de Bennu, pero ni por esas... En línea
Ahí entramos en terreno de gustos....haciéndolo así, los objetos del juego se moverían a mayor resolución de la que aparentan, sin regirse por la "cuadrícula" de pixels que representa gráficamente, cosa que hacen muchos juegos retro, y la verdad queda bien, aspecto de juego "de los de antes" pero con movimiento mas suave aunque pierde un poco de "feeling" retro.Ahora, si lo que quieres es hacer un juego retro "purista" y escrupulosamente retro esto no vale (o te tienes que preocupar de que se muevan siempre en incrementos de pixel que simulen esa resolución menor, complicándote las cosas).Javis, igual tú me puedes iluminar en el tema del scroll a mapa...como decía, tu propio ejemplo que enlazo ahí atrás (o el de la wiki) no compila con la última versión....sabes si ha cambiado la sintaxis o algo así? Yo creo que mi solución, una vez montada, es bastante sencilla (trabajar el juego normalmente a baja resolución en un scroll con todos los objetos del juego, renderizar el scroll al mapa de un proceso "pantalla" y ponerlo ampliado con el filtro por encima a resolución real).(Es que ahora hasta que pueda hacer la prueba yo no me quedo tranquilo jajaja )

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución