【发布时间】:2018-01-15 17:52:02
【问题描述】:
我有两个重叠的天空元素。第二个位于 z=-1000(相机不可见)。在这个设置中,如果我将第一个天空元素的不透明度设置为 0.5,我应该会看到第二个天空元素。
以下代码不起作用。 (需要完成这项工作。)
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,但结果相同。
DEMO:https://codesandbox.io/s/qx6zj247l6(涵盖这两种情况,请忽略所有反应和补间内容。)
PS:创建交叉淡入淡出+缩放场景过渡效果。
【问题讨论】: