Motive
我正在尝试使用 WebGL 创建一个小型演示应用程序。我选择使用 SceneJS,因为它看起来是一个简单的框架,并且足以满足此目的。
我已经下载了几个 .blend 模型(等)并使用 Blender 将它们导出为 Collada (.dae) 文件。然后我使用 scenejs-pycollada 将它们转换为 json 模型。
我只花了几个小时scenejs-pycollada http://scenejs.wikispaces.com/scenejs-pycollada转换为工作。显然,如果您以前从未使用过 Python,那么让这些 Python 依赖项在 Windows 中运行并不是那么容易。 ;)
Problem
但现在我(再次)陷入困境。我的问题是模型没有任何纹理或材质。
我用的是西摩平面示例 http://scenejs.org/dist/curr/extr/examples/seymour-plane/index.htmlSceneJS 的。我转换的模型几乎不可见。它是黑色的,似乎对场景中的灯光没有反应。如果我将飞机和模型一起加载,我可以看到模型已加载,因为它的手臂和腿伸出飞机。
现在,我遵循了几个教程,可以将纹理导出为 PNG 图像。然后我修改了 JSON 模型中的纹理文件名以匹配文件名,但没有帮助。
所以我希望有人能帮助我找到一种方法将 Blender 模型(或其他常见的 3D 模型)导出为 SceneJS 使用的 JSON 格式,包括纹理。
在 SceneJS 中加载模型的任何其他方法也可以,只要它有效。
如果有人有免费下载身体/人物 JSON 模型的链接,那现在会有帮助,但我宁愿了解它是如何工作的。 :)
我在用着
- Windows 7 家庭高级版 64 位
- Python 2.7(Windows 32 位)
我选择了 32 位版本,因为似乎对库有更好的支持,并且有更多可用的安装程序。起初我混淆了 32 位和 64 位,这给我带来了麻烦,但现在一切似乎都可以工作(除了纹理)。
- 搅拌机2.59
- 场景JS 0.8.0
我的工作流程
在 Blender 中,我将模型导出到 Collada (*.dae) 文件,然后使用 scenejs-pycollada 将它们转换为原始 JSON。这给了我一个包含两个对象的 JSON 文件。第一个似乎是场景,第二个似乎是模型。我保留第二个并将其放入 SceneJS 示例代码中使用的 Javascript 变量中。模型以属性结束, "type": "library", "parent": "Scene"
我需要从代码中删除它才能加载它。