У меня есть два перекрывающихся элемента a-sky. Второй расположен на z = -1000 (не виден камере). В этой настройке, если я установил непрозрачность первого элемента a-sky на 0,5, я должен увидеть второй элемент a-sky.
Следующий код не работает. (Необходимо, чтобы это сработало.)
skyEl.getObject3D("mesh").material= new THREE.MeshBasicMaterial({
map: new THREE.TextureLoader().load("image url"),
transparent: true,
opacity: 0.5
});
Но этот метод работает.
skyEl.setAttribute('src','image url');
skyEl.getObject3D("mesh").material.transparent = true;
skyEl.getObject3D("mesh").material.opacity= 0.5;
В моем проекте я не могу установить атрибут src, потому что текстуры уже загружены, и я могу создавать материал только из предварительно загруженной текстуры. Мне нужно знать, что не так с первым методом и как это исправить. Есть ли другой параметр, который мне нужно установить?
Также пробовал использовать a-sphere
вместо a-sky
, но результат тот же.
ДЕМО: https://codesandbox.io/s/qx6zj247l6 (охватывает оба случая и, пожалуйста, игнорируйте все реакции и прочее для подростков.)
PS: Создание эффекта перехода сцены кроссфейд + масштабирование.