CN106803279A - 一种优化绘制天空的方法 - Google Patents
一种优化绘制天空的方法 Download PDFInfo
- Publication number
- CN106803279A CN106803279A CN201611219602.1A CN201611219602A CN106803279A CN 106803279 A CN106803279 A CN 106803279A CN 201611219602 A CN201611219602 A CN 201611219602A CN 106803279 A CN106803279 A CN 106803279A
- Authority
- CN
- China
- Prior art keywords
- triangle
- sky
- coordinate
- value
- drawn
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明的技术方案包括一种优化绘制天空的方法,该方法包括:A.在视图坐标系构建一个三角形并计算三角形的每个坐标值;B.创建顶点缓冲和索引缓冲并传入显卡装置,进一步通过着色器反投影计算三角形每个顶点坐标的世界坐标值;C.传入立方体纹理图并对三角形的顶点进行采样,得到多个像素值,进一步调用多媒体编程接口绘制出天空盒。本发明的有益效果为:提高天空绘制速度,有效减少顶点数量和着色器的计算量,保持画面流畅。
Description
技术领域
本发明涉及一种优化绘制天空的方法,属于计算机图形领域。
背景技术
在3D游戏开发过程中需要绘制天空。以前天空绘制是用一个立方体纹理图画到球形网格上的方式绘制的,这个时候球形网格的顶点数量非常多,需要建立非常多的三角形才能达到绘制,从而导致顶点缓冲区(buffer)和索引buffer占用较大,也就是中央处理器(CPU)的内存占用和图形处理器(GPU)的显存占用较大的现象。
发明内容
针对上述技术问题,本发明提供一种优化绘制天空的方法,只需要一个三角形网格就能把天空给绘制出来,能保持原来的绘制效果同时也优化了性能,实现更优的天空绘制。
本发明的技术方案包括一种优化绘制天空的方法,其特征在于,该方法包括:A.在视图坐标系构建一个三角形并计算三角形的每个坐标值;B.创建顶点缓冲和索引缓冲并传入显卡装置,进一步通过着色器反投影计算三角形每个顶点坐标的世界坐标值;C.传入立方体纹理图并对三角形的顶点进行采样,得到多个像素值,进一步调用多媒体编程接口绘制出天空盒。
根据所述的优化绘制天空的方法,其中步骤A还包括:S21,在视图坐标系构建一个自定义的三角形;S22,确认三角形的内切正方形,其中,内切正方形为虚拟摄像机视口;S23,通过虚拟摄像视口进一步计算出三角形的每个坐标值。
根据所述的优化绘制天空的方法,其中步骤S22还包括:其中的虚拟摄像机视口是通过调用多媒体编程接口及图形学原理进行确认。
根据所述的优化绘制天空的方法,其中步骤B还包括:创建顶点缓冲和索引缓冲传入显卡中时,使用着色器将每个顶点的坐标反投影成世界坐标系的坐标值。
根据所述的优化绘制天空的方法,其中步骤C还包括:通过世界坐标系的三角形坐标值来确定在立方体纹理图中用到的采样值,所述采样值用于采样立方体纹理图的像素。
根据所述的优化绘制天空的方法,其中步骤C还包括:在绘制过程中,根据视图坐标系的三角形顶点放出一条射线,获取每个顶点世界坐标系的坐标值,以及,通过立方体纹理图图采样出的像素值,通过光栅化输出到绘制屏幕,进而依次旋转虚拟摄像机,重新放出射线,循环执行上述过程直至完成天空的绘制。
本发明的有益效果为:提高天空绘制速度,有效减少顶点数量和着色器的计算量,保持画面流畅。
附图说明
图1所示为根据本发明实施方式的绘制方法的流程图;
图2所示为根据本发明实施方式的三角形坐标过程;
图3所示为根据本发明实施方式的反投影采样过程。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的优化绘制天空的方法适用于游戏中的天空绘制。
图1所示为根据本发明实施方式的绘制方法的流程图。绘制之前,代码程序确定三角形每个顶点的坐标值,因为它是在视图坐标系的视口坐标,摄像机改变的时候,这些数据是不会发生变化的。绘制过程中,需要先把在显存中的顶点数据进行反投影计算,得出每个顶点对应的世界坐标,再采样出纹理颜色值,然后进行绘制。由此,执行上述方法的客户端可以保持天空的效果,同时还能减少绘制数量。
根据三角形的顶点数据,就只需要绘制一个三角形,就绘制一次,而不是一个天空网格,如果是天空网格,它有8个顶点,相应的纹理坐标也需要8个,数据量就多了好几倍,内存占用和显存占用也多了好几倍,资源消耗较大,所以三角形的天空绘制就达到了优化效果。
图2所示为根据本发明实施方式的三角形坐标过程。在确定三角形坐标过程中,需要明白Viewport的中心坐标和长宽,中心坐标为(0,0),长和宽为2,即左下角坐标为(-1,-1),右上角坐标为(1,1,),从而确定三角形每个顶点的坐标分别为(-1,3)(-1,-1)(3,-1)。确定坐标之后就是建立顶点缓冲和索引缓冲,传入显卡中进行着色器计算,这个时候每个坐标都需要进行反投影计算,因为每个坐标是视口坐标,所以计算的时候需要乘以世界矩阵的逆矩阵,得到世界坐标系中的三维坐标,然后在像素着色器中坐标值跟天空纹理图进行采样,天空纹理图是一个三维纹理,就会得到一个纹理颜色值,天空的效果就可以画出来。
图3所示为根据本发明实施方式的反投影采样过程。主要涉及确定三角形坐标过程与反投影采样过程。确定三角形坐标过程即根据三角形的内切正方形刚好是窗口视口坐标(Viewport)的原则来确定每个顶点坐标值。反投影采样过程即在显卡中用着色器把每个三角形顶点坐标做反投影计算,得到这个坐标反投射出来的世界坐标,再根据这个世界坐标和天空纹理进行采样,得到纹理颜色值来绘制天空效果。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
Claims (6)
1.一种优化绘制天空的方法,其特征在于,该方法包括:
A.在视图坐标系构建一个三角形并计算三角形的每个坐标值;
B.创建顶点缓冲和索引缓冲并传入显卡装置,进一步通过着色器反投影计算三角形每个顶点坐标的世界坐标值;
C.传入立方体纹理图并对三角形的顶点进行采样,得到多个像素值,进一步调用多媒体编程接口绘制出天空盒。
2.根据权利要求1所述的优化绘制天空的方法,其特征在于,所述的步骤A还包括:
S21,在视图坐标系构建一个自定义的三角形;
S22,确认三角形的内切正方形,其中,内切正方形为虚拟摄像机视口;
S23,通过虚拟摄像视口进一步计算出三角形的每个坐标值。
3.根据权利要求2所述的优化绘制天空的方法,其特征在于,所述步骤S22还包括:
其中的虚拟摄像机视口是通过调用多媒体编程接口及图形学原理进行确认。
4.根据权利要求1所述的优化绘制天空的方法,其特征在于,所述步骤B还包括:
创建顶点缓冲和索引缓冲传入显卡中时,使用着色器将每个顶点的坐标反投影成世界坐标系的坐标值。
5.根据权利要求1所述的优化绘制天空的方法,其特征在于,所述步骤C还包括:
通过世界坐标系的三角形坐标值来确定在立方体纹理图中用到的采样值,所述采样值用于采样立方体纹理图的像素。
6.根据权利要求1或5所述的优化绘制天空的方法,其特征在于,所述步骤C还包括:
在绘制过程中,根据视图坐标系的三角形顶点放出一条射线,获取每个顶点世界坐标系的坐标值,以及,通过立方体纹理图采样出的像素值,通过光栅化输出到绘制屏幕,进而依次旋转虚拟摄像机,重新放出射线,循环执行上述过程直至完成天空的绘制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611219602.1A CN106803279A (zh) | 2016-12-26 | 2016-12-26 | 一种优化绘制天空的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611219602.1A CN106803279A (zh) | 2016-12-26 | 2016-12-26 | 一种优化绘制天空的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106803279A true CN106803279A (zh) | 2017-06-06 |
Family
ID=58984937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611219602.1A Pending CN106803279A (zh) | 2016-12-26 | 2016-12-26 | 一种优化绘制天空的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106803279A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107347116A (zh) * | 2017-06-30 | 2017-11-14 | 北京金山安全软件有限公司 | 桌面效果的生成方法、装置及电子设备 |
CN109146987A (zh) * | 2018-06-15 | 2019-01-04 | 西北大学 | 一种基于gpu的快速锥束计算机断层成像重建方法 |
CN110570482A (zh) * | 2019-08-07 | 2019-12-13 | 一诺仪器(中国)有限公司 | 星座图绘制方法、系统及频谱分析仪 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389848A (zh) * | 2015-11-06 | 2016-03-09 | 网易(杭州)网络有限公司 | 一种3d场景的绘制系统及方法、终端 |
CN105741228A (zh) * | 2016-03-11 | 2016-07-06 | 腾讯科技(深圳)有限公司 | 图形处理方法及装置 |
KR20160107512A (ko) * | 2015-03-04 | 2016-09-19 | 상지대학교산학협력단 | 온톨로지와 사면 기반의 지능형 3차원 재난 시뮬레이션 및 방법 |
-
2016
- 2016-12-26 CN CN201611219602.1A patent/CN106803279A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160107512A (ko) * | 2015-03-04 | 2016-09-19 | 상지대학교산학협력단 | 온톨로지와 사면 기반의 지능형 3차원 재난 시뮬레이션 및 방법 |
CN105389848A (zh) * | 2015-11-06 | 2016-03-09 | 网易(杭州)网络有限公司 | 一种3d场景的绘制系统及方法、终端 |
CN105741228A (zh) * | 2016-03-11 | 2016-07-06 | 腾讯科技(深圳)有限公司 | 图形处理方法及装置 |
Non-Patent Citations (3)
Title |
---|
尹勇 等: "《航海模拟器视景中海浪的模拟》", 31 October 2010, 大连海事大学出版社 * |
陈洪 等: "《数字媒体技术概论》", 31 August 2015, 北京邮电大学出版社 * |
魔のKYO: "使用4个顶点+CubeMap渲染天空盒", 《IT博客HTTP://WWW.CNITBLOG.COM/LUCKYDMZ/ARCHIVE/2010/10/20/70353.HTML》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107347116A (zh) * | 2017-06-30 | 2017-11-14 | 北京金山安全软件有限公司 | 桌面效果的生成方法、装置及电子设备 |
CN107347116B (zh) * | 2017-06-30 | 2019-11-26 | 北京金山安全软件有限公司 | 桌面效果的生成方法、装置及电子设备 |
CN109146987A (zh) * | 2018-06-15 | 2019-01-04 | 西北大学 | 一种基于gpu的快速锥束计算机断层成像重建方法 |
CN109146987B (zh) * | 2018-06-15 | 2023-01-06 | 西北大学 | 一种基于gpu的快速锥束计算机断层成像重建方法 |
CN110570482A (zh) * | 2019-08-07 | 2019-12-13 | 一诺仪器(中国)有限公司 | 星座图绘制方法、系统及频谱分析仪 |
CN110570482B (zh) * | 2019-08-07 | 2022-12-09 | 一诺仪器(中国)有限公司 | 星座图绘制方法、系统及频谱分析仪 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10417741B2 (en) | Varying effective resolution by screen location by altering rasterization parameters | |
US9202303B2 (en) | System and method for compositing path color in path rendering | |
CN105493150B (zh) | 图形处理中的目标独立模板印刷 | |
CN101620725B (zh) | 混合多重采样/超采样抗锯齿 | |
US10417817B2 (en) | Supersampling for spatially distributed and disjoined large-scale data | |
CN102651142B (zh) | 图像渲染方法和装置 | |
US10636213B2 (en) | Graphics processing systems | |
US10614619B2 (en) | Graphics processing systems | |
US9495767B2 (en) | Indexed uniform styles for stroke rendering | |
CN110291563A (zh) | 图形处理中的多个着色器进程 | |
CN105487848B (zh) | 一种3d应用的显示刷新方法及系统 | |
TW201618041A (zh) | 來自片段著色器程式之樣本遮罩的控制 | |
US7154502B2 (en) | 3D graphics with optional memory write before texturing | |
US10068366B2 (en) | Stereo multi-projection implemented using a graphics processing pipeline | |
CN103247072A (zh) | 基于安卓系统实现三维旋转界面的方法及装置 | |
EP2831848A1 (en) | Method for estimating the opacity level in a scene and corresponding device | |
CN106803279A (zh) | 一种优化绘制天空的方法 | |
CN109255832A (zh) | 一种基于OpenGL的目标光场创建方法 | |
US9251607B1 (en) | Anti-aliasing techniques | |
CN109544668A (zh) | 纹理坐标处理方法、终端设备及计算机可读存储介质 | |
US6677953B1 (en) | Hardware viewport system and method for use in a graphics pipeline | |
CN107689076B (zh) | 一种用于虚拟手术系统切割时的高效渲染方法 | |
CN109377552A (zh) | 图像遮挡计算方法、装置、计算设备及存储介质 | |
US20220027281A1 (en) | Data processing systems | |
CN106033451B (zh) | 一种小区话务量的密度图即时渲染方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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: 20170606 |