*.obj 文件中的法线贴图
Normal map in *.obj file
在 blender 中我创建了一个法线贴图,我将像 OBJ (Wawefront) 一样导出到 blender 并存储在 *.mtl 文件中,如 "map_Bump"。
map_Bump 总是一样的颠簸。 MTL 文件中的哪个参数定义了 THREE.JS 中的凹凸比例?
我的 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
目前不支持。但是,您可以从文件中删除凹凸贴图并在 Three.js.
中手动映射它
正在加载纹理。
var bmap = THREE.ImageUtils.loadTexture('bumpmap.jpg');
您将需要遍历您的模型并找到它 material。例如
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;
}
});
然后直接赋值给你需要的material。或者创建一个新的 Three JS 网格并将其分配到那里。请注意,如果 OBJ 包含多个网格,您将需要找到 'right' 一个。
mesh = new THREE.Mesh( geometry, material);
material.bumpMap = bmap;
material.bumpScale = 1;
在 blender 中我创建了一个法线贴图,我将像 OBJ (Wawefront) 一样导出到 blender 并存储在 *.mtl 文件中,如 "map_Bump"。
map_Bump 总是一样的颠簸。 MTL 文件中的哪个参数定义了 THREE.JS 中的凹凸比例?
我的 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
目前不支持。但是,您可以从文件中删除凹凸贴图并在 Three.js.
中手动映射它正在加载纹理。
var bmap = THREE.ImageUtils.loadTexture('bumpmap.jpg');
您将需要遍历您的模型并找到它 material。例如
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;
}
});
然后直接赋值给你需要的material。或者创建一个新的 Three JS 网格并将其分配到那里。请注意,如果 OBJ 包含多个网格,您将需要找到 'right' 一个。
mesh = new THREE.Mesh( geometry, material);
material.bumpMap = bmap;
material.bumpScale = 1;