2016-05-31 140 views
1

我很难过。我查看了所有可以找到的相关主题,但都没有详细描述我的问题。Blender to Three.js(.JSON)和OBJ to .JS纹理映射问题

我试图让一个.JSON或.JS版本的模型导出和纹理映射与通过WebGL渲染时的.OBJ版本相同。下面是说明发生了什么事的形象:

WebGL rendered MODEL EXAMPLES

设置: 的Win7,搅拌机2.77,three.js所(下载16年5月22日),three.js所(以.json)搅拌机出口商, Python的OBJ>的.js转换脚本(convert_obj_three.py)

python convert_obj_three.py -i xxx.obj -o xxx.js 

步骤:

  • 魔兽模型魔兽世界从出口ModelViewer作为.OBJ
  • 魔兽导入到Blender的
  • 搅拌机编辑模式, “删除双打”
  • 搅拌机出口模式.OBJ
  • three.js所THREE.OBJLoader()脚本对Web测试

结果为 “GOOD” 示例(在图像左壳体)

  • 搅拌机出口到以.json(尝试每一种可以想象的配置,然后一些)
  • three.js所THREE.JSONLoader()脚本的Web中的 “BAD” 例如

结果测试(在中间的情况下,图像)

  • 搅拌机导出到.OBJ
  • CMD线Python脚本做从OBJ转换到.JS
  • three.js所THREE.JSONLoader()的脚本来测试ö N个Web在 “WORSE” 示例

结果(在图像中的情况下)。出于某种原因,在最后一个例子中,不仅仅是头发纹理,而且模型脸部的部分皮肤也会变得不稳固。

您可能会注意到,在每种情况下,光线渲染也会有所不同。

我看着.JSON和.JS文件,不知道如何手动编辑,如果这是最终需要的。

也许某些模型不会正常纹理?

+0

什么问题是什么呢?左边的照片对我来说很好看? –

+0

如果您认为这是一个three.js错误,请在three.js网站上提交一个错误报告,并提供一个包含所有项目文件的zip文件的链接,包括一个简单的演示。 – WestLangley

+0

嗨,问题是我需要让它在.JSON或.JS中正常工作才能使用Three.js框架进行动画制作。我解决了照明问题,以及最右边的图像上的奇怪的war ling声。它是由一个已经从Blender保存一次的.OBJ开始引起的。唯一剩下的问题是我无法弄清头发使用的坐标映射。 – aoedipus

回答

0

您的模型头部的UV值超出范围[0,1]。

当你加载你的JSON模式,建立

texture.wrapS = texture.wrapT = THREE.RepeatWrapping; 

three.js所r.77

+0

谢谢!尽管如此,仍感觉迟缓。事实上,在.js文件中有[0,1]范围外的UV参考,如果被移除,纹理的头发区域会变黑。但是,我试图简单的包装变化没有任何影响:'var loader = new THREE.JSONLoader(); loader.load(“xx/model.js”,function(geometry,materials){ var hairTexture = new THREE.TextureLoader()。load(“xx/hair.png”); hairTexture.wrapS = hairTexture.wrapT = THREE.RepeatWrapping; mesh = new THREE.Mesh(geometry,new THREE.MeshFaceMaterial(materials)); scene.add(mesh); });' – aoedipus

+0

问题已解决。我在Blender中学习了UV编辑的乐趣,收集了所有那些漂浮在纹理图像边界外的小网格物体,将它们正确放置,重新导出OBJ,并用Python脚本进行转换...等等。一旦我掌握了它的一窍不通,那么无意义的乐趣。再次感谢您试图帮助这个老noob ... – aoedipus