Three.js 的导出 Blender 模型中的材料不起作用
Posted
技术标签:
【中文标题】Three.js 的导出 Blender 模型中的材料不起作用【英文标题】:Materials in exported Blender model for Three.js not working 【发布时间】:2013-01-21 20:08:18 【问题描述】:我正在尝试使用 Blender 创建的模型和 Three.js 该模型非常基本,两个立方体相互叠加。一个立方体是红色的,另一个是绿色的。
我已经使用 Three.js 的 Blender 导出器插件导出了模型当我手动将材质分配给对象时:
loader.load("model.js", function ( geometry, material )
material = new THREE.MeshBasicMaterial( color: 0xFF0000 );
mesh = new THREE.Mesh( geometry, material);
scene.add(mesh);
animate();
);
没有问题如https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index.html所示
但是当我删除该行时:
material = new THREE.MeshBasicMaterial( color: 0xFF0000 );
使用了模型的材料。这会产生 Three.js 的错误:
TypeError: program is undefined [Break On This Error]
p_uniforms = program.uniforms,
您可以在https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index2.html亲自查看此内容
有没有人知道是什么导致了这个问题?你可以在https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/model.blend下载Blender文件
【问题讨论】:
【参考方案1】:简单。材料是一个数组。您需要执行以下操作:
loader.load( "model.js", function ( geometry, materials )
mesh = new THREE.Mesh( geometry, materials );
scene.add( mesh );
animate();
);
three.js r.88
【讨论】:
谢谢,在我的例子中,立方体变黑了。我首先需要在场景中添加灯光 :)以上是关于Three.js 的导出 Blender 模型中的材料不起作用的主要内容,如果未能解决你的问题,请参考以下文章
将模型从 Blender 导出到 Three.js 时没有纹理
Blender 导出到 JSON 以获取 THREE.js 缺少的材料