Я реализую приложение Away3D 4.x, где у меня есть некоторые сетки, которые должны отбрасывать тени. Я настраиваю DirectionalLight и FilteredShadowMapMethod, а затем применяю метод к материалам. Однако, как вы можете видеть на скриншоте, свет, как будто игнорирует объекты, близкие к земле (их Y-положение мало) и только отбрасывает тени для объектов, которые находятся выше определенной координаты Y. Вы можете увидеть это красиво на кирпичах справа. Away3D - тени от DirectionalLight отключены
Я не понимаю, что я делаю неправильно, может ли кто-то помочь? Это основная часть моего кода:
light1 = new DirectionalLight(0, -3, -5);
light1.ambient = 0.5;
light1.diffuse = 1.0;
light1.specular = 1.0;
lightPicker = new StaticLightPicker([light1]);
this.scene.addChild(light1);
shadowMapMethod = new FilteredShadowMapMethod(light1);
groundCloseMaterial = new TextureMaterial(Cast.bitmapTexture(GroundDiffuseClose));
groundCloseMaterial.lightPicker = lightPicker;
groundCloseMaterial.specular = 0;
groundCloseMaterial.ambient = 1;
groundCloseMaterial.shadowMethod = shadowMapMethod;
groundCloseMaterial.repeat = true;
groundCloseMaterial.mipmap = false;
groundClose = new Mesh(new PlaneGeometry(MAX_WORLD_X*2, MAX_WORLD_Z*2), groundCloseMaterial);
groundClose.geometry.scaleUV(20, 20);
groundClose.y = 0.1;
//-- create bricks
greyBrickMaterial = new TextureMaterial(Cast.bitmapTexture(BrickDiffuse));
greyBrickMaterial.specularMap = Cast.bitmapTexture(BrickSpecular);
greyBrickMaterial.normalMap = Cast.bitmapTexture(BrickNormals);
greyBrickMaterial.lightPicker = lightPicker;
greyBrickMaterial.mipmap = false;
greyBrickMaterial.specular = 1;
greyBrickMaterial.ambient = 1;
greyBrickMaterial.shadowMethod = shadowMapMethod;
Кирпичи создаются как кубики с кирпичным материалом. Аналогично, некоторые SphereMeshes имеют свой собственный материал, который создается так же, как greyBrickMaterial, летает и один огромный CubeMesh на расстоянии.
Обратите внимание также на странный световой эффект на большой коричневый куб - такое освещение просто не имеет смысла!