Я создаю сферу, которая отбрасывает и получает тени с MeshToonMaterial
, но это дает мне нерегулярную тень в самой темной части.
Сфера с нерегулярной тенью:
Пристальный взгляд на сферу:
Свет:
light = new THREE.PointLight(0xffffff, 0.8, 18);
light.position.set(-3,6,-3);
light.castShadow = true;
light.shadow.camera.near = 0.1;
light.shadow.camera.far = 25;
light.shadowBias = 0.0015;
scene.add(light);
Сфера:
mesh = new THREE.Mesh
(
new THREE.SphereBufferGeometry( 1, 32, 16 ),
new THREE.MeshToonMaterial({color:0xff4444})
);
mesh.position.y += 1;
mesh.receiveShadow = true;
mesh.castShadow = true;
mesh.position.set(-2.5, 3/2, 2.5);
scene.add(mesh);
Рендерер:
renderer = new THREE.WebGLRenderer();
renderer.setSize(800,400);
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
Я пробовал с другими моделями и типами теневых карт с похожими результатами.
Если я установил:
mesh.castShadow = false;
Тогда я получу:
Это стиль, который я ищу, но он мне также нужен для отбрасывания теней.
Я бы хотел не использовать дополнительную сферу для отбрасывания тени..
Как мне этого добиться?