opengl使用的是什么坐标系,opengl学习
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
目录
如何从不同角度看待问题的后果
物体坐标转换过程
世界坐标系
转换坐标需要几个矩阵。
模型矩阵
观察矩阵
投影矩阵
如何从不同角度看待问题的后果
考虑尝试把各种事物 融入一个小区域。在几个地方也有同样的情况。此外,空间中的事情可以从不同角度来看待。这个改如何实现呢?就像拖着老鼠的箱子一样整整360度的转弯怎么样?通过滑动齿轮放大,缩小,是什么原因导致了这一切的发生?
这些看起来复杂的效应是在代码一级实现的,方法是将初始物体的坐标乘以多个矩阵并改变其坐标,因为将物体放在不同位置或从不同角度看到物体可能被视为固定不变,改变物体的坐标。
彩色代码也相当容易,如下文所示。
gl_职位=项目*审查* 模式* vec4(posVertex,1.0f);是最重要的。
如你所见,矩阵正在成倍增加。
物品的坐标矩阵是vec4(pos Vertex, 1.0f)。
模型、视图和项目各有自己的矩阵。
因此,通过修改三个矩阵、模型、视图和工程,对象的坐标可能会改变,造成从不同角度看待物体的印象。
物体坐标转换过程
如上图所示,物体的坐标系统需要经过,局部坐标空间->世界空间坐标空间->观察者坐标空间->裁剪坐标空间->屏幕坐标空间的转换。
将物品的坐标改为过坐标系统的好处是,有些行动或计算变得更容易。例如,对物体的更新是在本地空间中指定的,而相对于其他物体的物体的物体操作只是在全球空间中说明,如果将物品的坐标改为一个过坐标系统,则某些操作或计算变得更容易。例如,对物体的更新是在本地空间中指明的,而对其他物体的物体的运行则只在世界空间中说明。
局部坐标是天体的原始坐标,可视为特定的立方体。
地球空间坐标可以比作将立方体放入空间。
观察员的坐标,无论是从摄影机的角度还是从一些观察员的角度。
作物坐标处理到-1至1.0之间的范围,在0中用于确定屏幕上显示的点。
最后,坐标正在转换为屏幕坐标 。我们将使用一种技术, 叫做“观景港变形”。视觉变换将定位在 - 1. 0 到 1. 1 。 0 范围坐标将转换为 glViewport 函数给定的范围 。之后,被更改的坐标将送交光栅。将其转化为片段。
世界坐标系
全球协调系统在任何时候都是固定的。 OpenGL 使用右手坐标。 以下是一个示例:右手规则 。X 是你的拇指Y 是你的食指Z 是你的中指如果你把拇指指向右边,把食指指向天空,你的中指指向你的背。我们的观察是在负半轴,Z轴的方向。
右手规则确定为旋转而定义角束的方向,即右手,指坐标轴正确方向的拇指,其余四个手指,即轴角的方向(即圆弧箭头指角增加的方向):
转换坐标需要几个矩阵。
上述程序表明,最后在显示器上方显示的屏幕空间是由当地空间利用以下三个矩阵改变的:
将地方坐标转换为全球坐标的模型矩阵
将世界坐标转换为观察坐标,使用矩阵。
项目矩阵将观察者的坐标转换为剪报坐标。
我们所要做的就是提供这些矩阵。
模型矩阵
模型矩阵可以实现目标转换、缩放、旋转等等。
如果我们把所有项目都添加到节目里它们极有可能散布在世界最初点的地球周围(0,0,0)。这不是我们所期望的。我们想为每个项目指定一个职位因此,它们可能融入更大的环境。世界空间的坐标,像他们的名字一样,指向顶点相对于世界其他地区的位置(游戏)。如果你希望在世界各地传播各种物品(特别是如果这些物品是真实的),您希望项目在那个时候更改 。该项目的坐标将通过模型矩阵(模型矩阵)从当地空间转换为全球空间。
基于QT的代码实现
前一代码生成一个模型矩阵,使项目能够移动、缩放和旋转。
观察矩阵
旋转场景通过一系列位置组合和旋转组合平整,使一个特定物品移到照相机前部,并在观察矩阵中保存组合。
这里很困难,但是有强大的矩阵转换是有用的, 因为只要我们可以描述摄像头的坐标, 我们就可以获得一个观察矩阵, 任何坐标, 并且通过乘法转换为观测矩阵空间。
因此,你只需要提供摄像坐标,以获得观测矩阵,再乘以全球协调系统坐标和观测矩阵,然后将其翻译成相机坐标。
如果坐标空间被三个垂直(或非线性)轴所定义,使用这三个轴和一个平面矢量,您可以构建一个矩阵。您可以将这个矩阵乘以任何矢量, 将其转换为坐标空间 。这正是书At 矩阵所做的。我们现在有三个垂直轴和摄影机空间坐标我们可以按照这些步骤制定我们自己的书目矩阵表:
R 表示向右矢量,U 表示向上矢量,D 表示方向矢量。P 表示相机位置矢量。
作为一个观测矩阵,这个 LookAt 矩阵在将全世界坐标转换为新指定的观测空间方面可能极为高效。
看镜头
基于QT的代码实现
为了生成观测矩阵,该函数需要一个摄像头位置、一个目标位置和一个向上矢量。
摄像头的位置是直截了当的。相机的位置只是一个矢量,指向摄影机在世界空间的位置。
目标位置、目标位置和摄像头位置是世界空间中指向目标的所有矢量。
向上 向上 向上 向上 向上 向上 向上 向上 世界坐标方向
向上( 0.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
向上( 0.0, 1-1. 0, 零. 0, 即 Y 轴为 1, 其余为 0 。 这表示头部向下, 脸部向下倾斜 。
上升矢量 (1) 零零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零 零
投影矩阵
OpenGL预计所有顶层坐标将在特定范围内被切断,而不是在该范围内。
这一坐标范围由预测矩阵界定。
预测矩阵有两个预测矩阵:正预测矩阵和预测预测矩阵。
预测矩阵由两部分组成:正面预测矩阵和截面预测矩阵,它们代表着遥远和看起来较小的生命。
正射投影
透射投影
预测矩阵将修改每个顶点的 W 值,并将指定的平板头区域绘制为禁区。顶点的每个部分将按观察者远处的w 值除以,顶点的值越大越远,顶点的值越小,顶点的坐标就越小。
基于QT的预测矩阵表
与代码一样,投影矩阵很容易创建。
对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起。切割空间的大小只能由这个平板头决定。并且将会受到裁剪。直观的平头是一个不均匀的盒子。本框内的每个坐标与作物面积的点相对应。举个例子来说明一个目光平坦的头部:
fov 值由第一个参数定义。它被称为视野领域。它们还决定观察区的面积。如果你想创造真正的观察效果默认值是45,但是,如果你想要一个世界末日, 你可能会增加价值。宽比由第二个参数决定。以眼睛的优雅和丰厚的收获发誓,第三和第四项参数界定了头部放大的近距离和远距离边界。我们通常设置它到1英尺左右。离这里有一百英里远,0英尺远近地平线和远地平面的所有山峰以及平头都得到了代表。
XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com
相关推荐