在blender中我创建了一个法线贴图,我将像OBJ(Wawefront)一样导出到混合器中,并存储在* .mtl文件中,如" map_Bump"。
map_Bump总是有相同的bumpsacale。 MTL文件中的parramter定义了THREE.JS中的bumpscale?
我的MTL文件:
newmtl ship_white
Ns 0.000000
Ka 0.000000 0.000000 0.000000
Kd 0.656604 0.656604 0.656604
Ks 0.433962 0.433962 0.433962
Ni 1.000000
d 1.000000
illum 2
map_Kd 2t3l.png
map_Bump 2t3l_normal.jpg
答案 0 :(得分:3)
目前不支持此功能。但是,您可以从文件中删除凹凸贴图并在Three.js中手动映射。
加载纹理。
sudo npm link express
您需要遍历模型并找到它的材料。 e.g。
var bmap = THREE.ImageUtils.loadTexture('bumpmap.jpg');
然后直接指定您需要的材料。或者创建一个新的三个JS网格并在那里分配它。但是要注意,如果OBJ包含多个网格,则需要找到“正确”网格。
object.traverse( function( node ) {
if ( node instanceof THREE.Mesh ) {
// for smoothing
node.geometry.computeVertexNormals();
console.log(node);
}
if (node instanceof THREE.Mesh && node.material instanceof THREE.MeshPhongMaterial ) {
// console.log(node);
geometry = node.geometry;
material = node.material;
}
});