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