首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将3D图像投影到2D图像

将3D图像投影到2D图像
EN

Game Development用户
提问于 2021-12-03 16:18:01
回答 2查看 238关注 0票数 -1

我们知道现实世界的图像是3D.when,我们将真实世界的图像投影到2D图像中,Z分量为常数或零。但是,当捕捉到以下图像时,它似乎是3D的(z似乎不是常量),请看这个图像,它似乎是3D的:

我的问题是它是怎样的二维图像?我很困惑,这可能是3D图像。

EN

回答 2

Game Development用户

回答已采纳

发布于 2021-12-03 19:26:46

张贴的图片是2D的,因为你不能仅仅根据所提供的信息来“回头看”图像中的任何东西。

这里有一个3d场景被投影到一个2d的平面上(来源:维基百科三维投影条目)

在下一个场景中,我添加了一个额外的立方体:

尽管如此,场景的2D投影仍然保持不变。从二维投影的角度,我们可以推断出场景的一些三维信息(如蓝色立方体的相对深度、宽度和高度),但是我们没有足够的信息来确定3D场景中的所有信息。

票数 2
EN

Game Development用户

发布于 2021-12-03 21:31:25

我相信混淆可能来自于术语“三维计算机图形学”,因为3D计算机图形的三维不是它产生的图像,而是它们在计算机中的表现。

要清楚的是,可能有3D图像,但接下来我们要讨论的是专门的输出硬件。当然,"3D“也是个热门词。我们曾多次尝试"3D“,即"3D眼镜”从硬纸板制成,有一个红色和一个蓝色“镜片”,使用快速闪烁,使用偏振滤镜,如果人们开始称"3D眼镜“为VR/AR耳机的化身,那就不足为奇了。然后我们得到了“全息图”这个绰号的所有东西。别让我开始做这件事。

但3D计算机图形并不意味着这一切。相反,它意味着计算机中有一个3D表示,我们可以用它从不同的视图创建不同的图片。我们甚至谈到了虚拟摄像机,我们配置了这样做。在开发3D游戏时,我们常常认为这是理所当然的。

当你用一个真实的(而不是虚拟的)普通相机拍照时,你确实可以看到一个真实的3D世界。但你只看到了那景色。您无法获得可用于从不同视图创建不同图片的3D表示。

你可以用一个更先进的相机来获取深度信息。这些会给你点云数据。可以被认为是3D的。然而,如果你做了一个这样的捕捉,并试图创建来自不同视角的图片,你会发现围绕着虚拟相机在轨道上运行什么都没有发现。但是,只要用相同的技术捕获足够多的信息,您就可以创建一个对象或位置的完整3D表示。要了解有关该主题的更多信息,请参见摄影测量三维扫描。您也可能对三维成像感兴趣,例如在医疗应用程序中使用。那些是3D的。

将此应用到游戏开发中,这些工具对于创建用于电子游戏的真实资产(包括对象和场景)非常有用。对于AR游戏,扫描玩家周围的区域将有助于整合虚拟元素。而虚拟现实游戏可能想要扫描玩家周围的区域,这样他们就可以知道他们有多大的工作空间,并给用户一些暗示,他们可能会碰到什么东西。

当然,你可以用2D图片来表示3D的东西。我们一直都这么做。我们用投影来做。特别是,您可以在2D图片中定义轴,就像您所做的那样。为此,您定义了从3D到2D的单向转换(编辑:实际上我认为您需要知道这些行的3D长度)。但这并不能使图片3D (它仍然是平面的,无论是在平面屏幕上,在一张纸上,或类似的),它是不足以使从2D到3D的转换。

然而,这并不是一个完全错误的想法。我们--人类--可以看到一幅3D空间的二维图片,并且有一种深度感。这是通过采取线索,如什么是在或不在焦点,什么我们期望是平行的或正交的线,以及我们的经验与透视和光。我们对此很在行,因为我们一直都在这样做。我们的深度知觉主要来自于使用两张2D图片(一张来自每只眼睛)。然而,我要提醒你,我们可能会成为光学幻想的受害者。比如著名的Ames房间

我们将利用这一点开发电子游戏,我们相信玩家会直觉地理解屏幕上的图片代表一个3D空间。当然,也有一些独特的挑战,因为玩家只看2D图片。例如,你知道吗,在马里奥64总是在角色下面有阴影之前,玩家很难跳下去,因为他们无法猜到角色会在哪里着陆?公平地说,我不知道这是否是增加阴影的动机,或者只是游戏中的光系统不是很好,但是阴影确实帮助了玩家进行跳跃,这是在可用性方面的一个经验教训。

计算机也可以在某种程度上做同样的事情。两种方法都是使用多个摄像机来实时创建3D表示,或者从2D图片中推断出一个3D空间(参见计算机视觉)。这些都是活跃的研究领域,在自动车辆上有着非常具体的应用,在一般的机器人/领域也有很好的应用。

最后是电子游戏相关的笔记..。

而自动驾驶汽车在电子游戏中没有直接的应用。电子游戏在培训软件代理方面有着直接的应用。更准确地说,在创建3D环境来测试软件代理。我们能做得越现实越广泛,就越好。这样,当驱动自动驾驶车辆的软件代理被赋予真正汽车的控制权时,我们就对它的正确工作充满了信心。

票数 2
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/198178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档