0

我打算从头开始在Blender内部制作基于多视图立体图像(基本上是同一物体从不同角度和方向的2D平面图像)的3D模型。但是,我是Blender的新手。

我想知道是否有关于如何使用 python 在 Blender 的 3D 环境空间中投影单个像素或点的教程。如果不是教程,任何文档。我仍在学习这整个 3D 构造的东西并且对此很陌生,所以我不确定这些点是否使用 3 维矩阵/数组显示?

基本上我想根据一些研究人员写的论文来实现 3D 构造。大多数这样的项目都是用 C++ 编写的。我想在 Blender 中用 Python 做,如果我有足够的能力,让这些库开源。

如果您认为这对我有帮助,请向我建议任何先决条件。我刚刚开始了第三年的 BSc 计算机科学课程,并且对计算机图形学世界非常陌生。

(我的技能是 C、Java 和 Python。)

我会很高兴并感谢任何帮助。

谢谢你

[链接到网站https://vision.in.tum.de/research/image-based_3d_reconstruction/multiviewreconstruction [][1]]

2

4

1 回答 1

0

是的,它很可能在 Blender 中完成,在 Python 中至少对于小几何/低分辨率。

对于您似乎想要玩的那种场景,一种有效的方法是基于“空间雕刻”或“剪影投影”的想法。一个很好的描述是Kutulakos 和 Seitz 的一篇旧论文,它部分基于Szelisky 的早期工作

给定轮廓的良好估计,这些方法可以正确地重建物体表面的所有凸面部分,以及在照片外壳中解析的凹面子集。剩余的凹面被“修补”,需要使用不同的方法(例如立体或结构光)重建。对于可以重建的表面,空间雕刻通常比立体更健壮(因为它对物体的颜色和表面纹理不敏感),并且可以在结构光困难的表面上工作(例如具有镜面反射或非常暗的表面)激光条纹反射率低的物体)

基本思想是使用物体在其周围的摄像机中的投影轮廓从包围物体的初始体积(例如盒子)中“移除”质量,有点像雕塑家通过从块中移除材料来雕刻雕像大理石。

在计算上,您可以使用八叉树来表示感兴趣空间的体积,用最小的细分级别进行初始化,然后逐步细化。细化包括在相机中投影八叉树叶子的顶点,并识别哪些叶子完全在轮廓之外或部分在轮廓内。前者被修剪,后者被分裂,并且该过程继续进行,直到不再可以分裂叶子或达到最大细分水平。然后使用标准方法将八叉树的外壳提取为“防水”网格。

除了上述论文之外,还可以在Geometrix 的一项旧专利中找到更详细的描述——它在 2000 年左右销售了基于上述想法的扫描仪。它看起来像这样:

在此处输入图像描述

于 2020-11-25T06:56:54.713 回答