Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js-网格面上的极端阴影_Javascript_Three.js_Blender - Fatal编程技术网

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

Javascript Three.js-网格面上的极端阴影,javascript,three.js,blender,Javascript,Three.js,Blender,我已经使用blender创建了一个胸部模型,为它创建了一个手绘纹理,并在一个使用Three.js渲染的环境中设置了整个场景。然而,胸部正面有一个异常极端的阴影: 以下是我的渲染器设置: var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); return re

我已经使用blender创建了一个胸部模型,为它创建了一个手绘纹理,并在一个使用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;
材料设置:

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;
网格是使用此材质以及包含从Blender导出的几何体和UV贴图的JSON数据创建的。我使用
THREE.JSONLoader
在运行时获取数据。 这是blender的一个屏幕截图,显示了网格和UV贴图已展开,这似乎是所选人脸的问题,因为它与奇怪阴影的确切形状和位置相匹配

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

网格法线方向的另一个屏幕截图

(来源:)

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


新的导出器在保存屏幕中有新的设置,我必须确保选中“材质”下的“UVs”框,以便通过三次加载模型。JSONLoader

从blender中的图像判断,有问题的脸有一个错误的法线。截图中选择了可疑的脸。我检查的第一件事是面部是否翻转并执行“外部重新计算”。在平面3D视图中,它不比周围的其他面暗,因此我猜该面的方向是正确的。您可以验证您的答案