naxeras escribió:Madre mía lo que estoy aprendiendo con los filtros.
¿Pero esto vale para todos los emuladores?
Es decir lo mejor es ampliar X veces la resolución nativa de la consola y aplicar un filtro, si ya deformamos necesitamos un filtro secundario...
El propio filtro que amplia la resolución (es uno filtro de upscaling). Los filtros non-lineares, como HQx, xBR, Scale2x, AdvancedAA, e otros, son otimizados para ampliar la resolucion original (nativa del console) por multiplos interos (2x, 3x, 4x, 5x, etc). Los filtros lineares (bicubic, bilinear, lanczos, etc) son buenos para ampliar para quaisquer tamaños.
Estoy hablando apenas del funcionamento del Retroarch.
Hoy el Retroarch de PS3 usa uno ou dos filtros. Tu puedes escojer usar apenas uno filtro, por exemplo, bicubic-fast. Como el és linear, puedes esticar la imagen para qualquier tamaño, com qualquier scale factor.
Hay una diferencia crucial entre Scale Factor, Resolución e Viewports. És necessário entender los três para poder extrair la máxima calidad de los filtros.
Scale Factor: Los filtros trabajan com una imagem en memória de input e otra de output. La relación entre el tamaño de output y input és él scale factor. Por ejemplo, si escoje 2x para Scale Factor, enconces el filtro "filtra" la imagen the input e produz una segunda imagen (output) filtrada con tamaño "scale factor" veces el tamaño de input.
Resolución (de Retroarch): És la cantidade de pixels que Retroarch puede projectar en tu TV. Se configuras Retroarch para 1080p, el puede producir esta cantidade de pixels, pero dependiendo de tu TV, non son todos los pixels que serán visibles.
Viewports: Esta és una opción de configuración para retroarch que permite alterar el aspect ratio de los juegos. Algunos aspect ratios son fijos (3:2, 16:9, etc). La mejor opción és la custom, porque puedes definir las viewports usando la opción Resize Mode. Las viewports son la quantidade y posición de pixels que usted define para projeción del juego en tu TV. És con esta opción que puedes projetar los juegos en múltiplos interos de la resolución nativa de la consola emulada. Mismo Retroarch configurado para 1080p de resolución, pudes manejar barras negras en las cuatro extremidades de la pantalla usando las viewports.
Tendo esta explicación, puedes entender como dual shader funciona. El primeiro filtro faz upscaling da imagen para o tamaño definido para Scale Factor. El segundo filtro recibe este output e projecta em el tamaño definido pelas Viewports. Por exemplo:
Shader 1: 2xBR-Hybrid-v2.cg
Shader 2: Lanczos16.cg
Scale Factor: 2x
hardware filter 1: point
hardware filter 2: point
aspect ratio: custom
Que hace esto? El shader 1, filtra el input de resolución nativa de la consola emulada (256x224 para SNES) e produz uno output con tamaño 2 veces la resolución nativa (mira el scale factor) que és de 512x448. El segundo filtro fará el upscaling de la imagen output (512x448) para el tamanho definido por los Viewports. Entonces, se los viewports estan configurados para 768x672, el segundo filtro estará automaticamente usando um segundo "scale factor" de 1.5x. El segundo scale factor és definido indirectamente pelo usuário e normalmente no és un múltiplo intero, por esto é mejor usar filtros lineares como shader 2.