Three.js 导出没有纹理的 Blender 模型
Posted
技术标签:
【中文标题】Three.js 导出没有纹理的 Blender 模型【英文标题】:Three.js exports Blender model without texture 【发布时间】:2016-02-27 04:46:09 【问题描述】:我正在尝试使用 Three.js 73(来自 github master 分支)的导出器导出这个 https://www.dropbox.com/s/zz1g38xaci2ibod/sailor.blend?dl=1 Blender 模型。
但是当我加载它时,我看不到任何纹理:
var loader = new THREE.JSONLoader();
loader.load("assets/sailor.json",
function (geom, mat)
console.log(mat);
var model = new THREE.Mesh(geom, mat[0]);
model.castShadow = true;
scene.add(model);
);
该模型有两个网格(身体和眼睛),但看起来这个导出器只能导出一个网格......所以现在我没有眼睛导出。
导出器设置:
导出器输出文件:sailor.json
io_three.export.log 为空,具有任何日志记录级别。
【问题讨论】:
【参考方案1】:我不确定这是否能解决您的问题,但它至少可以提示您问题出在哪里。
我比较了我转换后的 JSON 文件并与你的比较,发现你使用的 JSON 文件没有指定对象应该使用什么纹理。
添加:
"mapDiffuse" : "nameoftexture.png",
给你的
"materials: [
...,
...,
...
]"
数组。
祝你好运。
编辑
当我将此行添加到材料属性数组时,您的模型似乎可以使用纹理。
【讨论】:
是的,我知道我的 JSON 不包含纹理。但我没有任何纹理文件来手动指定它。至少不是作为单个文件,如果我从 .blend 解压缩“外部数据”,我会得到多个纹理文件(皮肤、布料等)。我认为导出器应该以某种方式导出它并在 JSON 中指定。顺便说一句,我还没有创建这个模型,我是从 blendswap (CC0) 中获取的。 抱歉打扰了,但这对我来说非常有效,尽管我认为这是一个 hacky 解决方案。你知道为什么blender在导出时默认不这样做吗?我的漫反射贴图设置正确。以上是关于Three.js 导出没有纹理的 Blender 模型的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Three.js 加载从搅拌机导出的纹理 Collada
THREE.JS 从搅拌机中导出 JSON 模型(包括纹理)