CN113393555A - 一种基于着色器的屏幕填充率统计方法及其系统 - Google Patents
一种基于着色器的屏幕填充率统计方法及其系统 Download PDFInfo
- Publication number
- CN113393555A CN113393555A CN202010166129.5A CN202010166129A CN113393555A CN 113393555 A CN113393555 A CN 113393555A CN 202010166129 A CN202010166129 A CN 202010166129A CN 113393555 A CN113393555 A CN 113393555A
- Authority
- CN
- China
- Prior art keywords
- shader
- color
- colordef
- texture data
- 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.)
- Granted
Links
Images
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 (6)
1.一种基于着色器的屏幕填充率统计方法,其特征在于:所述方法设置有一着色器模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef获得片元颜色color,然后合并所有片元颜色,并生成纹理数据;
所述方法包括如下步骤:步骤S1、查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;
步骤S2、利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;
步骤S3、根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率。
2.根据权利要求1所述的一种基于着色器的屏幕填充率统计方法,其特征在于:所述步骤S2进一步具体为:步骤S21、从CPU端传入物体绘制参数colordef到GPU端;步骤S22、根据物体绘制颜色参数colordef计算出片元颜色color,然后合并所有片元颜色,并生成纹理数据framecolor,具体算法如下:
①color=colordef;
②framecolor=每个片元颜色color相加。
3.根据权利要求2所述的一种基于着色器的屏幕填充率统计方法,其特征在于:所述根据纹理数据计算出Overdraw值中的计算方式为:pixwrite=framecolor/colordef;pixtotal=width*height;overdraw=pixwrite/pixtotal;其中,colordef为物体绘制颜色参数,framecolor为生成的纹理数据,width为指定屏幕分辨率宽度,height为指定屏幕分辨率高度,pixtotal为当前屏幕像素总和,pixwrite为当前写入像素总和,overdraw为平均像素写入次数。
4.一种基于着色器的屏幕填充率统计系统,其特征在于:所述系统包括着色器模块、替换模块、数据处理模块、以及Overdraw值获取模块,所述着色器模块用于传入颜色参数colordef,且能根据物体绘制颜色参数colordef获得片元颜色color,然后合并所有片元颜色,并生成纹理数据;
所述替换模块,用于查找所有物体的材质的着色器,将所述着色器模块替换所有材质的着色器;
所述数据处理模块利用所述着色器模块渲染所有物体到帧缓存,并保存到纹理数据;
所述Overdraw值获取模块根据纹理数据计算出Overdraw值,所述Overdraw值与所述屏幕填充率是成正比,从而统计出所述屏幕填充率。
5.根据权利要求4所述的一种基于着色器的屏幕填充率统计系统,其特征在于:所述数据处理模块进一步具体为:从CPU端传入物体绘制参数colordef到GPU端;根据物体绘制颜色参数colordef计算出片元颜色color,然后合并所有片元颜色,并生成纹理数据framecolor,具体算法如下:
①color=colordef;
②framecolor=每个片元颜色color相加。
6.根据权利要求5所述的一种基于着色器的屏幕填充率统计系统,其特征在于:所述根据纹理数据计算出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 true CN113393555A (zh) | 2021-09-14 |
CN113393555B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167907A (zh) * | 2023-04-21 | 2023-05-26 | 北京麟卓信息科技有限公司 | 一种基于逐级逼近的像素填充率测试方法 |
CN116302764A (zh) * | 2023-05-22 | 2023-06-23 | 北京麟卓信息科技有限公司 | 一种基于最小数据填充的纹理填充率测试方法 |
Citations (10)
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 | 珠海金山网络游戏科技有限公司 | 一种过度绘制的评估方法和系统 |
US20180240268A1 (en) * | 2017-02-17 | 2018-08-23 | Microsoft Technology Licensing, Llc | Variable rate shading |
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 | 广东省城乡规划设计研究院 | 数据渲染方法及装置 |
-
2020
- 2020-03-11 CN CN202010166129.5A patent/CN113393555B/zh active Active
Patent Citations (10)
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 | 高通股份有限公司 | 使用光线跟踪渲染以生成可见性流 |
US20180240268A1 (en) * | 2017-02-17 | 2018-08-23 | Microsoft Technology Licensing, Llc | Variable rate shading |
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 | 广东省城乡规划设计研究院 | 数据渲染方法及装置 |
Non-Patent Citations (3)
Title |
---|
KIRILL BELONOGOV: "UnityOverdrawMonitor", pages 1 - 2, Retrieved from the Internet <URL:《https://github.com/ken48/UnityOverdrawMonitor/blob/master/OverdrawMonitor/Assets/OverdrawMonitor/Sources/CameraOverdrawMonitor.cs》> * |
波波沙: "一个好用的 overdraw 分析工具", pages 1 - 6, Retrieved from the Internet <URL:《https://zhuanlan.zhihu.com/p/83232058》> * |
雨松MOMO: "Unity3D研究院之LWRP中计算准确overdraw(一百一十)", pages 1 - 8, Retrieved from the Internet <URL:《https://www.xuanyusong.com/archives/4674》> * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167907A (zh) * | 2023-04-21 | 2023-05-26 | 北京麟卓信息科技有限公司 | 一种基于逐级逼近的像素填充率测试方法 |
CN116167907B (zh) * | 2023-04-21 | 2023-06-20 | 北京麟卓信息科技有限公司 | 一种基于逐级逼近的像素填充率测试方法 |
CN116302764A (zh) * | 2023-05-22 | 2023-06-23 | 北京麟卓信息科技有限公司 | 一种基于最小数据填充的纹理填充率测试方法 |
CN116302764B (zh) * | 2023-05-22 | 2023-07-18 | 北京麟卓信息科技有限公司 | 一种基于最小数据填充的纹理填充率测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113393555B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230245372A1 (en) | Random Accessible Lossless Parameter Data Compression for Tile Based 3D Computer Graphics Systems | |
CN100357972C (zh) | 计算机绘图之颜色资料的压缩系统及方法 | |
Salvi et al. | Adaptive transparency | |
JP3462211B2 (ja) | 多態グラフィック・デバイス | |
CN110544290A (zh) | 数据渲染方法及装置 | |
US10242484B1 (en) | UV mapping and compression | |
US10347042B2 (en) | Importance sampling of sparse voxel octrees | |
WO2000019377B1 (en) | Graphics processor with deferred shading | |
JP2010165357A (ja) | グラフィックスを処理する方法およびそのための装置 | |
CN113393555B (zh) | 一种基于着色器的屏幕填充率统计方法及其系统 | |
Roettger et al. | A two-step approach for interactive pre-integrated volume rendering of unstructured grids | |
US8395629B1 (en) | Reducing data stored in a deep-frame buffer | |
US20060284883A1 (en) | Device for processing pixel rasterization and method for processing the same | |
US7400325B1 (en) | Culling before setup in viewport and culling unit | |
CN115168682B (zh) | 一种大规模时空点数据lod绘制方法及装置 | |
CN113495933A (zh) | 一种矢量瓦片显示方法及系统 | |
CN114758051A (zh) | 一种图像渲染方法及其相关设备 | |
CN114491351A (zh) | 可适配WebGIS平台的格点数据可视化方法和系统 | |
US11417058B2 (en) | Anti-aliasing two-dimensional vector graphics using a multi-vertex buffer | |
KR20180048081A (ko) | 텍스쳐 처리 방법 및 장치 | |
US10388060B2 (en) | System and method for multi-view rendering | |
CN100583162C (zh) | 正向纹理映射三维图形系统 | |
CN116167907B (zh) | 一种基于逐级逼近的像素填充率测试方法 | |
CN111882498A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN109872268B (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 |