我已经创建了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