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