【问题标题】:Working OpenSceneGraph bindings for Python?为 Python 工作的 OpenSceneGraph 绑定?
【发布时间】:2012-11-16 01:51:36
【问题描述】:

为了好玩,我正在用 Python 构建一个渲染引擎。我需要加载 3D 场景。任何标准的现代格式(如 DAE、3DS 或 MAX)都可以使用:我可以轻松地在标准格式之间转换我的文件。

OpenSceneGraph 似乎是最全面且维护良好的解决方案。能够毫不费力地在 Python 中使用它是理想的。是否有适用于 OSG 且易于安装、可在 Mac OS X(我使用的是 10.8)并与最新版本的 OSG 兼容的 Python 绑定?

我四处搜索,发现了 osgswig (http://code.google.com/p/osgswig/) 和 PyOSG (http://sourceforge.net/projects/pyosg/),但它们似乎没有得到积极维护。我没有看到任何与这些软件包相关的最新活动,而且似乎人们在 OSX 上运行 osgswig 时遇到了麻烦。理想情况下,我想找到一些“正常工作”的东西,而没有主要的编译麻烦。我只想安装一个包并能够导入一个可以让我加载 COLLADA 或 3DS 文件的模块。

我也遇到了 pycollada (https://github.com/pycollada/pycollada)。它似乎很活跃,但还处于早期阶段。理想情况下,我想要一个相当全面的包,它支持高光贴图、法线贴图和其他相当高级的功能。动画也不错。

总之,我需要在 Python 中加载 3D 场景。 OSG 的绑定可能是理想的,因为 OSG 是如此全面。但我需要一些适用于 OSX 的东西。我也更喜欢可以相当容易安装的东西。有这样的东西吗?

谢谢!

【问题讨论】:

  • pycollada 现在相当稳定,但动画支持还不完善

标签: python 3d pygame collada openscenegraph


【解决方案1】:

看看 Open Asset Import Library(简称:Assimp)。它是一个可移植的开源库,以统一的方式导入各种知名的 3D 模型格式。 http://www.assimp.org/

【讨论】:

  • 谢谢,我看了一下。不过,它似乎无法在 Mac OS 上运行。我正在寻找可以在 Mac OS 上运行的东西。
  • 作为记录,它确实可以在 Mac OS 上运行。您在尝试时遇到了哪些问题?
【解决方案2】:

您应该在 panda3D (http://www.panda3d.org/) 上抢劫,它是一个具有大量 python 绑定的游戏引擎。它有你想要的功能:http://www.panda3d.org/manual/index.php/Features

我用了几年,它是一个可靠的工具。

【讨论】:

    【解决方案3】:

    出于类似目的,我制作了自己的 osgswig 项目克隆镜像的分支。我在 Windows 和 Mac 上使用 OpenSceneGraph 3.2.1 版;很可能我最终也会为 linux 完善它。我已经根据我的 osgswig 版本向客户交付了一种产品,并且我正在考虑制作其他产品。在这里找到我的叉子:

    https://github.com/cmbruns/osgswig

    如果其他人表现出足够的兴趣,我可能会被哄骗为我的 osgswig 模块版本创建二进制安装程序,以使安装更容易。

    如果您只想为 OSG 3.2.1 提供最简单的 OpenSceneGraph 绑定,您可以在此处停止阅读此答案。继续阅读,了解我对未来的更多想法。

    虽然我维护 osgswig 的一个分支(如上所述),但我有点讨厌 SWIG,我更喜欢使用基于 Boost.Python 的绑定,而不是 SWIG。对于大型、复杂的 C++ API,如 OpenSceneGraph,Boost.Python 可以比 SWIG 优雅得多,无论是对于 API 使用者还是对于绑定维护者(我和我)。我在https://code.google.com/p/osgboostpython/ 找到了一个使用 Boost.Python 来封装 OSG 的项目,但开发人员非常喜欢手工封装界面的每个部分,因此只完成了大型 OpenSceneGraph API 的一小部分。

    以基于 Boost.Python 的项目为灵感,我创建了另一个 OpenSceneGraph Python 绑定项目,地址为https://github.com/JaneliaSciComp/osgpyplusplus。最终,我想使用这个 osgpyplusplus 项目来满足我所有的 python osg 需求。我将不胜感激帮助做好准备。目前,osgpyplusplus 与 osgswig 相比存在以下弱点:

    1. osgpyplusplus 尚未在任何工作产品中使用
    2. 构建环境很难设置,需要 Boost.Python 和 Pyplusplus
    3. 最近没怎么关注osgpyplusplus,再不理它可能会生锈。
    4. 虽然 osgpyplusplus 可能封装了大部分 OpenSceneGraph API,但在有人尝试使用它开发重要项目之前,可能还存在一些重要的缺失部分。
    5. 此时我要为 osgpyplusplus 创建一个二进制模块安装程序需要做很多工作,所以请不要要求我这样做。

    【讨论】:

      猜你喜欢
      • 2011-05-16
      • 2012-04-29
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多