1

Blender 导出的 UV 贴图纹理未在三个 JS 中显示

问候,2014 年 11 月 13 日

简而言之,我正在尝试使用下面的代码来帮助three.js从已成功加载的混合器导出文件中识别材料,而变形影响效果很好!但是,搅拌机内的 UV 贴图纹理没有显示,并且控制台没有抛出错误?我可以轻松地使用 imageutils 单独加载纹理,但 UV 映射当然会丢失!奇怪的是,当我单独加载 UV 图形时,我得到了象征 UV 图形的奇怪图案,但意义让我失望了?...我是 three.js 的新手,尝试了许多代码组合,如下面的最后一次尝试所示。任何想法如何尝试 three.js 来识别 UV 材料?

非常感谢,泰德

mesh = new THREE.Mesh( 
    geometry, 
    new THREE.MeshLambertMaterial({
        THREE.UVMapping(THREE.ImageUtils.loadTexture("clothtexturegreenuv.jpg"), 
        morphTargets: true 
    })
);
mesh.scale.set( 35, 35, 35 );
scene.add( mesh );
4

2 回答 2

0

尝试这个:

var mesh = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial({
    map: THREE.ImageUtils.loadTexture( "clothtexturegreenuv.jpg"), 
    morphTargets: true 
}); 

mesh.scale.set( 35, 35, 35 );     
scene.add( mesh );
于 2014-11-14T06:17:55.973 回答
0

它在示例中MeshFaceMaterial自动工作,当导出的 json 已经具有我认为的 UV 和纹理参考时,不需要 UVMapping 或 loadTexture 调用。从http://threejs.org/examples/webgl_loader_json_blender.html的示例:

var loader = new THREE.JSONLoader();
loader.load( 'models/animated/monster/monster.js', function ( geometry, materials ) {
    var faceMaterial = new THREE.MeshFaceMaterial( materials );
    //(...) that example uses morph anims too but I cut the extras (...) 
    morph = new THREE.MorphAnimMesh( geometry, faceMaterial );
    scene.add( morph );
}

我们还在手册中记录了 UVs + 不同地图的使用,它是相似的(但现在只在去年春天更新,而 threejs.org 示例是最新的):https ://forge.fi-ware.org/plugins/mediawiki/ wiki/fiware/index.php/3D-UI_- WebTundra -_User_and_Programmers_Guide#Exporting_3D_scenes_from_authoring_applications

于 2014-11-16T00:08:30.510 回答