【发布时间】:2019-03-12 12:16:10
【问题描述】:
在Three.js ColladaLoader example 之后,我导出了一个 Cinema4D 汽水 可以将 (consisting of 4 meshes) 建模为 .dae 文件。其中一个网格,罐身,我想添加纹理。
在 Cinema4D 中,我已经根据网格(球形)的 UV 贴图制作了 a texture。但是,当我尝试将纹理应用到网格时,它只会显示纯白色填充。我在this Codepen 中添加了整个代码。相关代码如下,为简洁而编辑:
loader = new THREE.ColladaLoader();
loader.load('can.dae', function (collada) {
can = collada.scene;
can.traverse(function (node) {
var textureLoader
if (node.name == 'wrapper') {
textureLoader = new THREE.TextureLoader();
textureLoader.load('wrapper.png', function (texture) {
node.material = new THREE.MeshBasicMaterial({
map: texture
});
node.material.needsUpdate = true;
});
}
});
scene.add(can);
});
结果说明。如您所见,罐头的包装不是提供的红色wrapper.png,而是纯白色填充。我尝试过映射和包装模式,但无济于事。非常感谢任何帮助!
仅供参考:我已经排除了 CORS 问题。
【问题讨论】:
-
您是否完成了 console.logs 以确保您的代码被调用?没有例子很难调试这样的东西..
-
在加载对象之前尝试加载纹理然后映射它
-
你能发布资产+纹理,我们可以看看吗?
-
NVM 看到了你的 codepen。发现我认为的问题,并在下面回答..
标签: javascript three.js collada