在 wxPython 应用程序中嵌入 3-D 编辑器(例如 Blender)
Posted
技术标签:
【中文标题】在 wxPython 应用程序中嵌入 3-D 编辑器(例如 Blender)【英文标题】:Embedding a 3-D editor (such as Blender) in a wxPython application 【发布时间】:2010-10-31 07:29:07 【问题描述】:是否可以在我的 wxPython 应用程序中嵌入 3-D 编辑器? (我在考虑 Blender,但欢迎提出其他建议。)
我的应用程序打开了一个 wxPython 窗口,我希望在其中有一个 3-D 编辑器。当然,我希望我的程序和 3-D 编辑器能够相互交互。
可能吗?怎么样?
【问题讨论】:
当你说“互动”时,你希望用它做什么? 例如,我的程序将能够改变物体在 3-d 世界中的位置。另外,如果我在 3-D 编辑器中拖动一个主体,我希望它以新的位置向我的程序报告这个动作。 【参考方案1】:Blender 有 python 插件,你可以写一个插件来和你的程序交互。
【讨论】:
blenderartists.org/forum/archive/index.php/t-3098.html 和 blenderartists.org/forum/archive/index.php/t-3336.html 讨论使用套接字在 Blender 实例之间进行通信,类似的事情可以在 Python 和 Blender 之间轻松完成 但是在这种情况下,Blender 仍然是它自己的窗口,还是在我的程序窗口内?我的目标是后者。 这将是一个单独的窗口/应用程序【参考方案2】:我赞同 Luper Rouch 关于 Blender 插件的想法。但是如果你必须有自己的窗口,你需要 fork Blender。看看makehuman 项目。它曾经有 Blender 作为平台。 (我不确定,但我认为他们现在拥有不同的基础架构)
【讨论】:
【参考方案3】:对于Blender,我对此表示怀疑。 Blender 使用基于 OpenGL 的自定义 UI,我不确定您是否可以强制它使用预先存在的窗口。我建议浏览“Ghost”的代码,它是 Blender 的自定义适配层(负责与 OS 交互以实现 UI 目的)。
【讨论】:
【参考方案4】:也许this script 可能会为您的项目提供一些背景信息。它集成了 Blender、ActiveX 和 wxPython。
警告:仅限 Windows。
【讨论】:
【参考方案5】:Linux上的Blender2.5可以使用gtk.Socket,代码示例为here on pastebin
【讨论】:
欢迎您。由于它不是太长,我建议您将相关部分粘贴进去。您可以使用帖子下方的“编辑”链接按钮来做到这一点。 :)以上是关于在 wxPython 应用程序中嵌入 3-D 编辑器(例如 Blender)的主要内容,如果未能解决你的问题,请参考以下文章