将简单的等距图像转换为 3D

Convert simple isometric image to 3D

我很好奇如何在简单的等距图像中推断出 3D 坐标。 我能想到的唯一方法是进行深度优先搜索以找到每个面的顶点,然后使用复杂的分支逻辑从所有可能的面如何被部分隐藏的可能性中找出顶点位置。解决此问题的更好方法是什么?

这只是出于爱好,所以我可以进一步简化问题(例如要求场景仅由单位体素组成,或者仅将解决方案作为单个体素中点的坐标而不是按逆时针顺序给出坐标及其面索引。

我假设输入是我在图片中使用的五种不同颜色的矩阵。作为输出,我希望有一个 3D 坐标列表,可能伴随着一个面坐标索引列表。

我假设您能够检测到所有边缘及其方向(六种可能)。另外,如果它们是完整的或被遮挡的。并检测顶点,这样你就得到了一个二维图。

将坐标(0, 0, 0) 分配给某个点,例如最低顶点。然后沿着已知点的每条完整边,您将通过考虑边方向(可能还有长度)获得端点的坐标,您将知道哪个坐标到 increment/decrement.

最后你会得到完整边的所有端点坐标,告诉完整的人脸,也能告诉被遮挡的人脸