动机
我正在尝试使用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中加载模型的任何其他方法也都可以,只要它有效。
如果有人可以免费下载身体/身材JSON模型的链接,那么现在就会有所帮助,但我更愿意了解它的工作原理。 :)
我正在使用
我的工作流程
在Blender中,我将模型导出到Collada(* .dae)文件,然后使用scenejs-pycollada将它们转换为Raw JSON。这给了我一个JSON文件,里面有两个对象。第一个似乎是场景,第二个是模型。我保留第二个并将其放在SceneJS示例代码中使用的Javascript变量中。模型以属性, "type": "library", "parent": "Scene"
结束,我需要从代码中删除它以使其加载。
答案 0 :(得分:7)
我实际上是scenejs-pycollada的作者。让我看看我是否可以帮助你:)。
我看到你正在使用SceneJS的0.8版本......事情已经变得很不稳定了,所以实际上最容易从我的2.0 branch of SceneJS from github中提取personal repo和scenejs-pycollada。我基本上将SceneJS 0.9作为第一个版本的scenejs-pycollada,但该版本从未正式发布。此外,从长远来看,如果你现在只是切换,你将不必重写所有内容......
有问题的Windows编译也是一个大问题,我真的希望numpy开发人员能为你解决这个问题。一旦SceneJS 2.0发布,我将发布一个正式版的scenejs-pycollada,它包含了windows的所有必要依赖项。
因此,请随意评论此答案或更新您的问题。我会试着留意它。
P.S。或者,如果你真的很沮丧我实际上在https://github.com/rehno-lindeque/Blender-WebGL-exporter有第二个搅拌机出口商,但我不建议使用这个 - 它已经过时了。很久以前,唯一的其他scenejs collada exporter已被弃用。
P.P.S。在scenejs-pycollada本身也有例子和一些测试模型。如果您只是想要一个快速模型,请查看https://github.com/rehno-lindeque/scenejs-pycollada/tree/master/example,尽管它确实不是最漂亮的模型。
P.P.P.S。实际上,Amy Rose模型不适合你的原因之一是因为scenejs-pycollada还不支持多种材料。我今晚很快就会为此增加一些支持。