CN105513138A - 一种面向OpenGL实现的坐标系统处理方法 - Google Patents
一种面向OpenGL实现的坐标系统处理方法 Download PDFInfo
- Publication number
- CN105513138A CN105513138A CN201510926416.0A CN201510926416A CN105513138A CN 105513138 A CN105513138 A CN 105513138A CN 201510926416 A CN201510926416 A CN 201510926416A CN 105513138 A CN105513138 A CN 105513138A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- matrix
- opengl
- cutting
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种面向OpenGL实现的坐标系统处理方法,主要解决了现有系统无法快速有效处理异常坐标的问题。本发明的具体技术解决方案的核心在于提供了坐标转换功能外,同时在平面裁剪模块增加辅助裁剪功能,保证用户输入的所有坐标能够进行正确处理,为图形处理产品的设计提供有效支撑。
Description
技术领域
本发明属于计算机图形学领域,尤其涉及一种面向OpenGL实现的坐标系统处理方法。
背景技术
坐标系统处理作为图形处理技术的核心和关键广泛应用于各型图形处理系统中,OpenGL接口虽已定义坐标系统转换形式,但未具体规定实现方式,英伟达、AMD等图形处理器芯片厂家都有其实现形式,但未对外公开。目前在公开资料或者专利中描述的坐标转换算法都无法处理全坐标空间,当输入在经过处理W小于等于0时,就发生处理异常。
本发明针对上述的处理异常,提供一种面向OpenGL实现的坐标系统处理方法,支持全坐标空间坐标的处理。
发明内容
本发明提供一种面向OpenGL实现的坐标系统处理方法,主要解决了现有系统无法快速有效处理异常坐标的问题。
本发明的具体技术解决方案是:
该面向OpenGL实现的坐标系统处理方法包括以下步骤:
1】用户输入模型空间坐标,将用户输入的模型空间坐标转换为眼睛空间坐标;
2】对眼睛空间坐标进行平面裁剪,输出裁剪后的顶点坐标信息;所述平面裁剪包括裁剪和辅助裁剪,裁剪用于实现OpenGL接口中glClipPlane所涉及的功能,辅助裁剪配置由投影变换参数决定,完成将投影变换处理后W小于等于0的顶点裁剪掉以确保到齐次坐标变换时所有顶点坐标信息W大于0;
3】对经步骤2裁剪处理所得的顶点坐标信息进行投影变换处理并输出;
4】对经步骤3投影处理所得的顶点坐标信息进行齐次坐标变换并输出;
5】对经步骤4齐次坐标变换处理所得的顶点坐标信息进行剪掉将OpenGL接口指定的可视区域之外的图元裁剪掉,然后将将顶点坐标信息转化为[-1,1]标准化空间坐标;
6】对经步骤5处理所得的标准化空间坐标转化到屏幕空间坐标。
上述步骤1中将用户输入的模型空间坐标转换为眼睛空间坐标具体采用矩阵管理和矩阵乘法处理;矩阵管理用于对模型视图矩阵更新、压/弹栈和逆矩阵管理;矩阵乘法完成对顶点坐标的模型视图矩阵乘处理。
上述步骤3中投影变换处理具体采用矩阵管理和矩阵乘法处理,矩阵管理用于对模型视图矩阵更新、压/弹栈和逆矩阵管理;矩阵乘法完成对顶点坐标的投影矩阵乘处理。
该面向OpenGL实现的坐标系统处理系统,包括依次连接的模型视图变换模块、平面裁剪模块、投影变换模块、齐次坐标模块、视镜体裁剪模块以及窗口变换模块,其中平面裁剪模块包括裁剪单元和辅助裁剪单元,裁剪单元用于实现OpenGL接口中glClipPlane涉及的功能,辅助裁剪单元用于将投影变换处理后W小于等于0的顶点裁剪掉以确保齐次坐标变换时所有坐标信息W大于0。
上述齐次坐标模块用于除去顶点坐标X、Y、Z分量中的W分量,以实现坐标整体缩放的功能。
本发明的优点是:
本发明以流水线形式,在平面裁剪阶段增加默认平面裁剪功能,使得整个坐标处理系统能够完全处理所有输入坐标。
附图说明
图1是本发明的功能框图;
附图明细如下:1-模型视图变换模块、2-平面裁剪模块、3-投影变换模块、4-齐次坐标模块、5-视镜体裁剪模块、6-窗口变换模块。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
OpenGL规定的坐标处理流程中,用户输入的模型空间坐标需经过模型视图变换、平面裁剪、投影变换、视窗变换最终转换为屏幕空间坐标;投影变换处理实现坐标变换到[-1.0,1.0]标准化坐标系,包括坐标的转换、透视除法和视镜体裁剪三部分。
但在透视除法时:W等于0无法进行处理,W大于0和W小于0坐标会映射到不同空间,OpenGL在处理过程中仅处理W大于0的情况;基于功能和性能考虑,本发明在平面裁剪阶段增加辅助裁剪平面,在平面裁剪阶段裁剪掉W小于等于0的情况,确保透视除法的输入顶点的正确性。
本发明提供的面向OpenGL实现的坐标系统处理方法包括以下步骤:
1】用户输入模型空间坐标,将用户输入的模型空间坐标转换为眼睛空间坐标;将用户输入的模型空间坐标转换为眼睛空间坐标具体采用矩阵管理和矩阵乘法处理;矩阵管理用于对模型视图矩阵更新、压/弹栈和逆矩阵管理;矩阵乘法完成对顶点坐标的模型视图矩阵乘处理;
2】对眼睛空间坐标进行平面裁剪,输出裁剪后的顶点坐标信息;所述平面裁剪包括裁剪和辅助裁剪,裁剪用于实现OpenGL接口中glClipPlane所涉及的功能,辅助裁剪配置由投影变换参数决定,完成将投影变换处理后W小于等于0的顶点裁剪掉以确保到齐次坐标变换时所有顶点坐标信息W大于0;
3】对经步骤2裁剪处理所得的顶点坐标信息进行投影变换处理并输出;所述投影变换处理具体采用矩阵管理和矩阵乘法处理,矩阵管理用于对模型视图矩阵更新、压/弹栈和逆矩阵管理;矩阵乘法完成对顶点坐标的投影矩阵乘处理。
4】对经步骤3投影处理所得的顶点坐标信息进行齐次坐标变换并输出;
5】对经步骤4齐次坐标变换处理所得的顶点坐标信息进行剪掉将OpenGL接口指定的可视区域之外的图元裁剪掉,然后将将顶点坐标信息转化为[-1,1]标准化空间坐标;
6】对经步骤5处理所得的标准化空间坐标转化到屏幕空间坐标。
该面向OpenGL实现的坐标系统处理系统包括依次连接的模型视图变换模块1、平面裁剪模块2、投影变换模块3、齐次坐标模块4、视镜体裁剪模块5、窗口变换模块6。
其中模型视图变换模块完成OpenGL规定的模型视图变换功能,实现将用户输入的模型空间坐标转换为眼睛空间坐标;其包含矩阵管理和矩阵乘法;矩阵管理用于对模型视图矩阵更新、压/弹栈和逆矩阵管理;矩阵乘法完成对顶点坐标的模型视图矩阵乘处理。
平面裁剪模块包含裁剪功能和辅助裁剪两部分,裁剪功能实现OpenGL接口中glClipPlane所涉及的功能,辅助裁剪实现将投影变换模块处理后W小于等于0的顶点裁剪掉,确保到齐次坐标模块时所有坐标信息W大于0。
投影变换模块完成OpenGL规定的投影变换变换功能,其包含矩阵管理和矩阵乘法;矩阵管理用于对模型视图矩阵更新、压/弹栈和逆矩阵管理;矩阵乘法完成对顶点坐标的投影矩阵乘处理。
齐次坐标模块完成物体的大小缩放功能,其实现顶点坐标X、Y、Z分量除以W分量。
视镜体裁剪模块完成将OpenGL接口指定的可视区域之外的图元裁剪掉,协同投影变换模块、齐次坐标模块实现将眼睛空间坐标转化为[-1,1]标准化空间坐标。
窗口变换模块完成[-1,1]标准化空间坐标转化到和屏幕空间坐标。
最后应说明的是,以上事实例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种面向OpenGL实现的坐标系统处理方法,其特征在于,包括以下步骤:
1】用户输入模型空间坐标,将用户输入的模型空间坐标转换为眼睛空间坐标;
2】对眼睛空间坐标进行平面裁剪,输出裁剪后的顶点坐标信息;所述平面裁剪包括裁剪和辅助裁剪,裁剪用于实现OpenGL接口中glClipPlane所涉及的功能,辅助裁剪配置由投影变换参数决定,完成将投影变换处理后W小于等于0的顶点裁剪掉以确保到齐次坐标变换时所有顶点坐标信息W大于0;
3】对经步骤2裁剪处理所得的顶点坐标信息进行投影变换处理并输出;
4】对经步骤3投影处理所得的顶点坐标信息进行齐次坐标变换并输出;
5】对经步骤4齐次坐标变换处理所得的顶点坐标信息进行剪掉将OpenGL接口指定的可视区域之外的图元裁剪掉,然后将将顶点坐标信息转化为[-1,1]标准化空间坐标;
6】对经步骤5处理所得的标准化空间坐标转化到屏幕空间坐标。
2.根据权利要求1所述面向OpenGL实现的坐标系统处理方法,其特征在于:所述步骤1中将用户输入的模型空间坐标转换为眼睛空间坐标具体采用矩阵管理和矩阵乘法处理;矩阵管理用于对模型视图矩阵更新、压/弹栈和逆矩阵管理;矩阵乘法完成对顶点坐标的模型视图矩阵乘处理。
3.根据权利要求1所述面向OpenGL实现的坐标系统处理方法,其特征在于:所述步骤3中投影变换处理具体采用矩阵管理和矩阵乘法处理,矩阵管理用于对模型视图矩阵更新、压/弹栈和逆矩阵管理;矩阵乘法完成对顶点坐标的投影矩阵乘处理。
4.一种面向OpenGL实现的坐标系统处理系统,包括依次连接的模型视图变换模块、平面裁剪模块、投影变换模块、齐次坐标模块、视镜体裁剪模块、窗口变换模块,其特征在于:所述平面裁剪模块包括裁剪单元和辅助裁剪单元,裁剪单元用于实现OpenGL接口中glClipPlane涉及的功能,辅助裁剪单元用于将投影变换处理后W小于等于0的顶点裁剪掉以确保齐次坐标变换时所有坐标信息W大于0。
5.根据权利要求4所述的面向OpenGL实现的坐标系统处理系统,其特征在于:所述齐次坐标模块实现顶点坐标X、Y、Z分量除以W分量,使坐标具备整体缩放的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510926416.0A CN105513138A (zh) | 2015-12-11 | 2015-12-11 | 一种面向OpenGL实现的坐标系统处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510926416.0A CN105513138A (zh) | 2015-12-11 | 2015-12-11 | 一种面向OpenGL实现的坐标系统处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105513138A true CN105513138A (zh) | 2016-04-20 |
Family
ID=55721090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510926416.0A Pending CN105513138A (zh) | 2015-12-11 | 2015-12-11 | 一种面向OpenGL实现的坐标系统处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105513138A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327886A (zh) * | 2020-03-05 | 2020-06-23 | 胡嘉君 | 3d光场渲染方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306391A (zh) * | 2011-09-20 | 2012-01-04 | 深圳Tcl新技术有限公司 | 基于OpenGL的倒影显示处理装置及方法 |
CN102722911A (zh) * | 2011-09-23 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种OpenGL模型变换的三维坐标获取方法及系统 |
US20150178977A1 (en) * | 2013-05-14 | 2015-06-25 | Google Inc. | Rendering Vector Maps in a Geographic Information System |
-
2015
- 2015-12-11 CN CN201510926416.0A patent/CN105513138A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306391A (zh) * | 2011-09-20 | 2012-01-04 | 深圳Tcl新技术有限公司 | 基于OpenGL的倒影显示处理装置及方法 |
CN102722911A (zh) * | 2011-09-23 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种OpenGL模型变换的三维坐标获取方法及系统 |
US20150178977A1 (en) * | 2013-05-14 | 2015-06-25 | Google Inc. | Rendering Vector Maps in a Geographic Information System |
Non-Patent Citations (2)
Title |
---|
DUOSI: "OpenGL基础图形编程", 《GOOGLE》 * |
天行健君子当不强而自息: "3D图形数学(2)", 《GOOGLE》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327886A (zh) * | 2020-03-05 | 2020-06-23 | 胡嘉君 | 3d光场渲染方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103793151B (zh) | 一种壁纸裁剪的方法及装置 | |
US20150045923A1 (en) | Material cutting optimization apparatus, system, and method | |
CN103777866B (zh) | 用于放大镜的数据编辑方法及装置 | |
EP2960866A2 (en) | Method and apparatus for creating curved surface model | |
CN107977346A (zh) | 一种pdf文档编辑方法及终端设备 | |
CN105528333B (zh) | 一种文档优化显示的方法和装置 | |
CN104866108A (zh) | 多功能舞蹈体验系统 | |
CN116152444B (zh) | 基于数字孪生的三维场景模型自动吸附方法、装置及介质 | |
CN109542398B (zh) | 一种业务系统生成方法、装置及计算机可读存储介质 | |
CN104461737A (zh) | 一种内存管理方法和装置 | |
CN104574461A (zh) | 图形建模方法和装置 | |
CN105513138A (zh) | 一种面向OpenGL实现的坐标系统处理方法 | |
CN104375793A (zh) | 一种嵌入式系统背景图更新显示方法 | |
CN105574917A (zh) | 一种用于3d模型的法线贴图重构处理系统及处理方法 | |
CN109461147B (zh) | 应用于移动终端的fov图片的病理标注方法及装置 | |
CN103065306B (zh) | 图形数据的处理方法及装置 | |
CN105654538A (zh) | 一种用于3d模型的贴图数据重构处理系统及处理方法 | |
CN106683033B (zh) | 一种乱序OpenGL接口处理方法 | |
CN105719335A (zh) | 一种地图图像渲染方法、装置以及车载终端 | |
CN104123748A (zh) | 基于屏幕空间中点光源实现实时动态阴影的方法 | |
CN107748644A (zh) | 一种截图显示方法和设备、终端及可读存储介质 | |
CN106776275A (zh) | 一种基于分组复用的测试流程自动生成方法 | |
CN108389154B (zh) | Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法 | |
US20180067468A1 (en) | Setting Up Physical Tools For Scrap Trimming Operations in Sheet Metal Forming Based On Numerical Simulation Results | |
CN103235819A (zh) | 一种web界面多区域数据显示的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160420 |