首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenGL 学习系列---坐标系

三维坐标系 在立体几何的坐标系里面定义一个点的位置,需要 x、y、z 三个坐标轴的值,而在 OpenGL 中绘制 3D 物体也是需要的。...OpenGL 将定义好的坐标轴的值转换为实际绘制的坐标,需要经过五个坐标系统的转换。 如下图所示: ?...在进入不同的坐标空间之前,需要先了解 OpenGL坐标系OpenGL 是一个右手坐标系,正 X 轴在右手边,正 Y 轴朝上,正 Z 轴穿过屏幕朝向你。 ?...与之相对的就是左手坐标系,其正 Z 轴穿过屏幕朝向里面了。 局部空间 局部空间坐标是 OpenGL 绘制坐标的起点,接下来所有的转换操作都是在局部空间坐标基础上进行的。...在此之前要先来了解一下 OpenGL 中的 w 分量。 OpenGL 坐标系中除了 x、y、z 坐标外,还有 w 分量,默认情况下都是 1 。

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

OpenGL坐标系及坐标转换

坐标系OpenGL使用的是右手笛卡尔坐标系统,Z正轴垂直屏幕向外,X正轴从左到右,Y正轴从下到上。...世界坐标系以屏幕中心为原点(0, 0, 0),在OpenGL中用来描述场景的坐标。比如使用这个坐标系来描述物体及光源的位置。世界坐标系,是不会被改变的。...局部坐标系OpenGL还定义了局部坐标系的概念,所谓局部坐标系,也就是坐标系以物体的中心为坐标原点,物体的旋转或平移等操作都是围绕局部坐标系进行的,这 时,当物体模型进行旋转或平移等操作时,局部坐标系也执行相应的旋转或平移操作...OpenGL会将世界坐标系先变换到视坐标系,然后进行裁剪,只有在视见体之内的场景才会进入下一个阶段进行处理。...模型变换 模型变换是在世界坐标系中进行的。缺省时,物体模型的中心定位在坐标系的中心处。OpenGL在这个坐标系中,有三个命令,可以模型变换。

3.8K60

OpenGL学习笔记 (三)- 坐标系与顶点变换

这些操作都针对顶点数据进行,而且用处都是进行坐标变换,因此本节将会结合坐标系来讲解这些变换。 坐标系 在顶点的处理过程中,有若干过渡用的坐标系,这些坐标系可以清楚的表达坐标变化的过程,并简化部分计算。...以屏幕的正中心为 ;屏幕方向看为xOy直角坐标系;z为深度,由屏幕外向内递增。NDC是左手坐标系,而之前的坐标系都是右手坐标系。...齐次坐标系 齐次坐标就是较原先坐标增广1维度的坐标,而齐次坐标所构成的坐标系就是齐次坐标系。齐次坐标的一个重要的目的就是用于进行仿射变换。.../opengl/gl_transform.html) OpenGL Camera(http://www.songho.ca/opengl/gl_camera.html) OpenGL Projection...Matrix(http://www.songho.ca/opengl/gl_projectionmatrix.html) OpenGL Normal Vector Transformation(http

3.2K20

OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )

文章目录 一、OpenGL 状态机概念 二、OpenGL 矩阵概念 上一篇博客 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为...OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★ 进行了 OpenGL 渲染环境初始化 ; 本篇博客简单介绍 OpenGL 中的一些理论概念 ; 一、OpenGL 状态机概念 ----...世界坐标系 下 , 是一个三维的点 , 该三维的点需要将其显示到二维屏幕上 ; 模型视口 ( ModelView ) 矩阵 的作用就是将上述 世界坐标系中的三维坐标点 , 放到 视口中 , 视口坐标系是摄像机下的可见范围...; 摄像机位置 : 右手坐标系 : x 指向屏幕右侧 , y 指向屏幕上方 , z 穿过屏幕指向你 ; 摄像机默认放在上述 右手坐标系 原点 , 指向 z 的负方向 , 即看屏幕里面的方向 ; 因此绘制的时候...需要将要绘制的模型放在 z 的负方向上 , 如下代码是绘制坐标点的代码 : // 设置绘制点的位置 glVertex3f(0.0f, 0.0f, -0.5f); 其绘制位置是 右手坐标系

3.9K00

地理坐标系与投影坐标系的区别

1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为 地理坐标系统,是以经纬度为地图的存储单位的。...很明显,Geographic coordinate syst em是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作 呢?...投影坐标系统,实质上便是平面坐标系统,其地图单位通常为米。 那么为什么投影坐标系统中要存在坐标系统的参数呢? 这时候,又要说明一下投影的意义:将球面坐标转化为平面坐标的过程便称为投影。...即每一个投影坐标系统都必须要求有Geographic Coordinate System参数。 3、我们现在看到的很多教材上的对坐标系统的称呼很多,都可以归结为上述两种投 影。...直角坐标网的坐标系以中央经线投影后的直线为X轴,以赤道投影后的直线为Y轴,它们的交点为坐标原点。这样,坐标系中就出现了四 个象限。

1.9K60

OpenGL(五)-- OpenGL中矩阵的变换OpenGL(五)-- OpenGL中矩阵的变换

OpenGL(五)-- OpenGL中矩阵的变换 前言 照常提出几个问题,希望通过阅读可以找到答案。 对物体3维的2维投影进行位移,有几种方式? 模型视图矩阵代表了什么?...坐标系 前提:所说的坐标系都是基于3维空间的3维坐标. ? 1. 局部坐标系 图中LOCAL SPACE又称为本地坐标系。描述物体本身的顶点坐标。 2....世界坐标系 WORLD SPACE称为世界坐标系,记录物体在坐标系中的位置; 世界坐标系是由原点经过模型矩阵(Model Matrix)通过矩阵相乘变换得来的。 3....视图坐标系 在世界坐标系中观察者的位置不同,观察到的物体也会不同。目前物体还是处于3维坐标系中。 视图坐标系是有世界坐标系经过观察者矩阵(View Matrix)通过矩阵相乘变换得来的。 4....如果想要了解具体矩阵是如何计算的:3D数学 矩阵知识 矩阵栈 在计算时会发现这种计算会导致物体唯一无法重置,为了解决这种问题OpenGL提出了矩阵栈的概念。栈这个概念应该是很熟悉了吧!

2.1K10

常用坐标系

投影坐标系:墨卡托坐标系 地理坐标系:经纬度坐标系 常用坐标系 (一)WGS84坐标系     WGS-84坐标系(World Geodetic System一1984 Coordinate System...,熟称“火星坐标系”;另一种是在国标的02坐标系下进一步进行加密,如百度地图的BD09坐标系)。...(八)西安80坐标系     1978年4月在西安召开全国天文大地网平差会议,确定重新定位,建立我国新的坐标系。为此有了1980年国家大地坐标系。...(九)CGCS2000坐标系     2000中国大地坐标系(China Geodetic Coordinate System 2000,CGCS2000),又称之为2000国家大地坐标系,是中国新一代大地坐标系...以空间技术为基础的地心大地坐标系,是中国新一代大地坐标系的适宜选择。地心大地坐标系可以满足大地测量、地球物理、天文、导航和航天应用以及经济、社会发展的广泛需求。

1.9K20

【Android UI】Canvas 画布 ④ ( Canvas 坐标系 | Canvas 自身坐标系 | Canvas 绘图坐标系 )

文章目录 一、Canvas 自身坐标系 二、Canvas 绘图坐标系 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈 又称为 Layer 栈 ; Canvas...画布中 , 有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 自身坐标系 ---- Canvas 自身坐标系 , 指的是 自定义组件 View 或...X 轴 : 从 坐标原点位置 ( 左上角 ) 向右是 X 轴正半轴 , 向右为增加 ; Y 轴 : 从 坐标原点位置 ( 左上角 ) 向下是 Y 轴正半轴 , 向下为增加 ; 二、Canvas 绘图坐标系...---- Canvas 绘图坐标系 的 坐标原点 位置 , 可以认为是 Paint 画笔开始绘画的位置 ; Canvas 绘图坐标系 不是一成不变的 , 该 坐标系 与 Matrix 矩阵 相关 ,...当矩阵发生变化时 , 绘图坐标系也会进行相应的改变 ; Matrix 矩阵可以通过如下函数修改 : Canvas#translate() : 平移画布 Canvas#rotate() : 旋转画布 Canvas

1.2K20

【Cocos2d-x游戏开发】浅谈游戏中的坐标系

无论是开发2D还是开发3D游戏,首先必须弄清楚坐标系的概念。在Cocos2d-x中,需要了解的有OpenGL坐标系、世界坐标系和节点坐标系。  ...2.OpenGL坐标系   OpenGL坐标系又称为绘图坐标系,Cocos2d-x以OpenGLOpenGL ES为基础,所以支持的自然是OpenGL坐标系。...而IOS设备的屏幕坐标系(即UI坐标系)默认原点在左上角,X轴向右,Y轴向下(Y轴和OpenGL坐标正好相反)。...最后在绘制屏幕的时候,Cocos2d-x会把这些元素的本地节点坐标映射成世界坐标系坐标。世界坐标系OpenGL坐标系一致,原点默认在屏幕左下角,X轴向右,Y轴向上。...Node的position使用的就是父节点的节点坐标系,它和OpenGL坐标系也是一致的,X轴向右,Y轴向上,原点默认在父节点的左下角。

1.2K40

OpenGL蓝宝书第五章代码勘误以及惯性坐标系去解释模型变换:Pyramid.cpp

导致顶点和纹理的对象关系出现了相反内容 objectFrame中的朝向和OpenGL的默认朝向相反,getMatrix的操作会导致modelViewMatrix在无形中运行了一次180°旋转。...画刷事实上在很多其它情况下命名为模型的惯性坐标系。从世界坐标系到画刷(模型惯性坐标系)则是模型变换矩阵。模型顶点的绘制则由模型编辑器或绘制算法定义。 摄像机则影响了终于可视区域。...(有些情况下取用了相机的变换矩阵,模型惯性坐标系的原点是摄像机的当前所在位置)。...那么这个模型的惯性坐标系的原点和世界坐标空间的原点,只是是运行了移动是以于自身的为原点。关注点之中的一个:惯性坐标系(画刷)的默认朝向正方向是和OpenGL的世界坐标系一样使用的是右手坐标系。...OpenGL的st从左下角为原点,而内存中的像素操作是从左上角为原点。 此外还遇到一个问题,使用了release的模式库,导致无法正常调试。比方代码优化导致无法断点和查看到正确的数据。

19910
领券