Я создал модель сундука с использованием блендера, создал для него текстуру с ручным рисунком и установил всю вещь в среде, созданной с помощью Three.js. Груди передняя сторона, однако, имеет необычно экстремальную тень:Three.js - Экстремальная тень на поверхности сетки
Вот мои настройки Renderer:
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;
Сетка создается с использованием этого материала вместе с данными JSON, содержащими геометрию и UV-отображение, экспортируемое из Blender. Я использую THREE.JSONLoader
для получения данных во время выполнения. Вот скриншот из блендера, показывающий развернутую сетку и UV-карту, кажется, проблема с выбранным лицом, поскольку она соответствует точной форме и расположению странной тени.
Я попытался отключить тень с Object3D в CastShadow/receiveShadow атрибуты, но это не показывает никакого эффекта вообще.
Другой скриншот нормалей ориентации сетки enter link description here http://front-a-little.de/pics/chest_shadow_issue_blender_normals.png
Судя по образу этого в блендере, лицо, о котором идет речь, имеет неправильный нормальный характер. –
Снимок экрана был сделан с подозрительным лицом. Сначала я проверил, было ли лицо перевернуто и выполнено «пересчет снаружи». В простом 3D-изображении это не темнее, чем остальные лица вокруг него, поэтому я думаю, что ориентация лица правильная. –