问题标签 [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 回答
779 浏览

android - 应用正交投影或平截头体影响归一化坐标?

我知道归一化坐标应该是-1(左)和+1(右)和-1(底部)和+1(顶部)

像这样:

在此处输入图像描述

但是在应用这个之后:

从我的 onSurfaceChanged 方法

这在我的 onDrawFrame 方法中

(然后,我将 mMVPMatrix 传递到我的自定义类的 draw 方法中,在该方法中它被旋转和翻译)。

但是,我的坐标似乎发生了变化——大致是这样的:

在此处输入图像描述

如您所见,x 坐标有所改变,-1 和 +1 不再是屏幕的边缘(在我目前使用的设备上,外边缘变为 -1.7 和 +1.7)

Y 坐标保持不变。

如果有人能指出我哪里出错了,将不胜感激?我需要它应该是-1到+1。

谢谢

0 投票
1 回答
748 浏览

c# - XNA:正交窗口调整大小而不拉伸

一段时间以来,我一直在为 Windows 开发一个游戏项目。我曾经有一个静态的 1600 x 900 分辨率,对我来说效果很好。但对于我的一些 Beta 测试人员来说,情况并非如此。

这让我开始研究基于 XNA 的游戏中的分辨率独立性。我经历了很多虚拟分辨率系统,它们在 RenderTarget2D 上绘制所有内容并拉伸它以适应窗口大小。但这对我不起作用。

我想知道的是如何计算与泰拉瑞亚使用的相似的投影矩阵。对于那些不知道它在 terraria 中如何工作的人(无论如何,现在我认为它过去有所不同)是,一旦你调整了游戏窗口的大小,你会在屏幕上看到更多的东西。

目前我的投影矩阵是这样定义的:

这适用于窗口大小水平变化时。我从侧面看到更多的东西,一切都很好。但是一旦我垂直调整窗口大小,所有东西都会夹在一起。

有没有办法计算投影矩阵,以便我可以水平和垂直调整窗口的大小?

编辑:

我正在间接使用相机类。一切都在 Farseer Physics 坐标空间中,当某些东西被绘制到屏幕上时,它会通过 Viewport.Unproject() 进行转换。

解决方案

正如 gareththegeek 在所选答案的评论部分中指出的那样,我所追求的特定投影矩阵是这样形成的:

0 投票
1 回答
99 浏览

c++ - 0、800、600、0 与 0、800、0、600 OpenGL

在 800 x 600 窗口中,设置 OpenGL 矩阵的最常见方法似乎是glOrtho(0, 800, 0, 600, 1, -1)而我总是使用glOrtho(0, 800, 600, 0, 1 , -1)。为什么有些人更喜欢我展示的第一种方式而不是第二种方式?

0 投票
1 回答
5444 浏览

opengl - OpenGL 3.0+:正交投影矩阵

我终于毕业了,可以在 OpenGL 中使用我自己的矩阵,并且在设置正交投影时遇到了一些问题。目前,我有一个方法,它采用左、右、上和下并将它们扔到这样的矩阵中(从这里):

然后我将该矩阵乘以投影矩阵,我绝对没有得到任何有意义的输出。这让我相信我是 1). 没有使用正确的正交矩阵,2)。不将正交矩阵乘以正确的矩阵,或 3)。两个都。

我怀疑它是 2,因为每当我使用已弃用的函数时,当当前矩阵为 GL_PROJECTION 时,就会调用 glOrtho。那么,究竟如何从左、右、上、下值计算正交矩阵呢?

0 投票
3 回答
1795 浏览

c# - 如何在 XNA 中计算 Oculus Rift 的 3D 视图矩阵?

这是我的相机课

我为左眼和右眼创建了一个相机。一切正常,Oculus 在每只眼睛中显示一个单独的图像。问题是 Oculus 是模糊的,我的大脑并没有将两个视图“合并”成一个图像。我试图稍微偏移右眼的图像,但我找不到两只眼睛的正确定位。任何人都可以帮忙吗?

0 投票
2 回答
7896 浏览

javascript - 正交相机和使用光线投射选择对象

我在使用 raycaster 使用正交相机选择对象时遇到了一些困难。不过,当我使用透视相机时,我对此没有任何问题。在两者之间切换时我唯一改变的是类型相机。

我可以在正交视图上选择面,但它仅与我在屏幕上单击的位置松散相关。当我可以在远离对象的地方单击时,它仍然会回来,就好像它击中了靠近其中心的对象一样。

关于我在这里缺少什么的任何想法?

我的大部分代码都基于此示例,并希望从我的代码中获得非常相似的结果。(我引用的这个例子使用透视相机)

任何帮助深表感谢

我希望这是一些我还不知道的简单事情。

三.js r60

0 投票
2 回答
9180 浏览

unity3d - 聚焦于特定点的正交相机变焦

我有一个正交相机,想实现一个特定点的缩放功能。即,假设您有一张图片并且想要缩放到图片的特定部分。

我知道如何放大,问题是将相机移动到具有所需焦点区域的位置。

我该怎么做?

0 投票
1 回答
535 浏览

java - 如何在 LWJGL 中渲染 3D 透明的 2D 纹理

我一直在尝试将一些纹理渲染为 3D 世界前的 HUD 的一部分。我已经设置了一些方法,以便可以轻松地在 2D 和 3D 之间切换(setPerspective() 和 setOrtho())。大多数纹理都可以正常工作并显示出我想要的效果,但是我在处理包含透明度的纹理时遇到了一些困难。纹理的透明部分不会变成透明的,而是与背景颜色相同。

我在某处读到我必须先渲染背景,但是当我这样做时,由于某种原因,HUD 似乎根本没有出现。

是的,我的代码中确实有这个;

0 投票
2 回答
945 浏览

java - 如何根据平台确定正交相机的宽度和高度?

我目前正在研究如何使用 libgdx,现在我正在努力解决正交相机的想法。我看过一段视频,解释了透视相机和正交相机之间的区别,现在我想我已经准备好了解代码了。

如何找出应该为正交相机的视口设置的尺寸(高度、宽度)?

这取决于我的平台吗?(移动设备、台式机等)

视口是否需要一定的形状?(正方形或长方形)

0 投票
1 回答
445 浏览

c++ - glOrtho() 没有像我想象的那样工作

我试图让窗口中的一个视口显示茶壶的正交投影。

这是我想glOrtho用来绘制茶壶正交视图的代码部分。首先,我glOrtho是否正确使用?我想我是,但我没有得到我想要得到的东西,所以我怀疑我是。

为什么我所拥有的东西不起作用,我将如何解决它?

如果我应该放在glOrtho一个特定的地方,那么知道在哪里会很有帮助。

另外,由于我应该有几个视口,那么所有视口都会有一个正交投影吗?

这是我的整个程序代码片段取自第 192-204 行