Solved Problème SHADERS - Impossible de sauvegarder
-
Bonjour à tous
Je suis en train de finaliser la config de mon Recalbox ... que ce soit sur Pi ou sur PC, j'ai le même problème.
Mon besoin :
Je dispose d'un écran 4/3 donc je ne vais pas utiliser les Overlays.
Je souhaite néanmoins utiliser le shaders scanline + crt-pi-barrel pour avoir l'effet bombé + scanline sur mon LCD.
Seulement voilà impossible de modifier le shaders.
J'ai tout essayé ou presque1/ J'ai modifié le fichier retro.cfg pour y placer par défaut le bon shader (crt-pi) mais bizzarement aucun shader n'est appliqué
2/ J'ai testé de mettre custom, mais j'ai un message d'erreur qui me dit dans RetroArch : Failed to apply shader preset:retroarch.gslp ... même chose si je sauvegarde : Erreurs lors de l'enregistrement des préréglages de shadersDu coup que faut il que je fasse ?
Merci pour votre aideAutre chose puisque j'y suis , je parlais d'overlays comme quoi j'allais pas les utiliser ... mais j'avoue que j'aurais aimé obtenir juste l'effet scratch de la vitre et pourquoi pas sur certain overlay arcade avoir des effets sympa (borne mario, vectrex ... etc) pensez vous que ce soit possible de mettre des overlays sur une config 4/3 ?
-
Bonjour,
Si tu souhaites utiliser un shader ou un shader preset pour tous tes systèmes, il existe pas mal de solutions. En voici deux.
La première :
dans recalbox.conf, modifier la ligne :
global.shaderset= /recalbox/share/l'endroit-où-tu-mets-tes-presets/tonpreset.glslp
Le seconde, la meilleure à mon avis :
utiliser les surcharges, très pratique pour associer des presets par système.
Pour faire ça, crée un fichier .recalbox.conf (avec le point au début) et le placer dans ton dossier recalbox/share/roms
Dans ce fichier, tu assignes des shaders presets par systèmes.
exemple :
snes.shaders= /recalbox/share/l'endroit-où-tu-mets-tes-presets/tonpreset.glslp
En ce qui me concerne, je range mes shaders presets dans un dossier shaderpresets que j'ai créé dans
/recalbox/share/system/
Ainsi, mon .recalbox.conf contient
snes.shaders= /recalbox/share/system/shaderpresets/snesshaders.glslp fba_libretro.shaders= /recalbox/share/system/shaderpresets/fba_libretroshaders.glslp
etc...
Cela dit, à la lecture de ton message, je me demande si ton problème ne vient pas tout simplement du contenu de ton shader preset.
Si ton problème vient de là : voici à quoi un shader preset ressemble.
Ici : j'associeblur3fast-horizontal.glsl
et uncrt-pi
reparamétré.shaders = "2" shader0 = "/recalbox/share_init/shaders/shaders_glsl/blurs/blur3fast-horizontal.glsl" filter_linear0 = "true" wrap_mode0 = "clamp_to_border" float_framebuffer0 = "false" shader1 = "/recalbox/share_init/shaders/shaders_glsl/crt-pi/crt-pi.glsl" filter_linear1 = "true" wrap_mode1 = "clamp_to_border" mipmap_input1 = "false" alias1 = "" float_framebuffer1 = "false" srgb_framebuffer1 = "false" parameters = "BARREL_DISTORTION_X;BARREL_DISTORTION_Y;MASK_BRIGHTNESS;SCAN_LINE_WEIGHT;BLOOM_FACTOR;INPUT_GAMMA;OUTPUT_GAMMA" BARREL_DISTORTION_X = "0.13000" BARREL_DISTORTION_Y = "0.14000" MASK_BRIGHTNESS = "0.86" SCAN_LINE_WEIGHT = "8.00" BLOOM_FACTOR = "2.80" INPUT_GAMMA = "2.40" OUTPUT_GAMMA = "1.90"
-
@Nayok : Franchement un immense merci J'ai resolu mon problème !
J'ai fait tout ce que tu as dit et j'ai du coup un shader scanline + bombé pour l'ensemble de mes systèmes sauf gameboy
Me reste maintenant à trouver une solution pour mettre en overlay un ecran legerement scratché pour avoir l'effet vieille borne pour ecran 4/3.
Je vais creuser un peu voir comment je peux faire ca doit pas bien etre compliqué -
C'est encore mieux que je l'esperais
Du coup je suis en train pour chain de mes systemes - Retroarch - de créer un Bezel dédiée pour mon ecran 4/3 histoire de lui rendre un rendu très proche d'un CRT
Je me base sur le ratio en mode pixel perfect et j'adapte chaque Bezel !
Des que j'ai terminé je partage si cela interesse du monde ! -
@nayok Salut, j'aimerais installer les shaders snes 115 et caligari sur tous mes systems, mais ça n'a pas fonctionner avec ma methode, alors je me tourne vers toi car j'en ai marre d'enlever ma clé USB et éteindre/rallumer mon pi3, c'est pas très bon pour lui je pense.
Dans mon recalbox.config, j'ai écris les ligne suivante :
global.shaders=/recalbox/share_init/shaders/bsnes_gamma_rammp_115.glsl
/recalbox/share_init/shaders/crt-caligari.glslHors, ça ne fonctionne pas, j'ai dû mal les écrire. Si tu pouvais m'aider ça serais cool, merci d'avance.
-
@tamtam Normal, je ne crois pas que tu puisses charger deux shaders comme ça.
Je te conseille de charger plutôt un shader preset en .glslp qui associe tes deux shaders. -
@nayok J'ai créé un fichier shaderpresets dans mon dossier system, mais qu'est ce que je dois mettre dedans ?
-
Dans ton dossier, tu mets ton shaderpreset que tu appelles comme tu veux.
Par exemple : TamtamPreset.glslp
C'est lui que tu devras charger.Quand au contenu de ce fichier, ça devrait fonctionner.
shaders = "2" shader0 = "/recalbox/share_init/shaders/files/bsnes_gamma_ramp_115.glsl" filter_linear0 = "true" wrap_mode0 = "clamp_to_border" float_framebuffer0 = "false" shader1 = "/recalbox/share_init/shaders/files/crt-caligari.glsl" filter_linear1 = "true" wrap_mode1 = "clamp_to_border" mipmap_input1 = "false" alias1 = "" float_framebuffer1 = "false"
-
@nayok Merci bien, mais je n'ai aucun shaders d'activé comme ça. J'ai créé un fichier texte .recalbox.conf que j'ai mis dans mon dossier roms avec comme ligne :
snes.shaders= /recalbox/share_init/shaders/files/shaderpresets/tamtampreset.glslp
nes.shaders= /recalbox//share_init/shaders/files/shaderpresets/tamtampreset.glslpCa ne fonctionne pas non plus. J'ai bien créé un dossier shaderpresets que j'ai mis dans system. A l'intérieur, j'ai créé un fichier texte que j'ai appelé tamtam.plslp, avec à l'intérieur, ce que tu m'as donné. Jusque la c'est tout bon je pense. Par contre c'est dans mon dossier roms qu'il doit y avoir une erreur ??
-
This post is deleted! -
@nayok J'avoir pas à voir c'est quoi le dossier "files"
Je l'ai mis à la racine de mon dossier system -
Ok on recommence.
Tu dis avoir créé un dossier shaderpresets dans system.Le chemin pour trouver ton shader preset est donc sûrement
/recalbox/share/system/shaderpresets/tamtampreset.glslp
-
Oui c'est bien ça
-
@tamtam donc ton .recalbox.conf ne risque pas de trouver quoi que ce soit, à moins d'adresser le bon chemin
snes.shaders= /recalbox/share/system/shaderpresets/tamtampreset.glslp nes.shaders= /recalbox/share/system/shaderpresets/tamtampreset.glslp
-
@nayok Oui efféctivement, maintenant ça marche. Je sais pas si tu connais le shader crt-easymode-halation, mais je n'arrive pas à le faire fonctionner
J'ai mis ces deux fichiers dans mon shaderpresets
Un fichier glsl, avec ceci à l'intérieur :
#pragma parameter GAMMA_OUTPUT "Gamma Output" 2.2 0.1 5.0 0.01
#pragma parameter SHARPNESS_H "Sharpness Horizontal" 0.6 0.0 1.0 0.05
#pragma parameter SHARPNESS_V "Sharpness Vertical" 1.0 0.0 1.0 0.05
#pragma parameter MASK_TYPE "Mask Type" 4.0 0.0 7.0 1.0
#pragma parameter MASK_STRENGTH_MIN "Mask Strength Min." 0.2 0.0 0.5 0.01
#pragma parameter MASK_STRENGTH_MAX "Mask Strength Max." 0.2 0.0 0.5 0.01
#pragma parameter MASK_SIZE "Mask Size" 1.0 1.0 100.0 1.0
#pragma parameter SCANLINE_STRENGTH_MIN "Scanline Strength Min." 0.2 0.0 1.0 0.05
#pragma parameter SCANLINE_STRENGTH_MAX "Scanline Strength Max." 0.4 0.0 1.0 0.05
#pragma parameter SCANLINE_BEAM_MIN "Scanline Beam Min." 1.0 0.25 5.0 0.05
#pragma parameter SCANLINE_BEAM_MAX "Scanline Beam Max." 1.0 0.25 5.0 0.05
#pragma parameter GEOM_CURVATURE "Geom Curvature" 0.0 0.0 0.1 0.01
#pragma parameter GEOM_WARP "Geom Warp" 0.0 0.0 0.1 0.01
#pragma parameter GEOM_CORNER_SIZE "Geom Corner Size" 0.0 0.0 0.1 0.01
#pragma parameter GEOM_CORNER_SMOOTH "Geom Corner Smoothness" 150.0 50.0 1000.0 25.0
#pragma parameter INTERLACING_TOGGLE "Interlacing Toggle" 1.0 0.0 1.0 1.0
#pragma parameter HALATION "Halation" 0.03 0.0 1.0 0.01
#pragma parameter DIFFUSION "Diffusion" 0.0 0.0 1.0 0.01
#pragma parameter BRIGHTNESS "Brightness" 1.0 0.0 2.0 0.05#ifdef PARAMETER_UNIFORM
uniform float BRIGHTNESS;
uniform float DIFFUSION;
uniform float GAMMA_OUTPUT;
uniform float GEOM_CORNER_SIZE;
uniform float GEOM_CORNER_SMOOTH;
uniform float GEOM_CURVATURE;
uniform float GEOM_WARP;
uniform float HALATION;
uniform float INTERLACING_TOGGLE;
uniform float MASK_SIZE;
uniform float MASK_STRENGTH_MAX;
uniform float MASK_STRENGTH_MIN;
uniform float MASK_TYPE;
uniform float SCANLINE_BEAM_MAX;
uniform float SCANLINE_BEAM_MIN;
uniform float SCANLINE_STRENGTH_MAX;
uniform float SCANLINE_STRENGTH_MIN;
uniform float SHARPNESS_H;
uniform float SHARPNESS_V;
#else
#define BRIGHTNESS 1.0
#define DIFFUSION 0.0
#define GAMMA_OUTPUT 2.2
#define GEOM_CORNER_SIZE 0.0
#define GEOM_CORNER_SMOOTH 150.0
#define GEOM_CURVATURE 0.0
#define GEOM_WARP 0.0
#define HALATION 0.03
#define INTERLACING_TOGGLE 1.0
#define MASK_SIZE 1.0
#define MASK_STRENGTH_MAX 0.2
#define MASK_STRENGTH_MIN 0.2
#define MASK_TYPE 4.0
#define SCANLINE_BEAM_MAX 1.0
#define SCANLINE_BEAM_MIN 1.0
#define SCANLINE_STRENGTH_MAX 0.4
#define SCANLINE_STRENGTH_MIN 0.2
#define SHARPNESS_H 0.6
#define SHARPNESS_V 1.0
#endif#include "../../../compat_includes.inc"
uniform COMPAT_Texture2D(decal) : TEXUNIT0;
uniform float4x4 modelViewProj;INITIALIZE_PASSPREV(4, 1)
#define FIX(c) max(abs(c), 1e-5)
#define PI 3.141592653589
#define TEX2D(c) PASSPREV_Sample(4, c)struct out_vertex
{
float4 position : COMPAT_POS;
float2 texCoord : TEXCOORD0;
#ifndef HLSL_4
float4 Color : COLOR;
#endif
};out_vertex main_vertex(COMPAT_IN_VERTEX)
{
out_vertex OUT;
#ifdef HLSL_4
float4 position = VIN.position;
float2 texCoord = VIN.texCoord;
#else
OUT.Color = color;
#endif
OUT.position = mul(modelViewProj, position);
OUT.texCoord = texCoord;return OUT;
}
float curve_distance(float x, float sharp)
{
float x_step = step(0.5, x);
float curve = 0.5 - sqrt(0.25 - (x - x_step) * (x - x_step)) * sign(0.5 - x);return lerp(x, curve, sharp);
}
float4x4 get_color_matrix(COMPAT_Texture2D(PASSPREV4), float2 co, float2 dx)
{
return float4x4(TEX2D(co - dx), TEX2D(co), TEX2D(co + dx), TEX2D(co + 2.0 * dx));
}float4 filter_lanczos(float4 coeffs, float4x4 color_matrix)
{
float4 col = mul(coeffs, color_matrix);
float4 sample_min = min(color_matrix[1], color_matrix[2]);
float4 sample_max = max(color_matrix[1], color_matrix[2]);col = clamp(col, sample_min, sample_max); return col;
}
float3 get_scanline_weight(float pos, float beam, float strength)
{
float weight = 1.0 - pow(cos(pos * 2.0 * PI) * 0.5 + 0.5, beam);weight = weight * strength * 2.0 + (1.0 - strength); return float3(weight);
}
float2 curve_coordinate(float2 co, float curvature)
{
float2 curve = float2(curvature, curvature * 0.75);
float2 co2 = co + co * curve - curve / 2.0;
float2 co_weight = float2(co.y, co.x) * 2.0 - 1.0;co = lerp(co, co2, co_weight * co_weight); return co;
}
float get_corner_weight(float2 co, float2 corner, float smooth)
{
float corner_weight;co = min(co, float2(1.0) - co) * float2(1.0, 0.75); co = (corner - min(co, corner)); corner_weight = saturate((corner.x - sqrt(dot(co, co))) * smooth); corner_weight = lerp(1.0, corner_weight, ceil(corner.x)); return corner_weight;
}
float4 crt_easymode_halation(COMPAT_Texture2D(tex), float2 coords, float2 texture_size, float2 video_size,
float2 output_size, float frame_count, COMPAT_Texture2D(PASSPREV4))
{
float2 tex_size = texture_size;
float2 midpoint = float2(0.5, 0.5);
float scan_offset = 0.0;if (INTERLACING_TOGGLE && video_size.y >= 400) { tex_size.y *= 0.5; if (mod(frame_count, 2.0)) { midpoint.y = 0.75; scan_offset = 0.5; } else midpoint.y = 0.25; } float2 co = coords * tex_size / video_size; float2 xy = curve_coordinate(co, GEOM_WARP); float corner_weight = get_corner_weight(curve_coordinate(co, GEOM_CURVATURE), float2(GEOM_CORNER_SIZE), GEOM_CORNER_SMOOTH); xy *= video_size / tex_size; float2 dx = float2(1.0 / tex_size.x, 0.0); float2 dy = float2(0.0, 1.0 / tex_size.y); float2 pix_co = xy * tex_size - midpoint; float2 tex_co = (floor(pix_co) + midpoint) / tex_size; float2 dist = frac(pix_co); float curve_x, curve_y; float3 col, col2, diff; curve_x = curve_distance(dist.x, SHARPNESS_H * SHARPNESS_H); curve_y = curve_distance(dist.y, SHARPNESS_V * SHARPNESS_V); float4 coeffs_x = PI * float4(1.0 + curve_x, curve_x, 1.0 - curve_x, 2.0 - curve_x); float4 coeffs_y = PI * float4(1.0 + curve_y, curve_y, 1.0 - curve_y, 2.0 - curve_y); coeffs_x = FIX(coeffs_x); coeffs_x = 2.0 * sin(coeffs_x) * sin(coeffs_x / 2.0) / (coeffs_x * coeffs_x); coeffs_x /= dot(coeffs_x, float4(1.0)); coeffs_y = FIX(coeffs_y); coeffs_y = 2.0 * sin(coeffs_y) * sin(coeffs_y / 2.0) / (coeffs_y * coeffs_y); coeffs_y /= dot(coeffs_y, float4(1.0)); float4x4 color_matrix; color_matrix[0] = filter_lanczos(coeffs_x, get_color_matrix(PASSPREV4, tex_co - dy, dx)); color_matrix[1] = filter_lanczos(coeffs_x, get_color_matrix(PASSPREV4, tex_co, dx)); color_matrix[2] = filter_lanczos(coeffs_x, get_color_matrix(PASSPREV4, tex_co + dy, dx)); color_matrix[3] = filter_lanczos(coeffs_x, get_color_matrix(PASSPREV4, tex_co + 2.0 * dy, dx)); col = filter_lanczos(coeffs_y, color_matrix).rgb; diff = tex2D(tex, xy).rgb; float rgb_max = max(col.r, max(col.g, col.b)); float sample_offset = (video_size.y / output_size.y) * 0.5; float scan_pos = xy.y * tex_size.y + scan_offset; float scan_strength = lerp(SCANLINE_STRENGTH_MAX, SCANLINE_STRENGTH_MIN, rgb_max); float scan_beam = clamp(rgb_max * SCANLINE_BEAM_MAX, SCANLINE_BEAM_MIN, SCANLINE_BEAM_MAX); float scan_weight = 0.0; float mask_colors; float mask_dot_width; float mask_dot_height; float mask_stagger; float mask_dither; float4 mask_config = float4(0.0, 0.0, 0.0, 0.0); if (MASK_TYPE == 1) mask_config = float4(2.0, 1.0, 1.0, 0.0); else if (MASK_TYPE == 2) mask_config = float4(3.0, 1.0, 1.0, 0.0); else if (MASK_TYPE == 3) mask_config = float4(2.1, 1.0, 1.0, 0.0); else if (MASK_TYPE == 4) mask_config = float4(3.1, 1.0, 1.0, 0.0); else if (MASK_TYPE == 5) mask_config = float4(2.0, 1.0, 1.0, 1.0); else if (MASK_TYPE == 6) mask_config = float4(3.0, 2.0, 1.0, 3.0); else if (MASK_TYPE == 7) mask_config = float4(3.0, 2.0, 2.0, 3.0); mask_colors = floor(mask_config.x); mask_dot_width = mask_config.y; mask_dot_height = mask_config.z; mask_stagger = mask_config.w; mask_dither = frac(mask_config.x) * 10.0; float2 mod_fac = floor(coords * output_size * texture_size / (video_size * float2(MASK_SIZE, mask_dot_height * MASK_SIZE))); int dot_no = int(mod((mod_fac.x + mod(mod_fac.y, 2.0) * mask_stagger) / mask_dot_width, mask_colors)); int dither = mod(mod_fac.y + mod(floor(mod_fac.x / mask_colors), 2.0), 2.0); float mask_strength = lerp(MASK_STRENGTH_MAX, MASK_STRENGTH_MIN, rgb_max); float mask_dark, mask_bright, mask_mul; float3 mask_weight; mask_dark = 1.0 - mask_strength; mask_bright = 1.0 + mask_strength * 2.0; if (dot_no == 0) mask_weight = lerp(float3(mask_bright, mask_bright, mask_bright), float3(mask_bright, mask_dark, mask_dark), mask_colors - 2.0); else if (dot_no == 1) mask_weight = lerp(float3(mask_dark, mask_dark, mask_dark), float3(mask_dark, mask_bright, mask_dark), mask_colors - 2.0); else mask_weight = float3(mask_dark, mask_dark, mask_bright); if (dither) mask_mul = mask_dark; else mask_mul = mask_bright; mask_weight *= lerp(1.0, mask_mul, mask_dither); mask_weight = lerp(float3(1.0), mask_weight, saturate(MASK_TYPE)); col2 = (col * mask_weight); col2 *= BRIGHTNESS; scan_weight = get_scanline_weight(scan_pos - sample_offset, scan_beam, scan_strength).x; col = saturate(col2 * scan_weight); scan_weight = get_scanline_weight(scan_pos, scan_beam, scan_strength).x; col += saturate(col2 * scan_weight); scan_weight = get_scanline_weight(scan_pos + sample_offset, scan_beam, scan_strength).x; col += saturate(col2 * scan_weight); col /= 3.0; col *= float3(corner_weight); col += diff * mask_weight * HALATION * float3(corner_weight); col += diff * DIFFUSION * float3(corner_weight); col = pow(col, float3(1.0 / GAMMA_OUTPUT)); return float4(col, 1.0);
}
float4 main_fragment(uniform prev PASSPREV4, COMPAT_IN_FRAGMENT) : COMPAT_Output
{
return crt_easymode_halation(decal, VOUT.texCoord, COMPAT_texture_size, COMPAT_video_size, COMPAT_output_size, COMPAT_frame_count, PASSPREV_texture(4));
}
COMPAT_ENDEt un autre en glslp
shaders = "5"
shader0 = "/recalbox/share/system/shaderpresets/crt-easymode-halation/linearize.glsl"
filter_linear0 = "false"
srgb_framebuffer0 = "true"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"shader1 = "/recalbox/share/system/shaderpresets/crt-easymode-halation/blur_horiz.glsl"
filter_linear1 = "false"
srgb_framebuffer1 = "true"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"shader2 = "/recalbox/share/system/shaderpresets/crt-easymode-halation/blur_vert.glsl"
filter_linear2 = "false"
srgb_framebuffer2 = "true"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"shader3 = "/recalbox/share/system/shaderpresets/crt-easymode-halation/threshold.glsl"
filter_linear3 = "false"
srgb_framebuffer3 = "true"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"shader4 = "/recalbox/share/system/shaderpresets/crt-easymode-halation/crt-easymode-halation.glsl"
filter_linear4 = "true"Et j'ai nommé mon .recalbox.conf comme telle :
snes.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
nes.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
fba_libretro.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
mame.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
mastersystem.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
megadrive.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
neogeo.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
pcengine.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
pcenginecd.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
prboom.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
psx.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
sega32x.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
segacd.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslp
supergrafx.shaders= /recalbox/share/system/shaderpresets/crt-easymode-halation.glslpMais ça ne fonctionne pas ! Désolé pour le bordel...
-
De rien
Je sais pas trop ce que tu essaies de faire, mais tu as maintenant toutes les cartes en main pour te faire tes presets.
Bon courage
-
Bonjour, j'aurais une question pour le Staff de Recalbox, je la pose ici car je ne vais pas recréer un nouveau sujet.
Les Surcharges marchent parfaitement, mais il y a tellement de combinaisons à tester que c'est assez contraignant à la longue.
Devoir débrancher, installer ses Shaders et rebrancher sa clé USB 50 fois c'est chiant. Ca ne serais qu'un problème de save ça serais pas grave, vu qu'on pourrait les tester via Retroarch, mais en plus on ne peut pas les "Appliquer" ce n'est pas pris en compte !
J'aimerais savoir si les sauvegardes des Shaders ou au moins "l'application" de ceux-ci, seront fonctionnelles via le menu Retroarch lors d'une prochaine mise à jour ?
Amicalement -
Je vais être obligé de m'auto répondre je crois...
J'ai vu qu'il y avait une nouvelle version du crt-pi (ce n'est pas le crt-pi-nc)disponible dans Batocera, je l'ai trouvé sur le net et installé dans ma Recalbox. Il a une option de scanlines en plus, et l'effet de flou est gommé. Couplé avec le crt-caligari, c'est vraiment top ! -
shaders = "2"
shader0 = "/recalbox/share_init/shaders/shaders_glsl/crt/shaders/crt-caligari.glsl"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
float_framebuffer0 = "false"
shader1 = "/recalbox/share/system/shaderpresets/crt-pi-nd.glsl"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "false"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
parameters = "CURVATURE_X;CURVATURE_Y;MASK_BRIGHTNESS;SCAN_LINE_WEIGHT;SCANLINE_GAP_BRIGHTNESS;BLOOM_FACTOR;INPUT_GAMMA;OUTPUT_GAMMA"
CURVATURE_X = "0.00000"
CURVATURE_Y = "0.05000"
MASK_BRIGHTNESS = "1.25"
SCAN_LINE_WEIGHT = "6.00"
SCANLINE_GAP_BRIGHTNESS = "35"
BLOOM_FACTOR = "1.35"
INPUT_GAMMA = "2.40"
OUTPUT_GAMMA = "2.28" -
@Tamtam
Si je résume, dans ton fichier ".glslp" il y a:shaders = "2"
shader0 = "/recalbox/share_init/shaders/shaders_glsl/crt/shaders/crt-caligari.glsl"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
float_framebuffer0 = "false"
shader1 = "/recalbox/share/system/shaderpresets/crt-pi-nd.glsl"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "false"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"et dans ton fichier".glsl" dans les lignes #pragma parameter tu as mis ça:
CURVATURE_X = "0.00000"
CURVATURE_Y = "0.05000"
MASK_BRIGHTNESS = "1.25"
SCAN_LINE_WEIGHT = "6.00"
SCANLINE_GAP_BRIGHTNESS = "35"
BLOOM_FACTOR = "1.35"
INPUT_GAMMA = "2.40"
OUTPUT_GAMMA = "2.28"Plusieurs question:
ton fichier "crt-pi-nd.glsl", c'est celui là ?
Pour SCANLINE_GAP_BRIGHTNESS, tu est sur de la valeur de 35 ?