CN109658487B - 一种实时渲染器优化方法及系统 - Google Patents
一种实时渲染器优化方法及系统 Download PDFInfo
- Publication number
- CN109658487B CN109658487B CN201811294762.1A CN201811294762A CN109658487B CN 109658487 B CN109658487 B CN 109658487B CN 201811294762 A CN201811294762 A CN 201811294762A CN 109658487 B CN109658487 B CN 109658487B
- Authority
- CN
- China
- Prior art keywords
- gpu
- data
- cpu
- communication
- rendering
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
一种实时渲染器优化方法,包括以下步骤:根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据进行分类管理,并进行数据备份;在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理;在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理;对图像进行实时渲染。本发明还提供一种实时渲染器优化系统,提高CPU的性能、减少GPU和CPU的通讯数据量,避免后续渲染错误延续。
Description
技术领域
本发明涉及一种实时渲染器,特别是涉及一种实时渲染器优化方法及系统。
背景技术
在现有游戏和虚拟现实开发中,通常采用图形处理器(GPU)实时渲染器将物体绘制到屏幕上。在渲染过程中,通过中央处理器(CPU)和图形处理器(GPU)之间的数据交互,完成对图像的实时渲染。
尽管图形处理器(GPU)和中央处理器(CPU)得到了飞速发展,但由于CPU和GPU的处理性能有限,在游戏开发中,目前游戏中的GPU实时渲染系统的中仍然存在渲染不均衡的问题,会导致游戏中的GPU和CPU存在相互运行阻塞问题。这种渲染不均衡的问题,往往导致游戏卡顿,画面不流畅,给用户一种较差的体验感受;另外许多开发者自身技术水平有限,对GPU的了解也远不及对于CPU的了解,在游戏开发中针对GPU的性能优化并不能充分发挥GPU的性能。如何降低开发者的自身的技术水平,同时又能够最大限度的发挥出CPU和GPU的最佳性能,给游戏玩法更流畅的感受,已经成为一个亟待解决的技术问题。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种实时渲染器优化方法及系统,在CPU与GPU的交互通讯之间,建立数据缓存机制,将设置错误的数据恢复到之前的正确数据,只有通过数据缓存机制确认的有效数据才传送给GPU,能够最大限度的发挥出CPU和GPU的最佳性能,给游戏玩法更流畅的感受。
为实现上述目的,本发明提供的实时渲染器优化方法,包括以下步骤:
根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据进行分类管理,并进行数据备份;
在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理;
在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理;
对图像进行实时渲染。
进一步地,所述GPU的工作状态操作数据,包括,GPU在渲染过程中是否开启半透明混合方式、是否进行模板测试以及是否进行顶点剔除;
所述GPU的渲染操作数据,包括,GPU渲染过程中是否进行顶点渲染或三角形渲染、渲染时设置顶点数据、索引和贴图数据。
进一步地,所述GPU的通讯数据,包括,GPU的半透明混合数据、常量输入数据、渲染的写入数据。
进一步地,所述在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理的步骤,是将CPU发送给GPU的数据与备份数据进行比较,数据相同,则跳过此次GPU和CPU的通讯。
更进一步地,所述在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理的步骤,包括:
每次GPU和CPU的通讯中,将GPU的通讯数据与上次的渲染数据进行比较检测;
检测到本次GPU的通讯数据错误,则将GPU的通讯数据恢复为之前的数据。
为实现上述目的,本发明还提供一种实时渲染器优化系统,包括,CPU、GPU,其中,
在所述CPU 与GPU之间设置有数据缓存管理模块,所述数据缓存管理模块,在所述CPU 与GPU之间交互通讯时,对所述CPU发送给GPU的数据进行比较处理、对GPU的通讯数据进行检测处理。
进一步地,所述数据缓存管理模块,将CPU发送给GPU的数据与备份数据进行比较,数据相同,则跳过此次GPU和CPU的通讯。
更进一步地,所述数据缓存管理模块,将GPU的通讯数据与上次的渲染数据进行比较检测,在检测到本次GPU的通讯数据错误时,则将GPU的通讯数据恢复为之前的数据。
本发明的实时渲染器优化方法及系统,具有如下的优点及显著效果:在CPU与GPU的交互通讯之间,,建立了一种数据缓存机制,该数据缓存机制分别与CPU和GPU进行交互通讯,并在数据缓存机制的基础上新增GPU渲染操作中的数据恢复机制,该数据恢复机制通过与本次渲染操作之前的数据检测比对,使GPU的工作模式具有容错能力,将设置错误的数据恢复到之前的正确数据,只有通过数据缓存机制确认的有效数据才传送给GPU。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的实时渲染器优化方法流程图;
图2为根据本发明的实时渲染器优化系统结构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明的实时渲染器优化方法及系统,基于GPU和CPU的异步通讯机制特点,在GPU和CPU两者的通讯中,建立一种数据和操作的缓存机制,可以提高CPU和GPU的效率,并在缓存机制的基础上新增GPU渲染中的渲染数据恢复机制,当操作出现一定问题时,GPU的工作因为会存在有GPU渲染相关的技术错误。该机制通过与这次渲染操作之前数据检测比对方式,让GPU的工作模式具有一定容错能力,将错误数据恢复到操作之前的数据。
图1为根据本发明的实时渲染器优化方法流程图,下面将参考图1,对本发明的实时渲染器优化方法进行详细描述。
首先,在步骤101,对CPU需要发送给GPU的数据进行分类管理并备份。该步骤中,在CPU与GPU需要进行交互数据时,将CPU需要对GPU的操作数据和操作方式内容进行分类管理,管理的对象为GPU的工作状态操作数据和GPU的渲染操作数据;根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据分别区分开来做不同管理,以有效降低在管理对象的内存管理复杂度,提高CPU的性能。其中GPU的工作状态操作数据,包括,GPU在渲染过程中半透明混合方式、进行模板测试以及进行顶点剔除;GPU的渲染操作数据,包括,GPU渲染过程中进行顶点渲染还是三角形渲染以及渲染时设置顶点数据、索引和贴图数据。
在步骤102,在每次GPU和CPU的通讯中,将CPU发给GPU的数据和备份数据进行一次数据比较。数据相同则进入下一步骤,否则转到步骤104。
在步骤103,直接跳过此次GPU和CPU的通讯,减少GPU和CPU的通讯数据量,让两者相互工作状态的影响降低,提高有效工作时间。
在步骤104,比较数据不同,和上次的渲染相关数据进行检测,减少重复的GPU和CPU通讯数据,并对渲染相关数据发生的错误,进行容错机制恢复,将数据恢复到这次针对GPU操作之前的数据。例如:游戏中,在绘制渲染花草数目的时候,关闭了半透明混合状态等等。此机制会自动检测错误,给予一定程度的状态修正,避免后续渲染错误延续,确保GPU可以按照预期的状态继续工作。
由于阿法半透明的混合状态开启,必须在半透明渲染批次里面进行,如果其他批次将阿法半透明的混合状态开启这种状态,则被视为错误的渲染状态,则在当前渲染批次结束以后,直接还原为阿法半透明的混合状态关闭,以避免当前渲染批次之后的其他渲染物件的渲染。
图2为根据本发明的实时渲染器优化系统结构图,如图2所示,本发明的实时渲染器优化系统,包括,中央处理器(CPU)10、数据缓存管理模块20,以及图像处理器(GPU)30,其中,
中央处理器(CPU)10,其通过数据缓存管理模块20与图像处理器(GPU)30进行交互通讯,并对需要发送给GPU的数据进行分类管理并备份。本发明中,CPU根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据分别区分开来做不同管理,以有效降低在管理对象的内存管理复杂度,提高CPU的性能。
数据缓存管理模块20,其将CPU需要将数据分为GPU的工作状态操作数据和GPU渲染的操作数据;进行有效数据的确认将CPU发送的数据与备份数据进行比较并进行处理;进行容错机制恢复,将数据恢复到这次针对GPU操作之前的数据,确保GPU可以按照预期的状态继续工作。
图像处理器(GPU)30,其通过数据缓存管理模块20与中央处理器(CPU)10进行交互通讯,对图像进行实时渲染。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种实时渲染器优化方法,包括以下步骤:
根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据进行分类管理,并进行数据备份;
在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理;
在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理;
对图像进行实时渲染;
所述GPU的工作状态操作数据,包括,
GPU在渲染过程中是否开启半透明混合方式、是否进行模板测试以及是否进行顶点剔除;
所述GPU的渲染操作数据,包括,GPU渲染过程中是否进行顶点渲染或三角形渲染、渲染时设置顶点数据、索引和贴图数据;
所述GPU的通讯数据,包括,GPU的半透明混合数据、常量输入数据、渲染的写入数据。
2.根据权利要求1所述的实时渲染器优化方法,其特征在于,所述在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理的步骤,是将CPU发送给GPU的数据与备份数据进行比较,数据相同,则跳过此次GPU和CPU的通讯。
3.根据权利要求1所述的实时渲染器优化方法,其特征在于,所述在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理的步骤,包括:
每次GPU和CPU的通讯中,将GPU的通讯数据与上次的渲染数据进行比较检测;
检测到本次GPU的通讯数据错误,则将GPU的通讯数据恢复为之前的数据。
4.一种实时渲染器优化系统,采用权利要求1-3任一项所述的实时渲染器优化方法,包括,CPU、GPU,其特征在于,在所述CPU 与GPU之间设置有数据缓存管理模块,所述数据缓存管理模块,在所述CPU 与GPU之间交互通讯时,对所述CPU发送给GPU的数据进行比较处理、对GPU的通讯数据进行检测处理。
5.根据权利要求4所述的实时渲染器优化系统,其特征在于,所述数据缓存管理模块,将CPU发送给GPU的数据与备份数据进行比较,数据相同,则跳过此次GPU和CPU的通讯。
6.根据权利要求4所述的实时渲染器优化系统,其特征在于,所述数据缓存管理模块,将GPU的通讯数据与上次的渲染数据进行比较检测,在检测到本次GPU的通讯数据错误时,则将GPU的通讯数据恢复为之前的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811294762.1A CN109658487B (zh) | 2018-11-01 | 2018-11-01 | 一种实时渲染器优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811294762.1A CN109658487B (zh) | 2018-11-01 | 2018-11-01 | 一种实时渲染器优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109658487A CN109658487A (zh) | 2019-04-19 |
CN109658487B true CN109658487B (zh) | 2022-07-15 |
Family
ID=66110658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811294762.1A Active CN109658487B (zh) | 2018-11-01 | 2018-11-01 | 一种实时渲染器优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109658487B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112258615B (zh) * | 2020-10-23 | 2023-10-03 | 南京维伍网络科技有限公司 | 一种Revit到D5渲染器实时渲染的数据转换方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504185A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种渲染优化方法和装置 |
-
2018
- 2018-11-01 CN CN201811294762.1A patent/CN109658487B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504185A (zh) * | 2016-10-26 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种渲染优化方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109658487A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104503783B (zh) | 一种呈现服务器硬件初始化程度的方法及服务器 | |
CN109032838B (zh) | 虚拟机备份恢复数据一致性的自动校验方法 | |
JP2017201470A (ja) | 設定支援プログラム、設定支援方法及び設定支援装置 | |
US20060150108A1 (en) | Information processing device, information processing method, storage medium, and program | |
CN110766167B (zh) | 交互式特征选择方法、设备及可读存储介质 | |
JP2020530125A (ja) | ディスプレイスクリーン周辺回路の検出方法、ディスプレイスクリーン周辺回路の検出装置、電子機器及び記憶媒体 | |
US7610482B1 (en) | Method and system for managing boot trace information in host bus adapters | |
CN110502345A (zh) | 一种过载保护方法、装置、计算机设备及存储介质 | |
CN109658487B (zh) | 一种实时渲染器优化方法及系统 | |
US20240152439A1 (en) | Detection Method and Electronic Device | |
CN106547667B (zh) | 一种移动终端的故障提示方法及系统 | |
WO2017219872A1 (zh) | 机顶盒的升级、换台方法及系统 | |
US20120159256A1 (en) | File System Resiliency Management | |
CN109871334A (zh) | 电缆调制解调器及操作方法 | |
WO2023082440A1 (zh) | 故障复现方法、装置、设备和可读存储介质 | |
CN111488195A (zh) | 虚拟机克隆方法、装置、设备及计算机可读存储介质 | |
CN105727556A (zh) | 一种图像绘制的方法、相关设备及系统 | |
CN115576766A (zh) | 闪存管理算法调试方法、系统、设备和可读存储介质 | |
CN113127260B (zh) | 一种显示异常处理方法、装置、设备及介质 | |
CN109445877B (zh) | 一种检测游戏服务器多线程使用同一虚拟机的方法 | |
US20020101424A1 (en) | Method of testing graphic accelerator in DOS mode | |
CN105159804B (zh) | 一种数据块处理的方法、装置及设备 | |
US11900654B2 (en) | Image difference detection | |
CN114138557B (zh) | 一种存储快照回滚数据一致性测试方法与装置 | |
WO2024023948A1 (ja) | 分析装置、分析方法および分析プログラム |
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 |