A method to reduce the filling rate of scene pixels includes: creating material balls, using shaders that draw opaque grids; maintaining a list of open UI area sizes in the management class; calculating the area information of the UI and adding it to the list; calculating the four top angles of the largest rectangle of the occlusion area in screen space and constructing grids according to the area information list; Command buffer, insert the drawing command buffer before drawing opaque objects and execute the drawing command; render scene. It can be easily integrated into the existing UI system, and supports automatic adaptation of occlusion areas when multiple UIs are overlapped, opened or closed, so as to improve the efficiency of GPU.
【技术实现步骤摘要】
一种降低场景像素填充率的方法
本专利技术涉及游戏引擎
,特别是涉及一种降低场景像素填充率的方法。
技术介绍
在现有游戏制作中,一般采用两个相机分别渲染UI和游戏场景。但当玩家打开一个遮蔽区域较大(或全屏)的不透明UI时,实际上场景相机渲染的部分元素我们看不到了,但场景相机仍然提交渲染任务给GPU。对于全屏的UI,设计人员可以在打开UI时,临时停止场景相机的渲染,降低场景渲染压力;但对于一些游戏,功能UI并不是全屏的,设计人员不能停止场景相机的渲染,使得场景渲染的压力过大,也降低了GPU的效率。
技术实现思路
为了解决现有技术存在的不足,本专利技术的目的在于提供一种降低场景像素填充率的方法,利用移动GPU的瓦片/分块渲染架构的特性,以及Unity引擎渲染排序的规则,省去场景中被UI挡住的部分的像素填充操作,提高GPU的效率。为实现上述目的,本专利技术提供的一种降低场景像素填充率的方法,包括:创建材质球,使用绘制不透明网格的着色器;维护打开UI区域大小的列表;计算所述UI的区域信息并添加到所述列表中;根据区域信息列表计算出屏幕空间内遮挡区域并集的最大矩形的四个顶角并构建网格;创建命令缓冲区,将所述绘制命令缓冲插入到绘制不透明物体前并执行绘制命令;进行场景绘制。进一步地,所述着色器,渲染队列标注为不透明渲染,并且写入深度信息。更进一步地,所述计算所述UI的区域信息并添加到所述列表中的步骤,进一步包括:根据UI的预设大小和所适配机型的屏幕分辨率计算得出相对于屏幕空间的中心位置和高宽信息;将所述区域信息加入到所述列表,关闭时将该区域信息移除。为实现上述目的,本专利 ...
【技术保护点】
1.一种降低场景像素填充率的方法,包括以下步骤:创建材质球,使用绘制不透明网格的着色器;维护打开UI区域大小的列表;计算所述UI的区域信息并添加到所述列表中;根据区域信息列表计算出屏幕空间内遮挡区域并集的最大矩形的四个顶角并构建网格;创建命令缓冲区,将所述绘制命令缓冲插入到绘制不透明物体前并执行绘制命令;进行场景绘制。
【技术特征摘要】
1.一种降低场景像素填充率的方法,包括以下步骤:创建材质球,使用绘制不透明网格的着色器;维护打开UI区域大小的列表;计算所述UI的区域信息并添加到所述列表中;根据区域信息列表计算出屏幕空间内遮挡区域并集的最大矩形的四个顶角并构建网格;创建命令缓冲区,将所述绘制命令缓冲插入到绘制不透明物体前并执行绘制命令;进行场景绘制。2.根据权利要求1所述的方法,其特征在于,所述着色器,渲染队列标注为不透明渲染,并且写入深度信息。3.根据权利要求1所述的方法,其特征在于,所述计算所述UI的区域信息并添加到所述列表...
【专利技术属性】
技术研发人员:高超,
申请(专利权)人:苏州蜗牛数字科技股份有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。