问题标签 [orthographic]

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 回答
2230 浏览

camera - LibGDX - 正交相机平移和旋转

我正在使用正交相机在 LibGDX 中制作 2D 自上而下的游戏。相机应该跟随玩家,与他一起旋转等。我也在使用 Box2D,这意味着每个精灵都通过模型坐标和角度进行更新。我想用相机做同样的事情。

这段代码:

只给我相对平移和旋转 - 相对于相机的当前位置和角度。尽管这可行,但我认为这不是最好的,是吗?:

是否可以使用正交相机更顺畅地进行操作,还是应该使用 classis 3D 相机?

0 投票
2 回答
578 浏览

c - 正交相机投影矩阵

目标

我正在尝试使用 OpenGL 实现用于 2D 渲染的正交相机。

问题

没有任何东西被绘制到屏幕上。

设置

我使用此调用更新相机的每一帧:

updateCamera 方法具有以下声明:

相机结构只是有一个float opm[4][4]代表矩阵的成员。

updateCamera 方法具有以下实现:

如果我使用单位矩阵而不是上面的单位矩阵,一切都会正确绘制。也许我的矩阵计算有问题?

0 投票
1 回答
482 浏览

android - OpenGL ES 1.0 Android 正交投影:模拟器中没有任何内容(但适用于手机)

这个问题让我完全一无所知:我在透视投影中渲染一个 OpenGL ES 场景,并在正交投影中使用一些 2D 叠加。在我的手机(Galaxy S4)上,它完美无缺。但是,在模拟器上,我什么也没看到。我已将代码简化为仅设置正交投影并绘制三角形。你们中的任何人都可以阐明这里可能存在的问题吗?再次:在手机上,此代码显示一个白色三角形,在模拟器上,我什么也看不到。为每一帧调用以下(简化的)代码。

(当然,每帧都重新创建 vertexBuffer 很愚蠢——但如果我每帧都创建它,它不会改变(视觉)结果)。为了完整起见,这里是 openGL 的初始化代码:

手机的分辨率为 1920 x 1080(windowWidth/windowHeight),而模拟器使用的是 1024x600。

我尝试过的一些事情(没有成功):

  • 改变近/远剪裁平面
  • glOrthof 的归一化坐标为 0..1(并相应地修改了顶点坐标)
  • 使用 Matrix.orthoM 而不是 GLES10.glOrthof 来生成矩阵
  • 为三角形使用了不同的尺寸

有什么见解吗?

Ps:是的:这是严格意义上的 GL ES 1.0——我可能会使用 1.1——但我还没有准备好使用着色器 :)

0 投票
1 回答
407 浏览

box2d - LibGDX - 设置相机时发生闪烁

我正在尝试将我的程序划分为模型和视图。起初,我根据输入控制了一台相机,一切正常。现在我决定创建一个CameraModel类并根据CameraModel. 当我创建一个新的 Box2D Body 时出现问题 - 然后屏幕闪烁。也许这不是相机问题,但仅在我使用此代码时才会发生:

...而不是这个:

确切地说,只有当我使用这条线时camera.position.set(model.getPosition());。所有其他属性都设置好了。什么可能导致闪烁?

0 投票
2 回答
1257 浏览

three.js - 正交相机和pickRay?

我试图实现一个功能来选择和移动正交相机的舞台组合中的对象。

我想获得与以下相同的示例:http ://threejs.org/examples/webgl_interactive_draggablecubes.html

但不是透视相机。

我已经更换了:

和 :

并替换了这个:

这样 :

但是,它似乎还不足以运行。

那么,它缺少什么?

是否可以将投影仪和射线与 OrthographicCamera 一起使用?

谢谢。

0 投票
1 回答
2082 浏览

java - LibGDX - 设置背景图像(静态)

我这样设置背景图像 -

batch.draw(Assets.back_sprite, 0, 0, ResX, ResY);

问题是当我移动相机时 -

camera.translate(2,0);

图像开始向后移动并最终消失,因为我在 (0,0) 处绘制它
并且相机以 (2,0) 的速度移动,这就是图像消失的原因。

  • 相机是正交的而不是透视的。

我怎样才能使图像保持静止并始终保持在那里?有任何想法吗?

提前感谢:P

0 投票
0 回答
292 浏览

java - 在屏幕上绘制 3D 正交

所以对于我正在处理的项目,我有一个 Cube 类来保存立方体的顶点。它保存 X、Y 和 Z 值。我需要一种在 2D 屏幕上绘制这些点的方法。(就 X 和 Y 而言)正交。我看过维基百科关于 3D 投影的页面,但很困惑。任何帮助将不胜感激。

注意:我这样做我是 Java,但可以相对轻松地从其他语言传输源代码。

0 投票
1 回答
319 浏览

opengl-es - Webgl - 更改视点三角形部分时消失

我正在关注 webgl 简介书籍(WebGL 编程指南:使用 WebGL 进行交互式 3D 图形编程)中的示例,但我无法理解为什么正交投影有助于解决这个特定问题。

其中一个示例让我们通过应用一些矩阵变换来改变我们查看 3 个三角形的“视点”。他们表明,如果我们将视点向右(+X)改变得足够多,三角形就会开始消失。这是本书网站上的确切 webgl 示例(按右箭头键旋转三角形): http: //www.magic.ubc.ca/webgl-pg/uploads/examples/ch07/LookAtTrianglesWithKeys.html

这本书说发生这种情况是因为“这是因为您没有正确指定可见范围(您实际可以看到的边界)。”

为了解决这个问题,他们首先将正交投影矩阵应用于每个顶点,然后解决问题。为什么这可以解决问题,矩阵变换如何导致以前不存在的东西现在可见?我在哪里可以找到关于为什么 webgl 选择不再显示三角形的完整解释?

0 投票
3 回答
6316 浏览

matlab - 正射校正算法;马赛克航空影像

我正在研究收集农场航拍图像(从直升机以垂直方式收集的图像)的方法,我想将它们拼接在一起以构建所覆盖区域的整个照片,然后我想运行分析。我假设图像将带有 [纬度,经度] 坐标,以帮助我确定放置图像的位置。

为了了解这项技术的问题,我尝试手动拼接从我的手机拍摄的我后院某个样本区域的照片。我体验到边缘通常看起来不一样,因为相机从不同的侧面或角度看到它们。我猜这是图像的失真,可能会通过正射校正(不完全确定)来修复。我快速创建了以下图片来帮助解释我的问题。

在此处输入图像描述

我对你的问题:

用于进行正射校正的算法/技术是什么?

哪些工具最适合我的需求:opencv、处理或 matlab 或任何其他可以轻松帮助校正图像和创建马赛克照片的工具?

在进行航空影像拼接和分析时还应考虑哪些其他问题?

谢谢!

0 投票
0 回答
961 浏览

graph - DirectX 11 中的绘图顺序

我正在 DirectX 11 中编写一个带有正交投影和动态索引和顶点缓冲区的小型 2d 引擎。深度缓冲区被禁用。要绘制图像,我使用两个三角形的四边形构建并在其上放置纹理。一切都很好,但绘图顺序存在问题。当我在同一个地方绘制图像时,显然是第一个绘制的。一切都在逆向显示!函数 ClearDepthStencilView、ClearRenderTargetView 和 Present 在实时循环结束时运行一次。我为我的英语道歉。请帮忙。

创建深度缓冲区

绘制图像(更新正在使用的纹理、顶点和着色器缓冲区)

绘制所有东西