Gigatron's Recent Forum Activity

  • ErekT I am not an expert of glsl , I think Mr rojohound can help better than me

    but the correct version of the Antialiasing glsl fx is like this.

    This was converted to C2 but really quickly .. you can integrate Boolean var for disable or enable fx;

    /////////////////////////////////////////////////////////
    // FXAA effect
    
    #ifdef GL_ES
    precision mediump float;
    #endif
    
    uniform mediump sampler2D samplerFront;
    varying vec2 vTex;
    uniform mediump float pixelWidth;
    uniform mediump float pixelHeight;
    vec2 iResolution = vec2( 1./pixelWidth, 1./pixelHeight);
     
    
    //uniform lowp sampler2D tex;
    //uniform mediump vec2 fragCoord;
    uniform mediump float WindowWidth;
    uniform mediump float WindowHeight;
    
    #ifndef FXAA_REDUCE_MIN
        #define FXAA_REDUCE_MIN   (1.0/ 128.0)
    #endif
    #ifndef FXAA_REDUCE_MUL
        #define FXAA_REDUCE_MUL   (1.0 / 8.0)
    #endif
    #ifndef FXAA_SPAN_MAX
        #define FXAA_SPAN_MAX     8.0
    #endif
    
    vec4 fxaa_2_0(sampler2D tex, vec2 fragCoord, vec2 resolution,
                vec2 v_rgbNW, vec2 v_rgbNE, 
                vec2 v_rgbSW, vec2 v_rgbSE, 
                vec2 v_rgbM) {
        vec4 color;
        mediump vec2 inverseVP = vec2(1.0 / resolution.x, 1.0 / resolution.y);
        vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;
        vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;
        vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;
        vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;
        vec4 texColor = texture2D(tex, v_rgbM);
        vec3 rgbM  = texColor.xyz;
        vec3 luma = vec3(0.299, 0.587, 0.114);
        float lumaNW = dot(rgbNW, luma);
        float lumaNE = dot(rgbNE, luma);
        float lumaSW = dot(rgbSW, luma);
        float lumaSE = dot(rgbSE, luma);
        float lumaM  = dot(rgbM,  luma);
        float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
        float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
        
        mediump vec2 dir;
        dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
        dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));
        
        float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *
                              (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
        
        float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);
        dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),
                  max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),
                  dir * rcpDirMin)) * inverseVP;
        
        vec3 rgbA = 0.5 * (
            texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +
            texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);
        vec3 rgbB = rgbA * 0.5 + 0.25 * (
            texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +
            texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);
    
        float lumaB = dot(rgbB, luma);
        if ((lumaB < lumaMin) || (lumaB > lumaMax))
            color = vec4(rgbA, texColor.a);
        else
            color = vec4(rgbB, texColor.a);
        return color;
    }
    
    //To save 9 dependent texture reads, you can compute
    //these in the vertex shader and use the optimized
    //frag.glsl function in your frag shader. 
    
    //This is best suited for mobile devices, like iOS.
    
    void texcoords_3_1(vec2 fragCoord, vec2 resolution,
    			out vec2 v_rgbNW, out vec2 v_rgbNE,
    			out vec2 v_rgbSW, out vec2 v_rgbSE,
    			out vec2 v_rgbM) {
    	vec2 inverseVP = 1.0 / resolution.xy;
    	v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;
    	v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;
    	v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;
    	v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;
    	v_rgbM = vec2(fragCoord * inverseVP);
    }
    
    vec4 apply_1_2(sampler2D tex, vec2 fragCoord, vec2 resolution) {
    	mediump vec2 v_rgbNW;
    	mediump vec2 v_rgbNE;
    	mediump vec2 v_rgbSW;
    	mediump vec2 v_rgbSE;
    	mediump vec2 v_rgbM;
    
    	//compute the texture coords
    	texcoords_3_1(fragCoord, resolution, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);
    	
    	//compute FXAA
    	return fxaa_2_0(tex, fragCoord, resolution, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);
    }
    
    void main() {
      vec2 uv = 1.*vTex;
     // uv.y = 1.0 - uv.y;
    
      //can also use gl_FragCoord.xy
      vec2 fragCoord = uv * iResolution; 
    
      vec4 color;
      // if (enabled) {
           color = apply_1_2(samplerFront, fragCoord, iResolution);
      // } else {
        //  color = texture2D(samplerFront, uv);
      // }
    
      gl_FragColor = color;
    }
    [/code:17ngs3nv] 
    
    .xml file is not accepting int or boolean variable; just percent or float ;
    So look the original source and converted source ..and meditate or play with online editor like glslsandbox... 
    good luck
    when you want learn something .. 
    allow time minimum 4   hour/day during 30day you will become beginner
    allow time minimum 8   hour/day during 60day you will become confirmed
    allow time minimum 12 hour/day during 120day you will become expert
    allow time minimum 16 hour/day during 365day you will become master
    I am BEGINNER ;
  • Gigatron, I works really good, but my 3d cube is a bit dark, and it has black area orund himself. Can I fix it somehow?

    download it again , i have added global intensity and background r/g/b component ;

    tell me if it's ok;

  • Gigatron This is awesome man!

    Suggestions just from a quick look at it:

    1) More ability to customize controls maybe? Maybe not that important of what key does what but more like, changing the acceleration speed or turn speed, so maybe we can make the car "drift"

    2) Is there some good way or size you suggest for adding or editing images to work with it?

    3) More settings like collision effect on slow down, off the road effect, etc

    Awesome job so far though!

    1 :The control keys are: ASDW or Arrows keys;

    Drift effect can be done with adding car sprite this mean you must draw all drift sprite movements and i will try to implement it.

    2: you can make your own sprites or background with changing sprites and background.png by respecting all size;

    all sprites were defined x,y to x+width,y+height ..

    3. Meditating ......

  • Some modification on Out-run plugin.. to prevent segments errors ..off road car bounce factor added

    • return end-segment height : this mean when you make road you must reconnect Start segments with end segment by other word you must have 0 or -1 with return end segment height variable.

    like this:

    Otherwise you will have this ;

    If you use hills on road draw you must use downhill, or downhill left/right to connect correctly with less height.

    Try .capx to test connection value.... hope this explanation was clear for you.

    http://gigatron3k.free.fr/html5/C2/plugin/orun.rar

    http://gigatron3k.free.fr/html5/C2/plugin/outrun/

    PS/ i am waiting your suggestions.. gfx sprites .. or game you made with this plugin.

  • i have JUST a HUGE problem your plugin is making me mad, each time i try to enter a value in my events with the number 2, 22, 20 etc, IT select the NAME of your plugin as a value, and thats is really really boring to change everytime.

    please CORRECT correct that problem.

    It's not a problem , it's just auto completion system. For example if you type 'c' you got CanvasSnapshot.

    all autocompletion system on the editors working so.

    if you want type 2 ; then type 2+space+enter.

    if 22 continue type ..22+enter etc..

    to change sprites see .capx example and edit the stars.png files like st1.png with color; st2.png with another color etc...

  • >

    > Ok i will count the numbers of interested C2 users ... if (c2usernumbers>10) gtr_start.devplugin(); // but slowly

  • is this plugin working under Android?

    This plugin works under all platforms supporting web-apps in respective browsers.

  • In the same idea.. of out run here is another example from Jack Gordon ..

    Must i waste my spare time to do a plugin with this ?

    Fast conversion with bug !!!

    ctrl: Space =jump; arrows= l/r

    http://gigatron3k.free.fr/html5/C2/plugin/nebulus/

  • Great work, as always, Gigatron.

    Have you any idea why line 70 of the runtime.js would throw a security error in FireFox 42.0?

    If I REM the line

    storage: window.localStorage || {}[/code:3ri0dkiv]
    
    then it previews OK without the security error.
    

    Strange ...no error here ..

    Have you get this error with Out-Run plugin ?

    This plugin load 2 files backgound and sprites from local storage ..

  • All segment sprites parameters were added..

    http://gigatron3k.free.fr/html5/C2/plugin/orun.rar

    So last night i have add finish track.. try the example in .capx file.

    -- this plugin is finished now .. waiting comments and wishlist ..

    I'm very affected by what happened in Paris .. This plugin and all my other works Will Slowly progress ..

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Oh man. Works a treat.

    Ridiculously easy to create your own track.

    This is amazing, Gigatron.

    Thank you Zenox98 for those kind words.

  • Try now to make road track yourself ... and tell me if all are ok ..

    Draw track on your mind ..

    thanks to all

    http://gigatron3k.free.fr/html5/C2/plugin/outrun/

    http://gigatron3k.free.fr/html5/C2/plugin/orun.rar

Gigatron's avatar

Gigatron

Member since 8 Jan, 2012

Twitter
Gigatron has 33 followers

Connect with Gigatron

Trophy Case

  • 12-Year Club
  • x2
    Popular Game One of your games has over 1,000 players
  • Famous Game One of your games has over 10,000 players
  • x3
    Coach One of your tutorials has over 1,000 readers
  • Email Verified

Progress

16/44
How to earn trophies