问题标签 [projection-matrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
246 浏览

r - 投影矩阵:结合第二阶段组的过渡矩阵和生育矩阵

我想问一下如何将以下信息组合到投影矩阵中。我确实有转换 ( T ) 和生育 ( F ) 矩阵的数据,因此投影矩阵 ( A ) 等于这两个矩阵的总和,即A=T+F

关于转移矩阵中的个体,他们可以向上移动到单位时间单位(成为“更旧”一个时间单位)或向下(反之亦然)(即,转移矩阵中的条目是下对角线或超对角线值)。

问题是如何在第二阶段组的 A 中组合 T 和 F 值,其中 T 和 F 条目重叠?也就是说,如果从阶段 2 移动到阶段 3 的概率等于例如 0.4,并且从阶段 2 到阶段 1 = 0.1,它与 F 值 - 3 重叠(这不是概率,而是不同的单位)。如何有意义地结合这些信息?先感谢您。

请找到下面的矩阵来说明问题。P(i) - 从一个阶段移动到另一个阶段的概率,Z(i) - 从一个阶段向后移动到另一个阶段的概率(时间可逆性);F(i) - 生育力值。

0 投票
1 回答
504 浏览

ios - 投影矩阵有什么用?

我一直在尝试分析 Apple 的 pARk(增强现实示例应用程序),在那里我遇到了以下功能,

带有以下参数的方法调用:

我看到这projection matrix是乘以rotation matrix(由 motionManager.deviceMotion API 获得)。投影矩阵有什么用?为什么要和旋转矩阵相乘?

为什么结果矩阵必须再次与 PointOfInterest 向量坐标相乘?

感谢这里的任何帮助。

示例代码链接在这里

0 投票
1 回答
370 浏览

c++ - gluProject 的文档是否缺少透视划分?

用于写入点的投影的 OpenGL文档是使用给定的投影和模型视图矩阵计算的,然后窗口坐标是使用当前视口导出的,例如.gluProjectvv'' = P * M * vwinZ = (v''(2) + 1)/2

这不是缺少v''by的透视划分v''(3)吗?那么我们真的应该有像winZ = (v''(2)/v''(3) + 1)/2.

这与我机器的 opengl 实现和 OpenGL wiki上的实现一致。

那么,文档有错吗?

0 投票
1 回答
169 浏览

opengl - 使正方形填充整个窗口

如何确定在现代OpenGL 中使正方形填充整个窗口所需的变换。例如,我有一个 800 x 600 的窗口,两个三角形的顶点坐标从 -1 和 1 延伸。如果没有任何类型的变换,这些坐标将填充 800 x 600 的窗口,因为 OpenGL 的坐标从 -1 延伸到 1 . 但是,如果我想使用标准 MVP 转换怎么办?我如何确定需要做什么才能填满整个窗口。考虑这段代码:

具有相同的坐标。我现在会在窗口中间的某个地方得到一个正方形。假设我不更改投影矩阵,需要对视图和模型矩阵进行哪些更改?我了解矩阵数学,但不了解它与窗口坐标本身的关系。

谁能帮我理解这一点?

0 投票
0 回答
387 浏览

c# - GUI.matrix 的非仿射变换 (c#/unity)

我试图统一理解 GUI.matrix,但文档很少。

我发现第一象限是一个仿射变换矩阵,所以我设法编写代码来缩放、旋转和倾斜我的 gui。但我想要一个看起来像在背景图像上的屏幕上的 gui,并且该图像具有透视性。这意味着我需要将平行线映射到非平行线。

我对非仿射变换的理解不是很好,但我的主要障碍是我不知道 GUI.matrix 中的所有其他元素是什么。

基本上,目前,我有一个功能transformationFunction(),当我这样做时

我的 GUI 元素位于“虚拟屏幕”上,该屏幕相对于我的实际屏幕进行了缩放、旋转和剪切。但我真正想要的是

这不保留并行性,允许我拥有一个梯形的 GUI(例如)。GUI.matrix 的 16 个元素中必须有足够的信息才能做到这一点,我只是不确定这些信息是如何构成的。

0 投票
0 回答
260 浏览

intrinsics - 图像到世界投影

我有来自两个不同相机的同一场景的 RGB 图像和 8 位深度数据,需要在 3D 空间中生成点云。

我用这篇论文来了解如何做到这一点。

如方程式中所述。1 我们可以在图像中找到一个像素的世界点的非齐次坐标,如下所示,

在此处输入图像描述

方程。图 5 显示了如何找到 lamda1,如下所示,

在此处输入图像描述

然后为了根据深度图像中的 8 位深度值找到真实的深度值,我使用了以下公式。4 从这篇论文中, 在此处输入图像描述

因此,由于我使用了投影矩阵,因此我希望从两个摄像机的数据生成的两个点云彼此对齐,但是点云彼此不重合并产生了尴尬的结果。有人能指出问题出在哪里吗?

0 投票
1 回答
1023 浏览

opengl - 创建 OpenGL 投影矩阵以剪切对象

我正在尝试渲染一个盒子,其中近面与显示器的角落完全对齐,但其余部分可以剪切(透视)有点像视差效果。基本上和这个一模一样。

我发现将我的投影矩阵乘以这个剪切矩阵会产生正确的效果:

然而,视图体积似乎在体积中心周围发生剪切,因此一旦您开始旋转,盒子的正面就会在显示区域之外摆动。

也许我可以改变模型或视口来补偿,但这似乎是作弊。这可以用正确的投影矩阵来完成,还是有一种好方法来计算需要应用于模型视图矩阵的其他一些平移?

0 投票
1 回答
1650 浏览

java - LWJGL 投影矩阵 - 什么都没有发生

目前,我正在尝试在 LWJGL 中创建一个 Camera 类,但我遇到了投影矩阵的问题。出于某种原因,当我尝试将顶点乘以投影矩阵时,屏幕上什么也没有出现。

相机类

主班

顶点着色器

ShaderProgram 类

当我运行它时,我创建的 VBO(一个三角形)不会出现,但是当我将投影矩阵排除在顶点着色器的乘法之外时,它运行得很好。我错过了什么吗?

0 投票
1 回答
955 浏览

machine-learning - 为什么线性变换可以提高高维数据分类的准确性和效率?

设 X 为 m×n(m:记录数,n:属性数)数据集。当属性数 n 较大且数据集 X 有噪声时,分类变得更加复杂,分类精度降低。解决这个问题的一种方法是使用线性变换,即对Y=XR进行分类,其中R是n×p矩阵,p<=n。我想知道线性变换如何简化分类?如果我们在 X 有噪声时对转换后的数据 Y 进行分类,为什么分类精度会提高?

0 投票
1 回答
500 浏览

opengl - OpenGL:从帧缓冲区对象加载渲染纹理

我正在对一个framebuffer对象进行两次模糊处理。为了确保在 中FBO,整个场景都被我试图模糊的图像覆盖。这是过程。

  1. 我已经设置了FBO需要模糊的图像尺寸。
  2. 我正在Orthographic Projection使用以下函数(称为 as setupOrtho(FBO's dimensions) )设置一个:

    glViewport(0, 0, w, h) glMatrixMode(GL_PROJECTION) glLoadIdentity() glOrtho(0,1,0,1,-1,1) glMatrixMode(GL_MODELVIEW) glLoadIdentity()

  3. 使用此投影绘制到FBO。解除绑定FBO(回到屏幕)。
  4. Perspective View通过调用 setupPerspective(window's dimensions)并将glOrtho上面的内容替换为来切换到glFrustum

如果我绘制简单的白色四边形,则视图切换按预期工作。一个四边形正在绘制,Orthographic Projection另一个正在绘制中Perspective View。现在从FBO(let id be RENDEREDTEXTURE) 获取渲染纹理。

RENDEREDTEXTURE如果我在Orthographic Projection我的主场景中绑定,它会显示模糊的图像。如果我将它绑定到Perspective View我的主场景中,之前可见的白色四边形(在 中绘制Perspective View)就会消失。

解决方案:作为答案发布。

注意:使用纹理时永远不要忘记 MIPMAP 生成。

这里可能是什么问题?

请建议任何替代方法,以便在 中FBO,只有我要处理的图像可见(为此我进行了正交投影),并且在主场景中,处理后的图像就像从图像文件加载的任何其他纹理一样.