Questions tagged «projections»

5
投影到2D空间中的球体是否总是会产生椭圆形?
我的直觉一直是,当将任何球体投影到2D空间中时,结果在数学上始终将是椭圆(在退化情况下为圆)。 过去,当我积极地进行自己的图形编程并与其他人一起提出来时,他们坚称我错了。如果我没记错的话,他们认为结果可能有些模糊“蛋形”。 谁是正确的? 既然已经提交了一个答案,我不想完全改变我的问题,但是我意识到由于多年来对这一领域的熟悉程度,我遗漏了重要的细节。 我打算专门询问透视投影,其中投影是线性应用程序。 当然,其他投影对于许多用途也很有趣,因此我现在不希望将其删除。但是,如果答案中最突出的部分是透视投影,那就太好了。

1
如何在球体上产生程序噪声?
我想在球体表面上产生程序性噪音(例如,程序性地产生行星或大理石纹理的球)。当然,我可以采用一种标准的噪声算法并将其映射到球体上,但这存在将平面投影到球体上的所有问题,例如极点或其他地方的变形。 我想我可能会产生体积噪声并“切出”球体,但这似乎不必要地效率低下-并且,如果该噪声具有一些基于网格的伪像,则这些伪像仍不会均匀地出现在球体上。此外,至少在单工噪声的情况下,从3D噪声中切出2D切片通常看起来与立即生成2D噪声不同。 有什么方法可以避免这些问题,例如通过在球体上自然产生噪声?噪声至少应具有Perlin噪声的质量,理想情况下应具有Simplex噪声的质量。

1
需要有可靠的证据来证明地球地平线的形状
我要的是什么 我强调,我并不是要求公式 -我知道公式,以及如何推导它。文章结尾附近转载了它的几个不同版本。实际上,其他人不仅已经派生了它,而且还很好地介绍了这里的派生之一。 我需要的是该公式的一个著名来源,以便例如可以将其放到Wikipedia上而不违反其禁止报告原始研究的规定。[人们实际上已经尝试过 ...但是相关文章中有一些非常尽职的编辑,他们删除了该部分是因为它是原始研究……而且,不幸的是,该编辑是正确的,因此尝试没有太多意义。战斗。] 我在计算机图形学stackexchange中发布的原因 由于此处的某人可能已经模拟了地球从轨道上看的样子,因此他或她可能知道此公式(或更可能是它的某种概括)是否在某些书,杂志,会议论文集或课堂笔记中发表。等 我已经完成了“适当的谷歌搜索” 请理解,我并不是要任何人代表我去寻找答案。我已经做了很多谷歌搜索,并且只在这里发布了。我的希望(牵强)是这里的某人会马上知道参考。如果没有,那么,我希望至少您喜欢下面的漂亮图片(如果我自己这么说的话,我会与所有对计算机图形学感兴趣的人进行全面交流,然后再转向更大,更好)东西。 两个接近的来源 DK Lynch,“从视觉上识别地球的曲率”,《应用光学》第一卷。47,H39(2008)。它可以在这里免费获得。不幸的是,作者没有采取正确的方法(这并不难),而是选择了一种骇客,这(a)我并不完全理解,并且(b)与我所知道的不符。正确的公式。 R. Hartley和A.Zisserman,《计算机视觉中的多视图几何》,第二版。(剑桥大学出版社,英国剑桥,2004年)。在秒 8.3,“投影相机在二次曲面上的作用”,我们读: 假设二次曲面是一个球体,则相机中心和二次曲面之间的光线圆锥是右圆形的,即轮廓生成器是一个圆,该圆的平面正交于连接相机和球体中心的线。从几何形状关于这条线的旋转对称性可以看出这一点。球面的图像是通过将圆锥与图像平面相交而获得的。显然,这是经典的圆锥形截面,因此,球体的外观轮廓是圆锥形的。 原则上,如果仅包含更多信息,这将恰好是所需要的-至少一个圆锥形的偏心度表达式,它是与球体的距离和球体半径的函数(在这种情况下,当图像平面垂直于圆锥体的母线时,例如针孔相机对准地平线上的点时就是这种情况。 我需要学术参考的公式的详细信息 我们假设没有大气的完美球形,完美光滑的地球。我们将理想的针孔相机对准地平线,并使用简单的中央投影,计算相机背面的地平线图像的形状(即胶片在胶片上的形状-“胶片平面”) 。这是一个图形(在Asymptote中为感兴趣的人制作),该图应该使它更清晰: 正如我们在上面看到的,地平线的图像是圆锥截面的一部分。令为圆锥的偏心率;我上面提到的推导使用参数k代替,它只是反偏心率:k = 1 / ε。偏心率本身为ε = 1 / √εε\varepsilonkkkk=1/εk=1/εk=1/\varepsilon,其中ϵ=h/R是地球表面上方针孔的高度h与地球半径R的比。[而不是使用ε,这是之比海拔到- [R ,它可能使用是有用的η的比值,针孔的地球的中心的距离,ħ+- [R :向地球半径η=([R+ħ)/R=1ε=1/ϵ(2+ϵ)−−−−−−√ε=1/ϵ(2+ϵ)\varepsilon=1/\sqrt{\epsilon(2+\epsilon)}ϵ=h/Rϵ=h/R\epsilon=h/RhhhRRRϵϵ\epsilonRRRηη\etah+Rh+Rh+R。来讲 η,我们有 ε = 1 / √η=(R+h)/R=1+ϵη=(R+h)/R=1+ϵ\eta=(R+h)/R=1+\epsilonηη\eta ]。ε=1/η2−1−−−−−√ε=1/η2−1\varepsilon=1/\sqrt{\eta^{2}-1} 从针孔(图形中的点)到胶片平面的距离被视为一个单位长度。PPP 胶卷平面中的轴选择为平行于连接地球C中心(图像中未显示)和地平线上的点(相机中标记为V)的线。因为线C V必须平行于胶片平面,所以此选择定义明确。这是因为C V和胶片平面都垂直于视线P V(连接P和V的线)。和那是因为1.线P V相切地球在V,因此垂直于yyyCCCVVVCVCVCVCVCVCVPVPVPVPPPVVVPVPVPVVVV和2. P V垂直于胶片平面,因为相机是在 V处训练的。所述 X轴是当然的垂直于 …

2
如何将四边形投影为矩形?
tl; dr:射影几何中的数学问题:如何找到如下所示的投影的4x4相机矩阵,使得点A,B,C,D位于单位框的边缘某处(例如OpenGL归一化设备坐标),单位框的角沿EA,EB,EC,ED射线落在合理的位置? (这可能是单应性,透视性和/或归类的一种特殊情况。不熟悉术语。) 细化 给定视口内的四边形ABCD,我认为存在一个独特的(?)转换,可将其映射回矩形。如下图所示:视口中的四边形ABCD充当物理“窗口”,如果我们将其映射回矩形,它将显得失真。 (右边的方框代表NDC,我稍后再谈) 目的是快速获得右侧的图像。我们可以用光线跟踪每个点来获取图像(我已经完成了),但是我更喜欢使用OpenGL或其他投影技术,因为我想利用诸如混合,基元之类的东西。 第一次尝试 我相信我可以解决以下问题:找到3x4 相机矩阵,该矩阵在3空间(在左侧)中使3 + 1维均匀坐标,然后将其投影到2空间(在2维上)具有2 + 1维均匀坐标(在左侧)正确的)。可以使用直接线性变换来解决此问题,以获得摄像机矩阵Ba=0未知项a的方程组,并使用奇异值分解来求解该系统(SVD)。我将向量EA,EB,EC,ED(其中E是您的肉眼或世界空间中的相机)作为原像中的点,并将(0,0),(1,0),(1 ,1),(0,1)之类的东西作为后图像中​​的点,并且每对点都会给出一些线性方程式以插入SVD。生成的矩阵将映射EA->(0,0)等。(假设有足够的自由度,即,如果解决方案是唯一的,那么我不确定,请参见注释[a]。) 但是令我烦恼的是,这不是OpenGL的工作方式。OpenGL不会直接使用3x4矩阵将3d投影到2d。OpenGL需要“归一化设备坐标”(NDC),它们是三维点。投影到NDC之后,将绘制“单位”框中从(-1,-1,-1,1)到(1,1,1,1)的所有内容;外部的所有内容都会被裁剪(因为我们正在处理同质坐标:仅当(x / w,y / w,z / w的前三个坐标)时,任何点(x,y,z,w)才会显示在屏幕上,1)在-1至1)的单位框中。 因此,问题就变成了:是否存在某种合理的变换,可以将一些看起来怪异的长方体映射到均质坐标中(特别是在左侧绘制的长方体,其ABCD(前端)和A'B'C'D'(后端,隐藏)在前端后面))到单位立方体,例如使用4x4矩阵?怎么做? 我尝试过的 我已经尝试了一些更强大的方法:我使ABCD和A'B'C'D'看起来像是普通的锥体平截头圆锥体(例如gl平截头体)(即,在这种假设的设置中,左侧的图像只是在其上叠加了一个黑色矩形)而不是四边形),然后使用DLT /直接线性变换来求解所谓的4x4矩阵。但是,当我尝试它时,似乎没有足够的自由度...生成的4x4矩阵并未将每个输入向量映射到每个输出向量。在使用A,B,C,D,A'(5对转换前和转换后向量)时,我/几乎/得到了我想要的结果...这些向量已正确映射,但是例如B', C',D'映射到(3,3,1,1)而不是(-1,-1,1,1),并被OpenGL裁剪掉。如果我尝试添加第六点(用于投影4x4矩阵的6对点),我的解决方案似乎退化(零,无限)。我在这里要处理多少自由度,并且使用4x4矩阵映射我们知道和喜欢的4个向量(3 + 1维齐次坐标向量)是否有可能? 随意的小想法 我猜想不可能将任意长方体映射到具有4x4矩阵的任意长方体,尽管我很困惑,因为我认为可以使用2D中的某些矩阵在2d中将任何凸四边形映射到任何其他凸四边形。 ,例如,Photoshop?...不能/不能通过投影变换来完成吗?以及如何将其推广到3d?......同样,由于未能找到4x4矩阵,线性代数表示,在最佳情况下,我们不应该期望NxN矩阵将N个以上线性独立的点映射到N个目标点,但是我觉得这是同质的协调作弊这是因为存在一些隐藏的共线性吗?我猜不会? 另一个解决方案? 我猜可能还可以做以下丑事:使用典型的平截头体相机投影矩阵,找到与角对应的2D点,然后执行2D透视变形单应性,但是如果在渲染像素之后发生(例如photoshop),那么分辨率就会出现问题……也许假设可以找出一个矩阵在NDC空间内的XY平面上执行此转换,然后将其与基于普通视锥峰的矩阵组合起来? (注释[a]:自由度:如果需要的话,可以将ABCD进一步约束为作用在矩形上的投影变换的后图像...可以说是左侧的黑色矩形是投影相框剪贴画模型的结果)

1
正射投影和透视投影之间有什么区别?
我一直在学习《计算机图形学基础》(但第三版)一书中的计算机图形学,最后阅读了有关投影的信息。但是,我不完全了解正投影和透视投影之间的区别是什么?为什么我们都需要它们,它们在哪里使用?我还想了解什么是透视投影中在正交投影之前应用的透视变换。最后,为什么我们需要进行视口转换?我的意思是,如果摄影机/查看器未查看 -direction,则使用视图转换,但是视口又如何?- ž-ž-z
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.