CN113393555B - 一种基于着色器的屏幕填充率统计方法及其系统 - Google Patents
一种基于着色器的屏幕填充率统计方法及其系统 Download PDFInfo
- Publication number
- CN113393555B CN113393555B CN202010166129.5A CN202010166129A CN113393555B CN 113393555 B CN113393555 B CN 113393555B CN 202010166129 A CN202010166129 A CN 202010166129A CN 113393555 B CN113393555 B CN 113393555B
- Authority
- CN
- China
- Prior art keywords
- color
- overdraw
- texture data
- module
- shader
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种基于着色器的屏幕填充率统计方法,所述方法设置有一着色器模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef并得到片元颜色color中,然后合并所有片元颜色,并生成纹理数据;所述方法包括如下步骤:步骤S1、查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;步骤S2、利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;步骤S3、根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率。本发明将Overdraw的表现数值化,变成一个衡量标准,从而能快速得知GPU的性能瓶颈。
Description
技术领域
本发明涉及图像处理技术领域,特别是一种基于着色器的屏幕填充率统计方法及其系统。
背景技术
屏幕填充率是指GPU每秒可写入或渲染的像素总数,大多数GPU的性能瓶颈来自于填充率,尤其在移动设备上,Overdraw是指当同一个像素被进行多次绘制导致的一种现象,是反应屏幕填充率的一个指标,Overdraw与屏幕填充率是成正比。而现有技术中,只有对Overdraw进行图形展示,没有数值化,无法形成一个衡量,即不能确定GPU的性能瓶颈。
片元是光栅化过程的产物;光栅化是将一个图元转变为一个二维图象,二维图象上每个点都包含了颜色、深度和纹理数据,将该点和相关信息叫做一个片元。
发明内容
为克服上述问题,本发明的目的是提供一种基于着色器的屏幕填充率统计方法,能将Overdraw的表现数值化,变成一个衡量标准,从而能快速得知GPU的性能瓶颈。
本发明采用以下方案实现:一种基于着色器的屏幕填充率统计方法,所述方法设置有一着色器模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef获得片元颜色color,同时保存到纹理数据;
所述方法包括如下步骤:步骤S1、查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;
步骤S2、利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;
步骤S3、根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率。
进一步的,所述步骤S2进一步具体为:步骤S21、从CPU端传入物体绘制参数colordef到GPU端;
步骤S22、根据物体绘制颜色参数colordef计算出片元颜色color,然后合并所有片元颜色,并生成纹理数据framecolor,具体算法如下:
①color=colordef;
②framecolor=每个片元颜色color相加。
进一步的,所述根据纹理数据计算出Overdraw值中的计算方式为:pixwrite=framecolor/colordef;pixtotal=width*height;overdraw=pixwrite/pixtotal;
其中,colordef为物体绘制颜色参数,framecolor为生成的纹理数据,width为指定屏幕分辨率宽度,height为指定屏幕分辨率高度,pixtotal为当前屏幕像素总和,pixwrite为当前写入像素总和,overdraw为平均像素写入次数。
本发明还提供了一种基于着色器的屏幕填充率统计系统,所述系统包括着色器模块、替换模块、数据处理模块、以及Overdraw值获取模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef获得片元颜色color,然后合并所有片元颜色,并生成纹理数据;
所述替换模块,用于查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;
所述数据处理模块利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;
所述Overdraw值获取模块根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率。
进一步的,所述数据处理模块进一步具体为:从CPU端传入物体绘制参数colordef到GPU端;根据物体绘制颜色参数colordef计算出片元颜色color,然后合并所有片元颜色,并生成纹理数据framecolor,具体算法如下:
①color=colordef;
②framecolor=每个片元颜色color相加。
进一步的,所述根据纹理数据计算出Overdraw值中的计算方式为:pixwrite=framecolor/colordef;pixtotal=width*height;overdraw=pixwrite/pixtotal;
其中,colordef为物体绘制颜色参数,framecolor为生成的纹理数据,width为指定屏幕分辨率宽度,height为指定屏幕分辨率高度,pixtotal为当前屏幕像素总和,pixwrite为当前写入像素总和,overdraw为平均像素写入次数。
本发明的有益效果在于:本发明将Overdraw的表现数值化,变成一个衡量标准,对GPU的性能瓶颈的定位变成比较简单,即Overdraw数值越大,GPU性能越低,比如Overdraw数值为4代表同一个像素绘制4次,则同一个像素绘制次数越多,则GPU性能越低。
附图说明
图1是本发明的方法流程示意图。
图2是本发明的系统框图。
具体实施方式
下面结合附图对本发明做进一步说明。
请参阅图1所示,本发明的一种基于着色器的屏幕填充率统计方法,所述方法设置有一着色器模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef获得片元颜色color(即物体的片元颜色),同时保存到纹理数据;其中,colordef=(colordef.R,colordef.G,colordef.B)(如:colordef=(0.01,0.01,0.01)此值可以自定义,为全局唯一性)
所述方法包括如下步骤:步骤S1、查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;
步骤S2、利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;
步骤S3、根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率。
进一步的,所述步骤S2进一步具体为:步骤S21、从CPU端传入物体绘制参数colordef到GPU端;
步骤S22、根据物体绘制颜色参数colordef计算出片元颜色color(即将颜色参数colordef赋值给片元颜色color),然后合并所有片元颜色,并生成纹理数据framecolor,具体算法如下:
①color=colordef;
②framecolor=每个片元颜色color相加(即为framecolor=framecolor+color)。
其中,所述根据纹理数据计算出Overdraw值中的计算方式为:pixwrite=framecolor/colordef;pixtotal=width*height;overdraw=pixwrite/pixtotal;
其中,colordef为物体绘制颜色参数,framecolor为生成的纹理数据,width为指定屏幕分辨率宽度,height为指定屏幕分辨率高度,pixtotal为当前屏幕像素总和,pixwrite为当前写入像素总和,overdraw为平均像素写入次数。
本发明的应用场景如下:
如:在游戏引擎Unity渲染队列中,几何体的渲染不透明队列默认是按照从前到后的,由于有深度缓存,可以判断该像素是否需要写入帧缓存,这样可以最小化减少Overdraw;对于透明队列是按照从后到前的渲染实现物体的透明效果,从而使一个物体重复渲染多次,因此造成Overdraw非常高,将Overdraw的表现数值化,变成一个衡量标准,具有重要的意义。
请参阅图2所示,本发明还提供了一种基于着色器的屏幕填充率统计系统,所述系统包括着色器模块、替换模块、数据处理模块、以及Overdraw值获取模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef获得片元颜色color,然后合并所有片元颜色,并生成纹理数据;
所述替换模块,用于查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;
所述数据处理模块利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;
所述Overdraw值获取模块根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率。
所述数据处理模块进一步具体为:从CPU端传入物体绘制参数colordef到GPU端;根据物体绘制颜色参数colordef计算出片元颜色color,然后合并所有片元颜色,并生成纹理数据framecolor,具体算法如下:
①color=colordef;
②framecolor=每个片元颜色color相加。
进一步的,所述根据纹理数据计算出Overdraw值中的计算方式为:pixwrite=framecolor/colordef;pixtotal=width*height;overdraw=pixwrite/pixtotal;
其中,colordef为物体绘制颜色参数,framecolor为生成的纹理数据,width为指定屏幕分辨率宽度,height为指定屏幕分辨率高度,pixtotal为当前屏幕像素总和,pixwrite为当前写入像素总和,overdraw为平均像素写入次数。
总之,本发明将Overdraw的表现数值化,变成一个衡量标准,对GPU的性能瓶颈的定位变成比较简单,即Overdraw数值越大,GPU性能越低,比如Overdraw数值为4代表同一个像素绘制4次,则同一个像素绘制次数越多,则GPU性能越低。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (2)
1.一种基于着色器的屏幕填充率统计方法,其特征在于:所述方法设置有一着色器模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef获得片元颜色color,然后合并所有片元颜色,并生成纹理数据;
所述方法包括如下步骤:步骤S1、查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;
步骤S2、利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;
步骤S3、根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率;所述步骤S2进一步具体为:步骤S21、从CPU端传入物体绘制参数colordef到GPU端;
步骤S22、根据物体绘制颜色参数colordef计算出片元颜色color,然后合并所有片元颜色,并生成纹理数据framecolor,具体算法如下:
① color = colordef;
②framecolor=每个片元颜色color相加;所述根据纹理数据计算出Overdraw值中的计算方式为:pixwrite=framecolor/colordef;pixtotal=width*height;overdraw=pixwrite/pixtotal;
其中,colordef为物体绘制颜色参数,framecolor为生成的纹理数据,width为指定屏幕分辨率宽度,height为指定屏幕分辨率高度,pixtotal为当前屏幕像素总和,pixwrite为当前写入像素总和,overdraw为平均像素写入次数。
2.一种基于着色器的屏幕填充率统计系统,其特征在于:所述系统包括着色器模块、替换模块、数据处理模块、以及Overdraw值获取模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef获得片元颜色color,然后合并所有片元颜色,并生成纹理数据;
所述替换模块,用于查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;
所述数据处理模块利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;所述Overdraw值获取模块根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率;所述数据处理模块进一步具体为:从CPU端传入物体绘制参数colordef到GPU端;根据物体绘制颜色参数colordef计算出片元颜色color,然后合并所有片元颜色,并生成纹理数据framecolor,具体算法如下:
①color=colordef;
②framecolor=每个片元颜色color相加;所述根据纹理数据计算出Overdraw值中的计算方式为:pixwrite=framecolor/colordef;pixtotal=width*height;overdraw=pixwrite/pixtotal;
其中,colordef为物体绘制颜色参数,framecolor为生成的纹理数据,width为指定屏幕分辨率宽度,height为指定屏幕分辨率高度,pixtotal为当前屏幕像素总和,pixwrite为当前写入像素总和,overdraw为平均像素写入次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010166129.5A CN113393555B (zh) | 2020-03-11 | 2020-03-11 | 一种基于着色器的屏幕填充率统计方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010166129.5A CN113393555B (zh) | 2020-03-11 | 2020-03-11 | 一种基于着色器的屏幕填充率统计方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113393555A CN113393555A (zh) | 2021-09-14 |
CN113393555B true CN113393555B (zh) | 2023-09-15 |
Family
ID=77615364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010166129.5A Active CN113393555B (zh) | 2020-03-11 | 2020-03-11 | 一种基于着色器的屏幕填充率统计方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113393555B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167907B (zh) * | 2023-04-21 | 2023-06-20 | 北京麟卓信息科技有限公司 | 一种基于逐级逼近的像素填充率测试方法 |
CN116302764B (zh) * | 2023-05-22 | 2023-07-18 | 北京麟卓信息科技有限公司 | 一种基于最小数据填充的纹理填充率测试方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2728551A1 (en) * | 2012-11-05 | 2014-05-07 | Rightware Oy | Image rendering method and system |
CN103810742A (zh) * | 2012-11-05 | 2014-05-21 | 正谓有限公司 | 图像渲染方法和系统 |
CN104835191A (zh) * | 2014-02-06 | 2015-08-12 | 想象技术有限公司 | 3d图形处理系统中用于处理图元的不透明度测试 |
CN107750373A (zh) * | 2015-06-12 | 2018-03-02 | 高通股份有限公司 | 使用光线跟踪渲染以生成可见性流 |
CN108389151A (zh) * | 2018-01-08 | 2018-08-10 | 珠海金山网络游戏科技有限公司 | 一种过度绘制的评估方法和系统 |
CN108536582A (zh) * | 2018-03-08 | 2018-09-14 | 挖财网络技术有限公司 | Android应用过度绘制量化分析的方法及装置 |
CN109847358A (zh) * | 2018-12-24 | 2019-06-07 | 苏州蜗牛数字科技股份有限公司 | 一种降低场景像素填充率的方法 |
CN110286979A (zh) * | 2019-06-20 | 2019-09-27 | 杭州绝地科技股份有限公司 | 减少UI遮蔽导致的Overdraw的渲染方法和系统 |
CN110544290A (zh) * | 2019-09-06 | 2019-12-06 | 广东省城乡规划设计研究院 | 数据渲染方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10147227B2 (en) * | 2017-02-17 | 2018-12-04 | Microsoft Technology Licensing, Llc | Variable rate shading |
-
2020
- 2020-03-11 CN CN202010166129.5A patent/CN113393555B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2728551A1 (en) * | 2012-11-05 | 2014-05-07 | Rightware Oy | Image rendering method and system |
CN103810742A (zh) * | 2012-11-05 | 2014-05-21 | 正谓有限公司 | 图像渲染方法和系统 |
CN104835191A (zh) * | 2014-02-06 | 2015-08-12 | 想象技术有限公司 | 3d图形处理系统中用于处理图元的不透明度测试 |
CN107750373A (zh) * | 2015-06-12 | 2018-03-02 | 高通股份有限公司 | 使用光线跟踪渲染以生成可见性流 |
CN108389151A (zh) * | 2018-01-08 | 2018-08-10 | 珠海金山网络游戏科技有限公司 | 一种过度绘制的评估方法和系统 |
CN108536582A (zh) * | 2018-03-08 | 2018-09-14 | 挖财网络技术有限公司 | Android应用过度绘制量化分析的方法及装置 |
CN109847358A (zh) * | 2018-12-24 | 2019-06-07 | 苏州蜗牛数字科技股份有限公司 | 一种降低场景像素填充率的方法 |
CN110286979A (zh) * | 2019-06-20 | 2019-09-27 | 杭州绝地科技股份有限公司 | 减少UI遮蔽导致的Overdraw的渲染方法和系统 |
CN110544290A (zh) * | 2019-09-06 | 2019-12-06 | 广东省城乡规划设计研究院 | 数据渲染方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113393555A (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9786091B2 (en) | Gradient adjustment for texture mapping to non-orthonormal grid | |
CN100357972C (zh) | 计算机绘图之颜色资料的压缩系统及方法 | |
Salvi et al. | Adaptive transparency | |
JP3462211B2 (ja) | 多態グラフィック・デバイス | |
US7911480B2 (en) | Compression of multiple-sample-anti-aliasing tile data in a graphics pipeline | |
US11348308B2 (en) | Hybrid frustum traced shadows systems and methods | |
CN110544290A (zh) | 数据渲染方法及装置 | |
Roettger et al. | A two-step approach for interactive pre-integrated volume rendering of unstructured grids | |
CN101356548B (zh) | 矢量图形的防失真 | |
WO2000019377B1 (en) | Graphics processor with deferred shading | |
JP2010165357A (ja) | グラフィックスを処理する方法およびそのための装置 | |
CN113393555B (zh) | 一种基于着色器的屏幕填充率统计方法及其系统 | |
KR20080097354A (ko) | 텍스쳐 상세 레벨을 산출하기 위한 장치 및 방법 | |
CN107209951B (zh) | 单遍表面溅射 | |
CN112070909B (zh) | 一种基于3D Tiles的工程三维模型LOD输出方法 | |
CN113261032A (zh) | 距离场调色板 | |
Schütz et al. | Software rasterization of 2 billion points in real time | |
CN115168682B (zh) | 一种大规模时空点数据lod绘制方法及装置 | |
CN106575429A (zh) | 图形处理单元中的高阶滤波 | |
CN114491351B (zh) | 可适配WebGIS平台的格点数据可视化方法和系统 | |
CN110544318B (zh) | 一种基于显示窗口的场景分辨率的海量模型加载方法 | |
CN113495933A (zh) | 一种矢量瓦片显示方法及系统 | |
CN106575428A (zh) | 图形处理单元中的高阶滤波 | |
KR20180048081A (ko) | 텍스쳐 처리 방법 및 장치 | |
CN100583162C (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |