将 3D 模型转换为 SceneJS JSON,包括纹理

2024-04-08

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"我需要从代码中删除它才能加载它。


我实际上是 scenejs-pycollada 的作者。让我看看是否可以帮助你:)

我看到你正在使用 SceneJS 的 0.8 版本...事情一直在不断变化,所以实际上可能最容易拉来自 github 的 SceneJS 2.0 分支 https://github.com/xeolabs/scenejs和我的 scenejs-pycollada个人回购 https://github.com/rehno-lindeque/scenejs-pycollada。我基本上将 SceneJS 0.9 定位为 scenejs-pycollada 的第一个版本,但该版本从未正式发布。另外,从长远来看,如果您现在就切换,则不必重写所有内容......

有问题的 Windows 编译也是一个大刺,我真的希望 numpy 开发人员能为 Windows 人员解决这个问题。一旦 SceneJS 2.0 发布,我将发布 scenejs-pycollada 的正式版本,其中包含 Windows 所需的所有依赖项。

因此,请随意对此答案发表评论或更新您的问题。我会尽力关注它。

附:或者,如果你真的感到沮丧,我实际上有第二个搅拌机出口商https://github.com/rehno-lindeque/Blender-WebGL-exporter https://github.com/rehno-lindeque/Blender-WebGL-exporter,但我不建议使用这个 - 它已经过时了。唯一的另一个 scenejs collada 导出器很久以前就被弃用了。

附言scenejs-pycollada 本身也有示例和一些测试模型。如果您只想快速使用模型,请查看https://github.com/rehno-lindeque/scenejs-pycollada/tree/master/example https://github.com/rehno-lindeque/scenejs-pycollada/tree/master/example尽管不可否认这不是有史以来最漂亮的模型。

PPPS实际上,Amy Rose 模型不适合您的原因之一是 scenejs-pycollada 尚不支持多种材质。今晚我很快就会对此添加一些支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 3D 模型转换为 SceneJS JSON,包括纹理 的相关文章

随机推荐

  • 旋转时使用拖动手柄调整 div 大小

    我可以找到类似的问题 涉及 jQuery UI lib 或者只有 css 没有可拖动的句柄 但没有任何纯数学问题 我尝试执行的是拥有一个可调整大小和可旋转的 div 到目前为止很容易 我可以做到 但旋转时会变得更加复杂 调整大小以相反的方式
  • JavaScript 函数是否可以将其自己的函数调用作为字符串返回?

    在 JavaScript 中 函数是否可以将其自己的函数调用作为字符串返回 function getOwnFunctionCall return the function call as a string based on the para
  • 胡萝卜2 - 我可以从文件夹中聚集文档吗?

    我正在尝试对我在研究项目中收集的文档进行聚类 我正在尝试使用 Carrot2 工作台 但无法找到如何将胡萝卜指向包含文档的文件夹 请问我该怎么做 我有少量文档 txt 需要比较 它们位于独立的研究机器上 因此我无法连接到网络并在那里处理它们
  • Symfony 存储 foreach 循环的结果

    我想知道是否可以存储 foreach 循环的结果 我不知道如何更详细地解释我的问题 所以可以说以下让我得到 3 个不同的数组 events this gt getDoctrine gt getRepository TestBundle Ev
  • IS 回收时正在运行的任务会发生什么情况

    为了帮助提高客户端的性能 我将请求的处理转移到任务上 这样做是因为处理通常需要一些时间 而且我不希望客户端等待一段时间才得到 200 响应 将工作转移到任务上的 Web 服务始终在处理帖子 public void ProcessReques
  • 即使在使用显式版本的 Pipfile 和 Pipfile.lock 后,用户之间也存在差异

    抱歉 篇幅较长 这是一个非常复杂的 Pipenv 情况 在我的公司 我们正在使用 pipelinev 同时使用Pipfile and Pipfile lock 来控制不同工程师笔记本电脑上使用的包 这对我们来说比大多数团队更重要 因为我们还
  • Django 错误:vertualenv 环境错误:找不到 mysql_config [重复]

    这个问题在这里已经有答案了 当我尝试在运行 10 8 的 MAC 上的 virtualenv 中安装 MySQL python 时 出现以下错误 vertualenv EnvironmentError mysql config not fo
  • 如何在 Go 中实现不同类型的容器? [复制]

    这个问题在这里已经有答案了 下面的代码在Go中实现了一个int列表 package main import fmt type List struct Head int Tail List func tail list List List r
  • 增加或减少添加神经元或权重的学习率?

    我有一个卷积神经网络 我修改了它的架构 我没有时间重新训练和执行交叉验证 对最佳参数进行网格搜索 我想要直观地调整学习率 我是不是该increase or decrease我的 RMS 基于 SGD 优化器的学习率 如果 I add mor
  • equenceA 如何处理成对的列表?

    分拆出来this https stackoverflow com a 64068980 5825294问题 直觉上我明白了什么sequenceA在该用例中确实如此 但不是how why它是这样工作的 所以这一切都归结为这个问题 如何sequ
  • JPA 实体和/与 DTO

    在这些情况下帮助决定何时使用 DTO 以及何时使用 Entity 的总体思路是什么 UI 服务器端java调用服务 它应该获取 发送实体还是 DTO Web 服务调用服务 服务是否应该接受实体或 DTO 我喜欢阅读传递实体的代码 传递更简单
  • Android VideoView 是否缓存流式视频?

    看起来 VideoView Mediaplayer 没有自动缓存 只有我吗 Android VideoView 是否缓存流式视频 或者每次播放时都会重新下载 没有缓存 如果需要 您可以将代理服务器插入到混合中并自行缓存
  • 如何禁用 Android AutoCompleteTextView 的拼写检查器?

    我已经搜索过这个问题 但没有找到适合我的情况的任何答案 我有一个 AutoCompleteTextView 和一些字符串作为建议 城市名称 Android 用红线标记它们 我认为这是 Android 的拼写检查器 如何防止拼写检查 找到了最
  • 如何将 TextView 绘制到位图中(无需在显示器上绘制)

    根据主题 将 TextView 截图为位图 可以找到很多帖子 嗯 与我的问题不同的是 首先将视图绘制在显示器上 所有布局和测量工作都已完成 然后绘制到连接到位图的画布中 我只想从头开始创建一个 TextView 而不显示在渲染为位图的显示器
  • Pandas DataFrame:使用 Lambda 函数将 WKT 转换为新列中的 GeoJSON

    我有一些这种格式的数据 Dep Dest geom EDDF KIAD LINESTRING 3 961389 43 583333 3 968056 43 580 其中包含飞行轨迹 geom 列包含 WKT 格式的坐标 可以通过库转换它们g
  • Coq案例分析和函数返回子集类型的重写

    我正在做一个关于使用子集类型编写经过认证的函数的简单练习 想法是先写一个前驱函数 pred forall n n nat n gt 0 m nat S m n 1 然后使用这个定义给定一个函数 pred2 forall n n nat n
  • 为什么 Java ThreadLocal 变量应该是静态的

    我在这里阅读 Threadlocal 的 JavaDoc https docs oracle com javase 1 5 0 docs api java lang ThreadLocal html https docs oracle co
  • 尾递归是否一定需要累加器?

    例如 由于以下函数没有累加器 它仍然是尾递归吗 belong Ord a gt a gt a gt Bool belong a False belong a h t a h True otherwise belong a t 函数中的所有计
  • 使用 Alamofire 数据填充表单元格

    在一天的大部分时间里 我一直在尝试使用 Alamofire 并使用它来收集一些基于 API 的数据来填充表 我已经成功地将数据获取到我的 iOS 应用程序中 我可以 println 来查看它 但我一生都无法弄清楚使用我的数据填充正确数量的表
  • 将 3D 模型转换为 SceneJS JSON,包括纹理

    Motive我正在尝试使用 WebGL 创建一个小型演示应用程序 我选择使用 SceneJS 因为它看起来是一个简单的框架 并且足以满足此目的 我已经下载了几个 blend 模型 等 并使用 Blender 将它们导出为 Collada d