问题标签 [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.
java - 将正交相机整合到现有的 java 游戏中
早些时候发布了一些类似的东西。这是一个跟进。我有一个以前存在的 java 游戏正在进行中。它大约完成了 95%。如果我安装了 libGdx,我可以使用以前存在的 java 代码和 LibGDX 的正交相机来创建一个 android 应用程序吗?我打算只使用相机来调整屏幕大小,使其适合手机。我不会使用 spritebatch 等其他任何东西。有人有这方面的经验吗?
c++ - 如何使用 glm 为 glsl 设置正交视图?
我正在尝试使用 glm 设置正交视图矩阵并将其传递给 glsl。这张海报也有同样的问题,我希望能够渲染距离相机更远的像素,但是当它们不是 1.0 距离时它们会被剪裁。
MVP 矩阵的设置如下:
我可以看到应用了平移和旋转的四边形被渲染,但是当顶点在 z 轴上除 -1.0f 之外的任何地方时,当我希望它绘制从 -1.0 到 -1000.0 单位的任何东西时,它们不会被绘制,如调用 glm::ortho。有人知道如何实现吗?
android - 我应该在正交相机上使用什么相机视口宽度和高度
我是游戏编程和 Libgdx 的初学者。我真的很困惑我应该使用什么相机视口大小。在一些文章中,我发现他们使用了 480x800,这与目标设备大小相同。在一些文章中,我发现使用米为 5x5 米。
那么哪种方法更好以及如何(如果您可以提供一些好处)。如果我将米单位用于相机视口,那么首先映射的是宽度或高度。
如果我将 5x5 米用于 480x800 像素设备,那么世界的可见区域
高度 = 5 米 = 480 像素,
宽度 = 800/480 * 5 = 8.33 米
或
宽度 = 5 米 = 800 像素,
高度 = 480/800 * 5 = 3 米
是否正确计算了可见世界的大小,首先使用还是第二次使用。
当他们开始在任何地方使用仪表而不是像素来表示大小时,我感到很困惑。像演员大小是 1x1 米,即使它只有 64x64 像素。对我来说,估计位置和大小真的很困难。
请链接任何关于相机和相机单元的好文章。
java - glOrtho 参数对应什么?
我最近开始使用 LWJGL 并注意到该glOrtho
方法采用参数 left、right、bottom、top 并且无法弄清楚这些对应于什么。
当我注意到这一点时,我很困惑
是一样的
我是否正确地说这些代码片段是相同的,如果是,为什么?
3d - 3D 形状 libgdx 的正交投影
我正在实现这个简单的教程
blog.xoppa.com/basic-3d-using-libgdx-2/
但试图用正交相机替换透视相机。
但是,我在理解相机位置的工作原理方面遇到了一些问题:
我补充说
我得到一个非常小的正方形。如果我改变立场。
我什么都看不到,我想知道为什么正交相机应该忽略 z。
基本上我需要的是创建一个 3D 形状并同时在两个不同的视图中显示它,一个使用透视图,另一个使用正交相机。
谢谢!
这是完整的代码
delphi - 在 FireMonkey 中创建正交投影矩阵
我正在使用 FireMonkey 创建一个 3D 场景,效果很好:相机设置,在下图中,三个拉伸的立方体显示了三个轴(红色 X、绿色 Y、蓝色 Z。)
FireMonkey 中的普通 3D 透视图 -
Projection
是pjCamera
.
但是,这是一个透视 3D 场景,我想要一个正交 3D 投影——也就是说,对象的大小不会随着距离的增加而减小。(最终的想法是使用它来显示 3D 等距视图。) FireMonkey 似乎没有正交投影代码 -pjCamera
转换为使用透视矩阵。
我根本不需要透视 3D 视图,因此通过用创建正交矩阵的方法替换透视矩阵方法来解决这个问题。也就是说,TContext3D.GetProjectionMatrix
(获取透视矩阵)调用MatrixPerspectiveFovRH
计算透视矩阵:
我将其替换为对正交矩阵的调用:
其中zn
= 1 和zf
= 1000。 FWidth
是以像素为单位的视图宽度(例如 320)和FHeight
以像素为单位的高度,例如 240。
这最初似乎可以正常工作,尽管离物体比我预期的要远:
问题是渲染图像似乎不再随相机位置而变化。我已经验证了世界视图矩阵的计算方式相同(即不受我的更改影响),但是当我将相机移近(0,0,0)时,可见对象会被修剪,但渲染图像本身不会改变。例如,在这里我将相机移动到非常靠近 (0,0,0) 的位置,这是相同相机位置的透视图和正交渲染图:
显然,我计算正交投影的方式有问题,但我不知道。
- 我确实知道更改正交计算中使用的宽度和高度似乎会使对象越来越近 - 较小的宽度和高度会使它们更靠近屏幕。
- 我相当确定正交矩阵设置应该是正确的 - 尽管显然这是错误的:)
- 虽然它在底层使用了 DirectX,但透视矩阵是右手矩阵,所以正交矩阵也应该是。
我已经阅读了很多关于如何设置正交矩阵的内容,但显然不是正确的东西。例如:
- 做
width
并height
表示屏幕宽度和高度,或其他东西 - 例如截头锥体?假设它们是显而易见的,我读到的任何内容都没有解释这些是什么。 - 如果它们是其他东西,我可以从哪里提取它们的值?如果允许计算,我可以从透视矩阵中提取它们吗?
谢谢您的帮助。
javascript - three.js 正交相机文字
我正在尝试在我的常规相机顶部设置一个正交相机以用作平视显示器。我似乎无法显示任何文本,这是我的代码:
java - 2D 游戏中的 LWJGL HUD
所以我正在用 LWJGL 用 Java 编写一个 2D 游戏。我的游戏循环中有我的正射相机,并将其设置在我想看到的位置。现在,当我想画一个 HUD 来显示我的钱等时,我可以给它一个绝对坐标,这样它就是我地图的一部分,我可以滚动离开我的 HUD(这对于 HUD 绝对没有意义) ,或者我可以将我的 HUD 矢量添加到我的相机左下角矢量。最后一个解决方案的问题是,如果我移动我的相机,我的 HUD 不会完美更新,你会看到它追逐它的实际位置。
所以我的问题是:有什么方法可以在第二个“层”中设置相对于我的屏幕的固定位置?我见过一些人只使用 gltranslate 来移动相机,但我想现在改变它可能需要做很多工作,所以我想保留我的正射相机。
编辑:
这就是我的 Graphicsloop 的样子,但它仍然无法正常工作:
unity3d - Unity中根据屏幕分辨率调整Camera PixelRect
我正在 Unity 中创建一个简单的 2D 游戏。游戏有一个子窗口。为了创建子窗口,我添加了一个辅助摄像头。因为我希望子窗口显示屏幕的一小部分,所以我调整了它的 PixelRect 属性。
现在,即使我放大或缩小屏幕,我的子窗口的比例保持不变。但是,我希望我的子窗口根据我的屏幕大小放大/缩小。问题是,我的子窗口有一个“边框”。边框会随着屏幕调整,但我似乎无法用实际的相机视图来做到这一点。
如何使用其 pixelRect 属性使我的相机适应其边框的大小/比例和位置?
基本上,无论屏幕大小如何,我都希望我的相机视图始终适合“边框”。
webgl - WebGL 正交相机
有人可以帮助我使用以下代码:
完整源http://jsfiddle.net/bepa/2QXkp/
我试图用正交相机显示一个立方体,但我看到的只是黑色。立方体应位于 (0, 0, 0),相机位于 (0, 0, -40) 并注视 (0,0,0)。
对于所有矩阵变换,我使用 gl-matrix 2.2.0。
编辑:
这工作正常:
这不起作用: