mirror of
				https://github.com/Swordfish90/cool-retro-term.git
				synced 2025-11-04 00:52:11 +00:00 
			
		
		
		
	Improvement: redesigned horizontal distortion effect.
This commit is contained in:
		@@ -110,8 +110,10 @@ ShaderEffect {
 | 
				
			|||||||
            varying lowp float brightness;
 | 
					            varying lowp float brightness;
 | 
				
			||||||
            uniform lowp float brightness_flickering;" : "") +
 | 
					            uniform lowp float brightness_flickering;" : "") +
 | 
				
			||||||
        (!fallBack && horizontal_sincronization !== 0.0 ?"
 | 
					        (!fallBack && horizontal_sincronization !== 0.0 ?"
 | 
				
			||||||
            varying lowp float horizontal_distortion;
 | 
					            uniform lowp float horizontal_sincronization;
 | 
				
			||||||
            uniform lowp float horizontal_sincronization;" : "") +
 | 
					            varying lowp float distortionScale;
 | 
				
			||||||
 | 
					            varying lowp float distortionFreq;" : "") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        "
 | 
					        "
 | 
				
			||||||
        void main() {
 | 
					        void main() {
 | 
				
			||||||
            qt_TexCoord0.x = (qt_MultiTexCoord0.x - disp_left) / (1.0 - disp_left - disp_right);
 | 
					            qt_TexCoord0.x = (qt_MultiTexCoord0.x - disp_left) / (1.0 - disp_left - disp_right);
 | 
				
			||||||
@@ -126,9 +128,9 @@ ShaderEffect {
 | 
				
			|||||||
            : "") +
 | 
					            : "") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            (!fallBack && horizontal_sincronization !== 0.0 ? "
 | 
					            (!fallBack && horizontal_sincronization !== 0.0 ? "
 | 
				
			||||||
                float randval = 1.5 * initialNoiseTexel.r;
 | 
					                float randval = horizontal_sincronization - initialNoiseTexel.r;
 | 
				
			||||||
                float negsinc = 1.0 - 0.6 * horizontal_sincronization;" + "
 | 
					                distortionScale = step(0.0, randval) * randval * horizontal_sincronization;
 | 
				
			||||||
                horizontal_distortion = step(negsinc, randval) * (randval - negsinc) * 0.3*horizontal_sincronization;"
 | 
					                distortionFreq = mix(4.0, 40.0, initialNoiseTexel.g);"
 | 
				
			||||||
            : "") +
 | 
					            : "") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "gl_Position = qt_Matrix * qt_Vertex;
 | 
					            "gl_Position = qt_Matrix * qt_Vertex;
 | 
				
			||||||
@@ -170,9 +172,11 @@ ShaderEffect {
 | 
				
			|||||||
        (fallBack && brightness_flickering !== 0.0 ?"
 | 
					        (fallBack && brightness_flickering !== 0.0 ?"
 | 
				
			||||||
            uniform lowp float brightness_flickering;" : "") +
 | 
					            uniform lowp float brightness_flickering;" : "") +
 | 
				
			||||||
        (!fallBack && brightness_flickering !== 0 ? "
 | 
					        (!fallBack && brightness_flickering !== 0 ? "
 | 
				
			||||||
            varying lowp float brightness;" : "") +
 | 
					            varying lowp float brightness;"
 | 
				
			||||||
 | 
					        : "") +
 | 
				
			||||||
        (!fallBack && horizontal_sincronization !== 0 ? "
 | 
					        (!fallBack && horizontal_sincronization !== 0 ? "
 | 
				
			||||||
            varying lowp float horizontal_distortion;" : "") +
 | 
					            varying lowp float distortionScale;
 | 
				
			||||||
 | 
					            varying lowp float distortionFreq;" : "") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        (glowing_line_strength !== 0 ? "
 | 
					        (glowing_line_strength !== 0 ? "
 | 
				
			||||||
            float randomPass(vec2 coords){
 | 
					            float randomPass(vec2 coords){
 | 
				
			||||||
@@ -187,18 +191,18 @@ ShaderEffect {
 | 
				
			|||||||
            "vec2 cc = vec2(0.5) - qt_TexCoord0;" +
 | 
					            "vec2 cc = vec2(0.5) - qt_TexCoord0;" +
 | 
				
			||||||
            "float distance = length(cc);" +
 | 
					            "float distance = length(cc);" +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //FallBack if there are problem
 | 
					            //FallBack if there are problems
 | 
				
			||||||
            (fallBack && (brightness_flickering || horizontal_sincronization) ? "
 | 
					            (fallBack && (brightness_flickering !== 0.0 || horizontal_sincronization !== 0.0) ?
 | 
				
			||||||
                vec2 randCoords = vec2(fract(time/(1024.0*2.0)), fract(time/(1024.0*1024.0)));" : "") +
 | 
					                "vec2 initialCoords = vec2(fract(time/(1024.0*2.0)), fract(time/(1024.0*1024.0)));
 | 
				
			||||||
 | 
					                 vec4 initialNoiseTexel = texture2D(noiseSource, initialCoords);"
 | 
				
			||||||
 | 
					            : "") +
 | 
				
			||||||
            (fallBack && brightness_flickering !== 0.0 ? "
 | 
					            (fallBack && brightness_flickering !== 0.0 ? "
 | 
				
			||||||
                float brightness = 1.0 + (texture2D(noiseSource, randCoords).g - 0.5) * brightness_flickering;"
 | 
					                float brightness = 1.0 + (initialNoiseTexel.g - 0.5) * brightness_flickering;"
 | 
				
			||||||
            :   "") +
 | 
					            : "") +
 | 
				
			||||||
 | 
					 | 
				
			||||||
            (fallBack && horizontal_sincronization !== 0.0 ? "
 | 
					            (fallBack && horizontal_sincronization !== 0.0 ? "
 | 
				
			||||||
                float randval = 1.5 * texture2D(noiseSource,(vec2(1.0) - randCoords) * 0.5).r;
 | 
					                float randval = horizontal_sincronization - initialNoiseTexel.r;
 | 
				
			||||||
                float negsinc = 1.0 - 0.6 * horizontal_sincronization;" + "
 | 
					                float distortionScale = step(0.0, randval) * randval * horizontal_sincronization;
 | 
				
			||||||
                float horizontal_distortion = step(negsinc, randval) * (randval - negsinc) * 0.3*horizontal_sincronization;"
 | 
					                float distortionFreq = mix(4.0, 40.0, initialNoiseTexel.g);"
 | 
				
			||||||
            : "") +
 | 
					            : "") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            (noise_strength ? "
 | 
					            (noise_strength ? "
 | 
				
			||||||
@@ -211,11 +215,8 @@ ShaderEffect {
 | 
				
			|||||||
                vec2 coords = qt_TexCoord0;") +
 | 
					                vec2 coords = qt_TexCoord0;") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            (horizontal_sincronization !== 0 ? "
 | 
					            (horizontal_sincronization !== 0 ? "
 | 
				
			||||||
                float h_distortion = 0.5 * sin(time*0.001 + coords.y*10.0*fract(time/10.0));
 | 
					                float dst = sin((coords.y + time * 0.001) * distortionFreq);
 | 
				
			||||||
                h_distortion += 0.5 * cos(time*0.04 + 0.03 + coords.y*50.0*fract(time/10.0 + 0.4));
 | 
					                coords.x += dst * distortionScale;"
 | 
				
			||||||
                coords.x = coords.x + h_distortion * horizontal_distortion;" +
 | 
					 | 
				
			||||||
                (noise_strength ? "
 | 
					 | 
				
			||||||
                    noise += horizontal_distortion;" : "")
 | 
					 | 
				
			||||||
            : "") +
 | 
					            : "") +
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            (jitter !== 0 || noise_strength !== 0 ?
 | 
					            (jitter !== 0 || noise_strength !== 0 ?
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user