一种优化绘制天空的方法技术

技术编号:15550536 阅读:70 留言:0更新日期:2017-06-07 15:39
本发明专利技术的技术方案包括一种优化绘制天空的方法,该方法包括:A.在视图坐标系构建一个三角形并计算三角形的每个坐标值;B.创建顶点缓冲和索引缓冲并传入显卡装置,进一步通过着色器反投影计算三角形每个顶点坐标的世界坐标值;C.传入立方体纹理图并对三角形的顶点进行采样,得到多个像素值,进一步调用多媒体编程接口绘制出天空盒。本发明专利技术的有益效果为:提高天空绘制速度,有效减少顶点数量和着色器的计算量,保持画面流畅。

A method of optimizing rendering of the sky

The technical scheme of the invention comprises an optimized drawing sky method, the method includes: A. in the view coordinate system to construct a triangle and calculate the coordinates of each triangle; B. to create a vertex buffer and index buffer and incoming card device, the world coordinate further through shader projection calculation of each triangle vertex coordinates value; C. the incoming sampling of the cube texture map and the vertices of the triangle, has a plurality of pixel values, further calls multimedia programming interface to draw the sky box. The invention has the advantages that the sky rendering speed is improved, the number of vertices and the calculation amount of the shaders are effectively reduced, and the pictures are kept flowing.

【技术实现步骤摘要】

本专利技术涉及一种优化绘制天空的方法,属于计算机图形领域。
技术介绍
在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)的原则来确定每个顶点坐标值。反投影采样过程即在显卡中用着色器把每个三角形顶点坐标做反投影计算,得到这个坐标反投射出来的世界坐标,再根据这个世界坐标和天空纹理进行采样,得到纹理颜色值来绘制天空效果。以上所述,只是本专利技术的较佳实施例而已,本专利技术并不局限于上述实施方式,只要其以相同的手段达到本专利技术的技术效果,都应属于本专利技术的保护范围。在本专利技术的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。本文档来自技高网...
一种优化绘制天空的方法

【技术保护点】
一种优化绘制天空的方法,其特征在于,该方法包括:A.在视图坐标系构建一个三角形并计算三角形的每个坐标值;B.创建顶点缓冲和索引缓冲并传入显卡装置,进一步通过着色器反投影计算三角形每个顶点坐标的世界坐标值;C.传入立方体纹理图并对三角形的顶点进行采样,得到多个像素值,进一步调用多媒体编程接口绘制出天空盒。

【技术特征摘要】
1.一种优化绘制天空的方法,其特征在于,该方法包括:A.在视图坐标系构建一个三角形并计算三角形的每个坐标值;B.创建顶点缓冲和索引缓冲并传入显卡装置,进一步通过着色器反投影计算三角形每个顶点坐标的世界坐标值;C.传入立方体纹理图并对三角形的顶点进行采样,得到多个像素值,进一步调用多媒体编程接口绘制出天空盒。2.根据权利要求1所述的优化绘制天空的方法,其特征在于,所述的步骤A还包括:S21,在视图坐标系构建一个自定义的三角形;S22,确认三角形的内切正方形,其中,内切正方形为虚拟摄像机视口;S23,通过虚拟摄像视口进一步计算出三角形的每个坐标值。3.根据权利要求2所述的优化绘制天空的方法,其特征在于,所述步骤S22还包括:其中的虚拟摄像机视口是通过调用多媒体编程...

【专利技术属性】
技术研发人员:黄晓权武韬温佩贤
申请(专利权)人:珠海金山网络游戏科技有限公司广州西山居世游网络科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1