问题标签 [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.
opengl - 从透视到正交矩阵
我有一个简单三角形的场景。我正在使用透视投影。我有我的 MVP 矩阵设置(在 GLM 的帮助下),如下所示:
一切正常,我可以更改相机的值,三角形仍然正确显示。
但我想使用正交投影。当我将投影矩阵更改为正交时,它的工作方式无法预测,我无法显示三角形,或者我只在屏幕的角落看到它的一小部分。要使用正交投影,我这样做:
虽然我没有更改视图和模型矩阵中的任何内容。而我只是不能正常工作。
我只需要朝着正确的方向推动,我做错了吗?我错过了什么,我应该怎么做才能正确设置正交投影?
PS我不知道是否需要,但这些是三角形的坐标:
opengl - 如何找到等效于正交矩阵但不在 xy 平面中时给出透视的投影矩阵?
我在一个使用 gluOrtho2D() 设置的矩阵执行所有渲染的程序中乱七八糟。我想做的是围绕 y 轴 (0,1,0) 旋转特定纹理,以便看起来原始矩阵是由 gluPerspective() 提供的。我意识到这对于正交投影矩阵是不可能的,我将不得不设置一个新的透视投影矩阵。我希望我绘制的纹理看起来与使用正交矩阵绘制时完全相同,除非有时我将它们围绕 y 轴旋转。
总结一下:
当在 xy 平面上绘制形状时,如何找到与给定正交矩阵等效的透视投影矩阵,但在不在 xy 平面上时给我透视?
qt - 在 glOrtho() 视图中绘制立方体?
我正在用 OpenGL 开发一个 4 拆分查看器。一个视图是透视图,其他视图用于正交投影(前、左、上)。
我写了一个从 (-1,-1,-1) 到 (1,1,1) 绘制立方体的方法,它在透视图中效果很好,但我无法让它在我使用的视图中工作glOrtho(...).
现在我这样设置:
有趣的是,视图根本没有显示立方体。我在 OpenGL 中为视图实现了一个边框,但它可以正确显示。
我正在使用 Qt 并编写了 QGLWidget 的派生类。
opengl-es - Translate ortographic to perspective
I have two points that describe line, problem is that i know coordinates of one for orthographic matrix (ie 150x250x0), and coordinates for second for perspective matrix (0.5x0.5x20.0f). I would like to translate orthographic coordinates to perspective so i can draw a line using glsl shader :). How to accomplish this task?
c# - OpenGL/SharpGL - 仅在正交投影的近表面上的点?
当您为每个点使用三个维度创建点并使用正交投影来查看这些点时,是否会出现仅显示 -near 表面上的点的原因?例如,如果您使用 (the SharpGL method) gl.Ortho(0, width, height, 0, -10, 10)
,则只有 z=10 处的点(因为近表面位于 -10 处)实际上会显示出来。
我目前正在使用 SharpGL - 但我希望我遇到的问题不在于那个特定的实现/库。
编辑:我在下面添加了演示问题的代码。请注意,此示例需要 SharpGL,实际上是对当前 SharpGL 源代码附带的 WPF 示例项目的修改(原始示例项目称为 TwoDSample)。
该项目需要 MainWindow.xaml 和 MainWindow.xaml.cs。这是xml:
这是后面的代码:
opengl - OpenGL:为什么在正交投影中远近都是负数?
为什么在正交投影中近坐标和远坐标被解释为负数?它只是习惯性的还是真的有任何好处?
opengl - 使用 VBO 在 OpenGL 中进行简单的 2D 剔除
出于性能原因,我正在考虑使用 VBO 而不是立即模式。我正在创建一个充满精灵的 2D 正交场景。我不想绘制屏幕外的精灵。我通过根据屏幕尺寸和相机位置检查它们的位置来做到这一点。
在即时模式下,这很简单;每个精灵都有绘制方法。使用 VBO 这似乎很重要;我一次渲染 VBO 的整个部分。我(我能想到的)没有办法选择不在屏幕外的渲染精灵。
opengl - 在opengl中绘制顺序排序
我有一个正交投影,我正在绘制精灵。问题是精灵按照 OpenGL 中绘制的顺序出现。我想为它们分配一个 Z 值,并让它们以排序的 Z 顺序绘制。我怎样才能做到这一点?
c++ - C++ OpenGL 从 2D 切换到 3D
我在 C++ Visual Studio 2008 Forms 应用程序中使用 OpenGL,当布尔设置为真/假时,我希望 GL 控件在 3D 和 2D 之间切换。
3D 绘图工作正常,2D 绘图工作正常,从一个切换到另一个时出现问题。因此,如果我在 2D 中启动应用程序绘图,它可以完美地工作并且与 3D 相同,但是如果我在运行时更改布尔值,它将不会绘制任何东西。
这是我从一个更改为另一个的代码。
我不知道做错了什么,但我想我没有清除一些矩阵或其他东西,因为就像我之前所说的,当变量draw3D==true
在开始时它完美地绘制并且当变量draw3D==false
在开始时它完美地绘制在 2D 中,但运行时的更改使其无法正常工作。
canvas - Three.js 画布粒子不使用 OrthographicCamera 渲染
如果我使用 Three.js canvas_lines 演示并将透视相机替换为正交相机:
尽管出现了线条,但它会导致粒子不再渲染。这是 Three.js 中的错误还是我对正交投影的理解?
更改前的粒子图像:
切换到OrthographicCamera
:
(注意粒子丢失和线条在空白处终止)