【发布时间】:2014-01-30 10:00:18
【问题描述】:
使用 Three.js r64 我想从 Blender 导入一个带有平滑组的动画对象,该文件通过 Three.js Blender 导出器导出为 JSON。
动画部分工作正常。
在 Blender 中,模型看起来不错(中心部分周围有一个小的平滑组)。
图片:http://www.defresne.fr/demo/so/three/smooth_shading/gears.png
在 OBJ 中导出并选中“平滑组”和“包括法线”选项时,我可以获得相同的结果。但是,在导出 JSON 文件(使用法线)时,我无法使其正常工作。接下来是现场图片,以及现场演示。
图片:(附加下一个链接)three_gears.png
现场演示:http://www.defresne.fr/demo/so/three/smooth_shading/
我在整个网络上进行了大量查找,但找不到正确的信息。 Best 是关于 SO 的另一个问题,它有点老(r55)并且从未得到任何公认的答案。
我确实尝试用
计算对象的法线geometry.computeFaceNormals();
geometry.computeVertexNormals();
但是,很明显,它计算整个对象的法线并产生一个完全平滑的对象。
那么,让 JSON 平滑组在 three.js 中工作的正确方法应该是什么?等待内置功能?自己建造?修改导出器?
由于 three.js 似乎可以正确加载带有平滑组的 OBJ 和 Collada 模型,也许我可以借用这些加载器中的一些代码来获取逻辑?
感谢您的帮助
[编辑]
我刚刚发现了一些很棒的东西!
在 Blender 中,生成 2 个模型导出:第一个是 JSON 文件,第二个是 OBJ 文件。使用 three.js 在线编辑器加载第二个,然后将其转换为几何 JSON... 我可以收集这个新导出的几何体的顶点、法线和面,并将其复制到第一个导出的文件中。
效果很好!我有很好的着色组。甚至剥皮也能正常工作。
但这是一种乏味的处理方式,我希望我可以为自己节省一些额外的转换。
这是否意味着从 Blender 导出几何图形时出现问题?知道为什么吗?
任何帮助将不胜感激!
【问题讨论】:
标签: json three.js export blender normals