gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 00:41:34 26 4
gpt4 key购买 nike

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

enter image description here

这是我的渲染器设置:

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 贴图,这似乎是所选面的问题,因为它与奇怪阴影的确切形状和位置相匹配。

enter image description here

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

网格法线方向的另一个屏幕截图 enter link description here
(来源:front-a-little.de)

最佳答案

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

fixed version

新的导出器在保存屏幕中带有新的设置,我必须确保选中“ Material ”下的“UV”框才能通过 Three.JSONLoader 加载模型

关于javascript - Three.js - 网格表面的极端阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27860318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com