【发布时间】:2021-11-07 04:15:28
【问题描述】:
我最近将 Three.js 从 r131 升级到 r132,我收到以下错误:
Program Info Log: Fragment shader is not compiled.
FRAGMENT
ERROR: 0:459: 'getDirectionalDirectLightIrradiance' : no matching overloaded function found
ERROR: 0:479: 'getPointDirectLightIrradiance' : no matching overloaded function found
我的片段着色器的相关部分如下:
IncidentLight directLight;
// Directional Light
#if NUM_DIR_LIGHTS > 0
DirectionalLight directionalLight;
for (int i = 0; i < NUM_DIR_LIGHTS; i++) {
directionalLight = directionalLights[i];
getDirectionalDirectLightIrradiance(directionalLight, geometry, directLight);
#ifdef USE_SHADOWMAP
directLight.color *= all(bvec2(directionalLight.shadow, directLight.visible)) ? getShadow(directionalShadowMap[i], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[i]) : 1.0;
#endif
RE_Direct(directLight, geometry, material, reflectedLight);
}
#endif
// Point Light
#if (NUM_POINT_LIGHTS > 0)
PointLight pointLight;
for (int i = 0; i < NUM_POINT_LIGHTS; i++) {
pointLight = pointLights[i];
getPointDirectLightIrradiance(pointLight, geometry, directLight);
#ifdef USE_SHADOWMAP
directLight.color *= all(bvec2(pointLight.shadow, directLight.visible)) ? getPointShadow(pointShadowMap[i], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[i]) : 1.0;
#endif
RE_Direct(directLight, geometry, material, reflectedLight);
}
#endif
【问题讨论】: