动机
我正尝试使用WebGL创建一个小型演示应用程序。我选择使用SceneJS,因为它看起来是一个简单的框架,并且足以达到这个目的。将3D模型转换为SceneJS JSON,包括纹理
我已经下载了一些.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版(32位的Windows)
我选择了32位版本,因为图书馆看似更好的支持,以及更多可用的安装程序。起初我混合了32位和64位,这给我带来了麻烦,但现在一切似乎都奏效了(除了纹理,就是这样)。 - 搅拌机2.59
- SceneJS 0.8.0
我的工作流程
在搅拌机我的模型导出为COLLADA格式(* .dae)文件,然后使用scenejs-它们转换为原始JSON pycollada。这给了我一个包含两个对象的JSON文件。第一个似乎是现场,第二个模型。我保留第二个,并将其放入一个在SceneJS示例的代码中使用的Javascript变量。该模型以属性, "type": "library", "parent": "Scene"
结尾,我需要从代码中删除它以使其加载。
谢谢!它似乎与你的版本scenejs-pycollada和SceneJS 2.0一起工作。不需要重新编译任何东西,所以这很好。 ;)我不会非常指责Numpy的人,安装不同版本的各种库是我自己的错。 在这一刻我正在尝试GLGE,有人推荐。 (它加载.dae文件而不必转换它们)。现在我需要让我的演示工作,但我希望我很快能够重新调查SceneJS。再次感谢。 – GolezTrol
没问题,还有更多的bug让我知道:) –