Three.js - 网格面上的极端阴影

Three.js - Extreme shadow on face of mesh

我使用搅拌机创建了一个胸部模型,为它创建了一个手绘纹理,并在使用 Three.js 渲染的环境中设置了整个模型。然而,胸部正面有一个异常极端的阴影:

这是我的渲染器设置:

var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
return renderer;

这是造成此阴影的光源(在屏幕截图中,它是唯一的光源):

var envLight = new THREE.PointLight(color, 0.5, 320);
envLight.position.set(0, 80, zPos);
return envLight;

Material 设置:

var material = new THREE.MeshPhongMaterial();
//diffuse texture setup
material.map = THREE.ImageUtils.loadTexture(textureURL);
material.map.wrapS = material.map.wrapT = THREE.RepeatWrapping;
material.map.repeat.set(repeatX, repeatY);
// specular map setup
material.specularMap = THREE.ImageUtils.loadTexture(specularMapURL);
material.specularMap.wrapS = material.specularMap.wrapT = THREE.RepeatWrapping;
material.specularMap.repeat.set(repeatX, repeatY);
material.specular = that.specularLightingColor;
return material;

网格是使用此 material 以及包含从 Blender 导出的几何体和 UV 贴图的 JSON 数据创建的。我使用 THREE.JSONLoader 在运行时获取数据。 这是来自 Blender 的屏幕截图,显示网格和 UV 贴图展开,这似乎是所选面的问题,因为它与怪异阴影的确切形状和位置相匹配。

我试过使用 Object3D 的 castShadow/receiveShadow 属性禁用阴影,但这根本没有显示任何效果。

网格法线方向的另一张截图
(来源:front-a-little.de

我已经更新到最新的 three.js 版本 (r70) 并更新了完整的 re-written Blender Export 插件。 所描述的问题很可能是此导出器先前版本中的错误,使用新插件的导出模型不会显示奇怪的阴影。

新导出器在保存屏幕中带有新设置,我必须确保选中 "Materials" 下的 "UVs" 框才能通过 Three.JSONLoader[ 加载模型=11=]