动机
我正在尝试使用WebGL创建一个小型演示应用程序。我选择使用SceneJS,因为它似乎是一个易于使用的框架,并且对此目的来说完全足够。
我已经下载了一些.blend模型(包括Amy Rose等),并使用Blender将它们导出为Collada(.dae)文件。然后我使用scenejs-pycollada将它们转换为json模型。
我刚刚花了几个小时让scenejs-pycollada转换器工作起来。显然,如果你以前从未使用过Python,那么在Windows中使这些Python依赖项工作并不容易。;)
问题
但现在我又卡住了。我的问题是这些模型没有任何纹理或材质。
现在,我按照一些教程导出纹理为PNG图像。然后,我修改了JSON模型中的纹理文件名以与文件名匹配,但这并没有帮助。
所以,我希望有人能帮助我找到一种方法将Blender模型(或其他常见的3D模型)导出为SceneJS使用的JSON格式,包括纹理。
任何其他加载模型到SceneJS的方法都可以,只要它能工作。
如果有人有免费下载身体/人物JSON模型的链接,那暂时会有所帮助,但我更想学习如何做这件事。:)
我正在使用
- Windows 7 Home Premium 64位
- Python 2.7 (Windows 32位)
我选择了32位版本,因为它似乎对库有更好的支持,并且有更多可用的安装程序。起初我混淆了32位和64位,这给我带来了麻烦,但现在一切似乎都可以工作(除了纹理)。 - Blender 2.59
- SceneJS 0.8.0
我的工作流程
在Blender中,我将模型导出为Collada (*.dae)文件,然后使用scenejs-pycollada将其转换为原始JSON格式。这给我一个包含两个对象的JSON文件。第一个对象似乎是场景,第二个是模型。我保留第二个并将其放入Javascript变量中,在SceneJS示例代码中使用。该模型以属性"type": "library", "parent": "Scene"
结束,我需要从代码中删除它才能使其正常加载。