加载纹理前three.js对象为黑色-我可以更改此行为吗?

加载纹理前three.js对象为黑色-我可以更改此行为吗?,three.js,textures,Three.js,Textures,我对three.js非常陌生。在我的项目中,可以通过一系列具有对象横截面图像的平面移动。问题是材质不会立即加载,上下移动过快会导致某些平面显示为黑色。我需要改变这种行为。有什么办法可以做到这一点吗 更改某些属性,使平面透明-但加载时图像仍应不透明 或者在加载纹理之前根本不显示/渲染平面 我一点也不确定自己是否走上了正确的道路,我希望更有经验的人能提出具体的解决方案 谢谢 不确定您是否已经清除了此项,但我制作了一个方便的小功能,通过修改不透明度设置来处理此问题,其基本功能是: function l

我对
three.js非常陌生。在我的项目中,可以通过一系列具有对象横截面图像的平面移动。问题是材质不会立即加载,上下移动过快会导致某些平面显示为黑色。我需要改变这种行为。有什么办法可以做到这一点吗

  • 更改某些属性,使平面透明-但加载时图像仍应不透明
  • 或者在加载纹理之前根本不显示/渲染平面 我一点也不确定自己是否走上了正确的道路,我希望更有经验的人能提出具体的解决方案


    谢谢

    不确定您是否已经清除了此项,但我制作了一个方便的小功能,通过修改不透明度设置来处理此问题,其基本功能是:

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

    如果使用THREE.ImageUtils.loadTexture加载纹理,则可以将回调作为第三个参数发送,例如,可以在其中将具有此纹理的对象添加到场景中。