在纹理加载之前,three.js对象是黑色的 - 我可以改变这种行为吗?

时间:2013-07-11 17:13:36

标签: three.js textures

我对three.js很新。在我的项目中,您可以移动一系列具有对象横截面图像的平面。问题是材料不会立即加载并且上下移动太快会导致某些平面显示为黑色。我需要改变这种行为。有没有办法

  1. 更改某些属性,使平面透明 - 但加载
  2. 时图像仍应是不透明的
  3. 或者在加载纹理之前根本不显示/渲染平面?
  4. 我不确定自己是否走在正确的轨道上,我希望有经验的人可以提出具体的解决方案。

    谢谢!

1 个答案:

答案 0 :(得分:6)

不确定你是否已经清除了这一点,但是我通过修改不透明度设置做了一个方便的小功能来处理这个问题,其基本原理是:

function loadTexture( path ){

    var mat = new THREE.MeshBasicMaterial({
        map: new THREE.ImageUtils.loadTexture( path, null, function() {
            mat.opacity = 1;
        } ),
        opacity: 0
    });

    return mat;
}