Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 1 of 1

Thread: Fresnel without cubemapping

  1. #1
    Junior Member Newbie
    Join Date
    Mar 2018
    Posts
    21

    Fresnel without cubemapping

    Hi,

    Now I working on transparency and refraction in Opengl and GLSL. How to add fresnel calculation in GLSL code without using cubemapping.

    I have used the method as per the below tutorial,

    https://en.wikibooks.org/wiki/GLSL_P...at_Silhouettes

    GLSL

    Code glsl:
    vec3 lightcalc(lightdata mlight)
    {
        vec3 lightDir; vec3 total;
        float attenuation; 
        float specPhong,specBlinn,diff;
        vec3 diffuse,specular;
        vec3 norm = normalize(Normal);
        vec3 view_pos = vec3(0.0,0.0,10.0);
     
     
        lightDir = normalize(mlight.position.xyz - FragPos);
     
     
    /************** DIFFUSE EFFECT *************/
     
     
        diff = max(dot(norm, lightDir), 0.0);
     
        diffuse = diff * diffuse_color * mlight.color.xyz;
     
     
    /************** SPECULAR EFFECT *************/
     
     
        vec3 viewDir = normalize(viewPos - FragPos);
        vec3 reflectDir = reflect(-lightDir, norm);  
        vec3 halfwayDirection = normalize(lightDir + viewDir); 
     
        float w = pow(1.0 - max(0.0, dot(halfwayDirection, norm)), 5.0); 
        //float spec = pow(max(dot(viewDir, halfwayDirection), 0.0), 511.0);
     
            specBlinn = pow(max(dot(norm, halfwayDirection), 0.0), shine);
     
        specPhong = pow(max(dot(viewDir, reflectDir), 0.0), shine);
     
        specular = mix(specular_color,vec3(1.0),w) * specBlinn * mlight.color.xyz;
     
           total = ambient + diffuse + specular;
    }
     
    void main()
    {
     
          vec3 result;
          result = lightcalc(light[0]);
          FragColor = vec4(result,1.0);
     
    }

    But it does not give the result what i expect. Any one have any idea to render transparent object with fresnel? I want to render it as the below image.

    Thanks
    Attached Thumbnails Attached Thumbnails Click image for larger version. 

Name:	fresnel.jpg 
Views:	12 
Size:	3.8 KB 
ID:	2780  
    Last edited by Dark Photon; 06-06-2018 at 05:58 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •