在我的ThreeJS项目中,我想用另一个纹理替换一个纹理,但是一旦我这样做,UV就完全失效了。您可以看到我在下面的代码中如何实现它:
您可以在此处查看全部操作演示:www.dev.openstring-studios.com,但是您可能会发现这个示例存在多个问题。
var texture = new THREE.TextureLoader().load( "T_Test_1k_BaseColor.jpg" );
function loadDraco6141012( src ) {
var loader = new THREE.GLTFLoader().setPath('');
loader.setDRACOLoader( new THREE.DRACOLoader() );
loader.load( src, function( gltf ) {
gltf.scene.traverse( function ( child ) {
if ( child.isMesh ) {
child.material.envMap = envMap;
child.position.y -= 0.6
mesh = child;
// This needs to trigger only after the texture has fully loaded
setTimeout(function(){
mesh.material.map = texture;
}, 5000);
// either way the uv doesn't seem to be correct anymore, what happened..?
}
} );
scene.add( gltf.scene );
}
}
您可以在此处查看全部操作演示:www.dev.openstring-studios.com,但是您可能会发现这个示例存在多个问题。
- 正如之前所述,加载时间仍然相当缓慢,如何才能提高性能?是否使用像MySQL这样的数据库可以改善性能?
- 为什么UV(贴图坐标)出现了问题,看起来很糟糕,可能有什么问题?而且,为了明确起见,绿色纹理贴图与蓝色纹理贴图相同,它们只是颜色不同。