【问题标题】:Render 3D model orthographically in Python在 Python 中正交渲染 3D 模型
【发布时间】:2012-11-03 11:32:33
【问题描述】:

我想用 Python 编写一个工具来帮助我从 3D 模型创建等距图块。你看,我不是一个非常熟练的艺术家,而且免费的 3D 模型很多,而且在 3D 中创建像桌子或椅子这样的东西比在绘画中容易得多。

此脚本将以正交投影加载 3D 模型并从四个方向拍摄照片,以便在游戏中使用。我在 Blender 中尝试过,但结果不一致,很难控制并且需要很长时间才能创建简单的精灵。

滚动我自己的脚本也可能让我做一些整洁的事情,尤其是批量生成,也许是纹理更改、着色等。游戏本身可能会用 Python tpp 制作,所以也许我可以即时生成。 (编辑:当他们面对镜头时自动创建透明墙)

现在我的问题是,哪些 Python 库可以做这样的事情?我已经检查了 Pyglet 和 Panda3D,但我什至无法加载模型,更不用说将其设置为正交投影了。

【问题讨论】:

  • 您可以添加您想要的 3d 模型格式的详细信息吗?
  • 这不那么重要,因为我还没有让它发挥作用,所以我一直在降低我的期望。我运行 Linux,所以我安装了 Blender,但这对我来说主要是黑魔法。 Sketchup 支持的格式会很好,它很容易使用(并且他们有一个大型的简单模型库,我可以修改、重新纹理等而不会感到太内疚)。我可能可以在大多数格式之间进行转换,对吧?我想 OpenGL 更原生的东西会更容易。我愿意学习任何 3D 软件,真的,只要我最终能从中得到等距图块。
  • 它不必支持数以万亿计的多边形、布料、毛皮之类的东西,它会是一个沙盒式角色扮演游戏,带有略显老式的图形和一些潜行;如果你玩过杀出重围,我喜欢只是随机开锁一些公寓门,找到一些隐藏的钱藏,破解电脑,然后突然发现自己陷入了支线任务。我不太了解 3D 及其格式,这就是为什么我想要 2D 等距精灵/图块,任何人都应该这样做:)
  • 而且我认为 OpenGL 原生的某种格式会使其变得最简单。
  • 我一定是太高了,或者我的英文打字比平时差。我的意思是明显地写,而不是透明地写。

标签: python 3d isometric


【解决方案1】:

我找到了这段代码:

www.pygame.org/wiki/OBJFileLoader

它让我可以轻松地从 Blender 加载和显示立方体的 .obj 文件。它运行 PyOpenGL,所以它应该让我做 OpenGL 能做的一切。从来不知道 OpenGL 如此低级,不知道我必须编写自己的加载器和所有东西。

无论如何,我很确定我可以修改它以进行等距投影、旋转对象并抓取照片并将它们组合成精灵。谢谢你们!

【讨论】:

  • 这些限制太疯狂了,首先我不能在 8 小时内发布自己的解决方案,然后再过两天我不能将自己的问题标记为已解决......
【解决方案2】:

既然您查看了 Panda3D - 如果您可以将模型转换为“鸡蛋”格式(blender/maya 可能会这样做),那么您就可以导入它。

https://www.panda3d.org/manual/index.php/Loading_Models

https://www.panda3d.org/manual/index.php/Models_and_Actors

http://www.panda3d.org/manual/index.php/Converting_from_Blender

注意:这个来源是流行搜索引擎中的“python 3d 网格加载器” - 这对我来说似乎可行。我现在需要尝试安装它和一些代码...

【讨论】:

  • 所以我已经将“YABEE”扩展 - code.google.com/p/yabee - 安装到 Blender 中,然后导出模型。我已经在 mac 上安装了 pand3da sdk - 呃 -2.5.6,它使用了系统解释器 - 有点讨厌,可以看看我是否可以让它与 2.7.x 一起工作,以及一个未预先警告的 Nvidia 工具依赖性。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 2017-10-13
  • 2014-04-03
  • 2017-08-05
  • 2013-03-25
  • 1970-01-01
  • 2019-12-27
相关资源
最近更新 更多