Три.тени js не работают должным образом
Я пытался узнать о тенях через три.js и я нашли Этот хороший пример в jsfiddle. Однако я не могу понять, почему, когда я понижаю y света до 65, то есть:
light.position.set( 20, 65, 0 );
Тень полностью исчезает.
Между тем, все, что выше 70, совершенно нормально, и тень отбрасывается. Как всегда, я, вероятно, упускаю что-то очевидное, но я действительно не вижу, что может помешать свету создать эту тень.2 ответа:
Вы можете попробовать:
light.shadowCameraVisible = true;
Чтобы увидеть положение и направление света на экране, это поможет вам понять, что меняется.
Надеюсь, это поможет :)
Это происходит потому, что тени будут отбрасываться только на объекты внутри фрустрации
light.shadowCamera
; в этом случае значение по умолчаниюlight.shadowCameraNear
, по-видимому, установлено на50
, поэтому фрустрация начинается слишком далеко от источника света, и когда светposition.y
находится в65
, полоса не включается. Когда светposition.y
равен70
, ближайший край фрустрацииshadowCamera
перемещается вверх, чтобы включить полосу, и тень отбрасывается правильно.Вы можете исправить это, установив
light.shadowCameraNear
на меньшее число. В этой скрипке раскомментируйте строку:И тень появится независимо от того, как низко вы переместите свет.light.shadowCameraNear = 1;