在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问题。
答案 0 :(得分:0)
我在装载机中添加了一个多维数据集,并为其提供了材料,该多维数据集可以正常工作..因此,这意味着您的罐头网格没有为其分配适当的UV坐标。.也许它是在您的创作中使用自动圆柱映射不输出UV的软件?您在编写什么软件?
scene.add(new THREE.Mesh(new THREE.BoxGeometry(1,1,1),node.material));