如何在我的着色器中修复无法识别的OpenGL版本?

时间:2018-12-18 12:56:52

标签: glsl shader

我已经创建了brdf文件,但是随后尝试在BRDF Explorer中打开它 在brdf.exe中,出现以下消息。

  

BRDF版本1.0.0   打开./probes/beach.penv   无法识别的OpenGL版本

我的代码有一些问题,但是在团队stackoverflow的帮助下,我已修复。 但是仍然存在一个问题。 谁能建议如何解决这个问题?

这是我的代码

分析

::begin parameters

float baseColor 0.001 .2 .1

float m 0.001 0.1 1.0

::end parameters

::begin shader

const float PI = 3.14;

    float Fresnel(float baseColor, float l, float h)
    {
        return baseColor + ( 1 - baseColor ) * pow( 1 - (h), 5);
    }

    float ggx_visib(float dotNV, float m2) 
    { 
        return 1.0/(dotNV*(1.0-m2)+m2); 
    }

    vec3 BRDF( vec3 N, vec3 V, vec3 L, float m, float baseColor)
    {
        vec3 H = normalize(V+L);

        float dotNL = clamp(dot(N,L), 0.0, 1.0);
        float dotLH = clamp(dot(L,H), 0.0, 1.0);
        float dotNH = clamp(dot(N,H), 0.0, 1.0);

        float DotNH2 = dotNH * dotNH;
        float m2 = m * m;
        float D =  m2 / (PI * pow(dotNH * dotNH * (m2 - 1) + 1, 2.0));


        float F = Fresnel(baseColor, dotNH);

        float g1o =ggx_visib(m, dotNH);
        float g1o =ggx_visib(m, dotNV);
        float G = g1i * g1o;



    D * G * F * (1.0 / (4.0 * dotNL * dotNH));


    }
::end shader

0 个答案:

没有答案