CN105511890A - 一种图形界面更新方法和装置 - Google Patents

一种图形界面更新方法和装置 Download PDF

Info

Publication number
CN105511890A
CN105511890A CN201610064040.1A CN201610064040A CN105511890A CN 105511890 A CN105511890 A CN 105511890A CN 201610064040 A CN201610064040 A CN 201610064040A CN 105511890 A CN105511890 A CN 105511890A
Authority
CN
China
Prior art keywords
instruction
subscriber equipment
common factor
dirty region
data stream
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
Application number
CN201610064040.1A
Other languages
English (en)
Other versions
CN105511890B (zh
Inventor
王伟光
曹文升
韩祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610064040.1A priority Critical patent/CN105511890B/zh
Publication of CN105511890A publication Critical patent/CN105511890A/zh
Priority to PCT/CN2017/072408 priority patent/WO2017129105A1/zh
Priority to US15/762,266 priority patent/US10645005B2/en
Application granted granted Critical
Publication of CN105511890B publication Critical patent/CN105511890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/209Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种图形界面更新方法和装置,以有助于减少服务器和用户设备交互的网络流量,并提高服务器的运行效率。在本发明一些可行的实施方式中,所述方法应用于交互式应用系统,所述交互式应用系统包括服务器和用户设备,所述方法包括:所述服务器将图形界面需要更新的区域记录为脏区域;在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集,向所述用户设备发送所述交集的指令数据流,所述交集的指令数据流用于所述用户设备更新所述用户设备侧的脏区域内的画面。

Description

一种图形界面更新方法和装置
技术领域
本发明涉及云技术领域,具体涉及一种图形界面更新方法和装置。
背景技术
随着近年来终端技术和网络带宽的高速发展,云计算技术的日趋成熟催生了云交互系统,现有的云交互系统通常包括服务器和多个用户设备,服务器可以是集群服务器,多种交互式应用都可以运行在云交互系统中。
在运行交互式应用时,服务器和用户设备可能需要交互图形界面。其中,服务器端每次更新图形界面的缓存数据时,都将更新的缓存数据发送到用户设备端。
实践发现,现有的图形界面交互技术需要消耗的网络流量比较大,并且频繁的图形界面交互容易影响服务器端的运行效率。
发明内容
本发明实施例提供一种图形界面更新方法和装置,以有助于减少服务器和用户设备交互的网络流量,并提高服务器的运行效率。
本发明第一方面提供一种图形界面更新方法,所述方法应用于交互式应用系统,所述交互式应用系统包括服务器和用户设备,所述方法包括:所述服务器将图形界面需要更新的区域记录为脏区域;在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集,向所述用户设备发送所述交集的指令数据流,所述交集的指令数据流用于所述用户设备更新所述用户设备侧的脏区域内的画面。
本发明第二方面提供一种服务器,所述装置应用于交互式应用系统的服务器,所述交互式应用系统包括用户设备和所述服务器,所述装置包括:记录模块,用于将图形界面需要更新的区域记录为脏区域;计算模块,用于在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集;发送模块,用于向所述用户设备发送所述交集的指令数据流,所述交集的指令数据流用于所述用户设备更新所述用户设备侧的脏区域内的画面。
由上可见,在本发明的一些可行的实施方式中,采用服务器将图形界面需要更新的区域记录为脏区域,在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集,向所述用户设备发送所述交集的指令数据流的技术方案,取得了以下效果:
在实际更新图形界面时,才发送交集的指令数据流,也就是对交集串流,减少了串流的次数;而且串流的仅仅是交集,而不是整个脏区域,减少了串流的数据;并且,有些无用的数据流与绘图指令指示的数据区间没有交集,就不进行串流,进一步减少了串流的数据;从而,实现了网络流量的优化,可以有效减少串流的网络流量;
另外,由于不必在更新缓存数据时进行串流,服务器上可以减少大量的内存拷贝操作,从而可以有效提高服务器的运行效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是同步串流的流程示意图;
图2是异步串流的流程示意图;
图3是对一维顶点缓存更新的伪代码的示意图;
图4是图形界面更新时的数据使用示意图;
图5是交互式应用系统的架构示意图;
图6是本发明实施例提供的一种图形界面更新方法的流程示意图;
图7是本发明一具体场景实施例中的图形界面更新方法的流程示意图;
图8是调用绘制函数时的具体流程图;
图9是脏区域算法的过程示意图;
图10是本发明实施例提供的一种图形界面更新装置的结构示意图;
图11是本发明实施例提供的另一种图形界面更新装置的结构示意图;
图12是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
交互式应用系统包括服务器和用户设备,在运行云游戏等交互式应用时,服务器和用户设备可能需要交互图形界面。交互式应用分别运行在服务器和用户设备的客户端通常被称为Trace端和Retrace端。以云游戏为例,Trace端是指:运行在云游戏服务器上的游戏客户端,即云游戏的云端,执行游戏的主要逻辑运行,把与用户交互有关的图形界面,经网络传送给Retrace端。Retrace端是指:运行在用户设备上的客户端,即云游戏的用户端,用于表现Trace端的游戏图形界面,把用户的鼠标、键盘等设备输入,经网络传送给Trace端。
Trace端和Retrace端交互图形界面时,把应用程序编程接口(ApplicationProgrammingInterface,Api)、输入设备、输出设备的数据,经网络编码后,发送给对端,可称为串流。目前有两种串流技术,即同步串流和异步串流。
如图1所示,是同步串流的流程示意图。同步串流技术中,Trace端对Api的串流,一般发生在调用Api的时候,函数调用一般先进入Hook(钩子注入)Api,接着调用真实的Direct3DApi,最后把Api的函数、参数、返回值,都编码成数据,串流到Retrace端。
其中,Direct3D是基于微软的通用对象模式COM(CommonObjectMode)的3D图形API,是DirectX(DirecteXtension,DX)的一部分。DirectX是微软公司创建的一种多媒体编程接口,由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。显示部分分为DirectDraw和Direct3D,前者负责2D图像加速,后者负责3D效果的显示。
Hook技术是把原本的函数执行过程替换成自定义的函数,Hook可以接触到需要修改的Api函数入口点,改变它的地址指向新的自定义的函数。
如图2所示,是异步串流的流程示意图。以Direct3DSDK(SoftwareDevelopmentKit,软件开发工具包)为例,异步串流技术针对缓存数据例如针对一维顶点缓存(VertexBuffe)的更新,其伪代码如图3所示,其过程如图2所示,包括:
首先调用加锁(Lock)函数例如IDirect3DVertexBuffer9::Lock()锁定一个数据区间以获得访问权限,对Lock的调用通常先进入HookApi,接着调用真实的Direct3DApi;然后,串流Lock的Api数据到用户设备。
然后在锁定的数据区间对VertexBuffe进行缓存数据更新,即Update(ppbDate),更新方法可采用Memcpy函数,也可以采用其它方法。
需要说明的是,调用Lock之后,调用UnLock之前,游戏还有可能调用其它Api,值得指出的是,每次调用Api通常都是先进入HookApi,接着调用真实的Api,且每次调用API之后,就立即将该Api的数据串流到用户设备。
再调用解锁(UnLock)函数例如IDirect3DVertexBuffer9::UnLock()释放锁定的数据区间。对UnLock的调用也是先进入HookApi,接着调用真实的Direct3DApi。其中,IDirect3DVertexBuffer9::Lock()包括四个参数,分别是:OffsetToLock(加锁内存起始地址),SizeToLock(加锁内存大小),ppbData(返回内存指针地址),flags(加锁属性)。
需要说明的是,Update(ppbDate)并不是DirectX3D的Api,所以在锁定了一个数据区间后,在Trace端并不知道如何更新这个区间的数据。因此如图2所示,在IDirect3DVertexBuffer9::UnLock()调用时,就要模拟生成一个Memcpy函数,用来串流游戏更新的缓存数据,具体的,从记录中找出VertexBuffe的锁定的数据区间,并把该区间内的数据从Direct3D中拷贝到缓存Temp中,HookApi调用模拟生成的Memcpy,把Temp中的数据作为源数据,串流到用户设备。最后还要串流UnLock()的Api数据。
于是,一个UnLock()函数调用,会串流两个函数数据。因此,每次更新缓存数据时,都要串流三个函数:Lock()、Memcpy()、UnLock()。另外,在UnLock()串流数据时要按Lock()锁定的数据区间的大小来串流。
交互式应用例如云游戏,其图形界面的缓存数据一般包括:一维顶点缓存、索引缓存,二维贴图,针对3D游戏,还包括立体贴图。
实践发现,上述指令串流技术,在串流一维顶点缓存(VertexBuffer)、索引缓存(IndexxBuffer),二维贴图,立体贴图等数据时,有如下缺陷:
一、浪费流量:
以VertexBuffer为例,从上述异步串流技术可知:
1、每一次调用UnLock()时,都会异步串流一个Memcpy函数,其数据大小为Lock()时指定的SizeToLock,那么当游戏每次对一个VertexBuffer的数据进行更新的时候,都要串流三个函数:Lock()、Memcpy()、UnLock();
2、请参考如图4所示的图形界面更新时的数据使用示意图。假设游戏对一个VertexBuffer多次更新,例如两次,这两次更新锁定或者说使用的数据区间分别是[a,b],[c,d],但在对图形界面进行绘制更新时使用的VertexBuffer区间是[e,f],如果[e,f]与[a,b],[c,d]并没有交集,那么,串流的数据区间[a,b]、[c,d]实际并不会被使用,则在这次绘制中就浪费了网络流量。
3、游戏逻辑层在Lock()时,可能会指示锁定一个较大的数据区间,而实际上可能只更新了一小段数据,更新的数据小于锁定的数据区间,但在UnLock()串流数据时,却要按Lock()指示的数据区间大小来串流,使得一些无需串流的数据也被串流了,这就会导致网络流量的浪费。
分析原因在于:3D游戏引擎为一维顶点缓存、索引缓存,二维贴图,立体贴图等,提供了Lock()、UnLock()、LockRect()、UnLockRect()等函数,但是没有提供直接更新缓存数据的Api,游戏除了可以通过Lock()时,得到的数据指针,可以用任意的方式,更新任意大小的数据,而且更新的数据量,可以比Lock()时指定的区间小很多;这样导致在UnLock()时,HookApi无法得知游戏到底更新了多少数据,以及有多少数据在要绘制时使用,所以只能按Lock()的区间大小,进行数据串流。
二、效率低下:
3D游戏引擎为一维顶点缓存、索引缓存,二维贴图,立体贴图等,提供的加锁/解锁函数,例如用于一维的Lock()、UnLock(),用于二维的LockRect()、UnLockRect()等函数,在更新数据时,考虑的都是把数据从游戏逻辑层向系统内存或显卡内存拷贝,且3D游戏引擎及显卡都为这样的使用模型进行过优化,但在指令串流技术方案中使用的,从显卡内存取数据到内存的过程,速度比较慢,且影响图形处理器(GraphicsProcessingUnit,GPU)的运算速度;所以当大量UnLock()函数调用时,会导致大量的显卡数据到内存,就会导致Trace端运行效率低下。
由上可见,采用上述串流技术,Trace端每次更新图形界面的缓存数据时,都将更新的缓存数据串流到Retrace端。特别的,采用异步串流技术时:每次更新缓存数据,首先要调用加锁(Lock)函数锁定一个数据区间以获得访问权限,才能进行更新操作,然后还要调用解锁函数释放锁定的数据区间。其中,更新的缓存数据需要利用模拟生成的内存拷贝(Memcpy)函数来串流,也就是说,每次更新缓存数据时,都要串流以下三种函数:Lock()、Memcpy()、UnLock()。并且,串流时是将锁定的整个数据区间串流到Retrace端。可见,上述串流技术需要消耗的网络流量比较大,并且,大量的Memcpy函数导致大量的内存拷贝操作,会影响Trace端的运行效率。
为了解决上述串流技术导致的Trace端网络流量消耗大且运行效率不高的技术问题,本发明实施例提供一种图形界面更新方法和装置。下面通过具体实施例,分别进行详细的说明。
(实施例一、)
本发明实施例提供一种图形界面更新方法。
所述方法应用于如图5所示的交互式应用系统,所述交互式应用系统包括服务器和用户设备。所述服务器上运行有Trace端,所述用户设备上运行有Retrace端。Trace端是交互式应用例如云游戏的云端,执行游戏的主要逻辑运行,把与用户交互有关的图形界面,经网络传送给Retrace端,传送过程包括:游戏逻辑调用Direct3DApi来生成图形界面,函数调用一般先进入HookApi,接着调用真实的Direct3DApi;服务器提取API数据,串流到用户设备。Retrace端是运行在用户设备上的用户端,可以接收API数据,回放Direct3DApi,生成并显示图形界面。
请参考图6,所述方法可包括:
110、所述服务器将图形界面需要更新的区域记录为脏区域。
本发明实施例中,当服务器确定图形界面需要更新的区域时,不需要立即将该区域的数据串流到用户设备,而是仅仅将该区域记录为脏区域。
通常,服务器更新图形界面的缓存数据时,首先要调用加锁指令例如Lock()函数以锁定一个数据区间从而获得该数据区间的访问权限,然后在获得访问权限的数据区间中进行缓存数据的更新,最后再调用解锁指令例如UnLock()函数释放锁定的数据区间。传统的串流技术中,需要模拟生成Memcpy函数,用来串流更新的缓存数据,也就是说,更新缓存数据时,需要串流Lock(),UnLock()和Memcpy三种函数的数据。
本发明实施例中,为了减少串流的次数,所述服务器在获取加锁指令时,将所述加锁指令指示的数据区间记录为脏区域,因为图形界面需要更新的区域包含于所述加锁指令指示的数据区间。服务器在执行该加锁指令后,不需要要进行串流,即,确定不向所述用户设备发送所述加锁指令对应的指令数据流。
进一步的,所述服务器将加锁指令指示的数据区间记录为脏区域,执行该加锁指令之后,还获取所述图形界面更新所需要的缓存数据以对缓存数据进行更新,并在更新后获取和执行解锁指令,释放加锁指令锁定的数据区间。本发明实施例中,由于已记录脏区域,在执行解锁指令后,不需要进行串流,即,确定不向所述用户设备发送所述缓存数据和所述解锁指令对应的指令数据流。
本发明实施例中的“脏区域”源自“脏矩形”算法,是对“脏矩形”的扩展。
“脏矩形”是指:屏幕的2D图形界面绘制的时候,当只有一小块矩形内的图象需要更新时,如果把整个屏幕都重新绘制的话,势必造成资源的浪费;于是,只是先标记它的矩形位置,且不立即更新,记为“脏”,该记为“脏”的矩形称为“脏矩形”;当更新界面的时候,把记录的所有矩形区域都更新一次,由“脏”变成“干净”,这种方法叫做“脏矩形”算法。“脏矩形”针对的是2D图形界面。
本发明实施例中的“脏区域”,针对的不再是2D图形界面,它包括:一维数组的区间、2维平面的矩形、3维空间的区域,且同样在有数据需要更新时,先记录“脏区域”,当更新时,才把“脏区域”变成干净的。
由于采用脏区域技术,服务器不对加锁指令例如Lock()函数进行串流,不再模拟生成Memcpy函数,也不对UnLock()函数进行串流。
120、在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集,向所述用户设备发送所述交集的指令数据流,所述交集的指令数据流用于所述用户设备更新所述用户设备侧的脏区域内的画面。
本发明实施例中,串流发生在更新图形界面时。在需要更新所述图形界面时,交互式应用例如云游戏会发出绘图指令,服务器获取绘图指令后,可以根据绘图指令的参数计算出绘图指令指示的数据区间,该数据区间为绘图区域。本步骤中,服务器在可以计算绘图区域与所述脏区域的交集,或者说,计算绘图指令指示的数据区间与所述脏区域的交集,仅对该交集进行串流,仅向所述用户设备发送所述交集的指令数据流,并且,服务器还需要对该绘图指令进行串流,向所述用户设备发送所述绘图指令的指令数据流。所述交集的指令数据流和所述绘图指令的指令数据流,用于所述用户设备更新所述用户设备侧的脏区域内的画面。
具体实现中,可以在串流之前,首先判断交集是否为空,如果交集为空,则不发送任何指令数据流,如果交集不为空,则针对所述交集生成模拟加锁指令例如Lock()函数,内存拷贝指令例如Memcpy函数和模拟解锁指令例如UnLock()函数,所述模拟加锁指令指示锁定所述交集,所述内存拷贝指令根据脏区域内需要更新的缓存数据生成;然后,服务器针对交集进行串流,即,向所述用户设备发送所述模拟加锁指令,内存拷贝指令和模拟解锁指令对应的指令数据流。
值得说明的是,在更新所述图形界面之前,可能已经更新过多次缓存数据,因此,脏区域可能会有多个,本步骤中得到的交集可能也会有多个,则发送交集对应的指令数据流之前,需要针对多个交集分别模拟生成一个Memcpy函数,串流时发送的是一个Lock()函数,和多个Memcpy函数,以及一个UnLock()函数对应的指令数据流。
进一步的,每次更新图形界面时,还需要更新脏区域,包括:将已经串流的交集,从记录的脏区域中去除,剩下的脏区域作为当前的脏区域,从而完成对脏区域的更新。
其中,交集对应的指令数据流发送到用户设备,被用户设备用来更新用户设备侧图形界面脏区域内的画面。在服务器侧,服务器也需要执行所述绘图指令,使用所述交集的数据更新服务器侧图形界面脏区域内的画面。至此,在服务器和用户设备两侧都完成对图形界面的更新。
由上可见,在本发明的一些可行的实施方式中,取得了以下效果:
在实际更新图形界面时,才发送交集的指令数据流,也就是对交集串流,而不必在更新缓存数据时进行串流,减少了串流的次数;而且串流的仅仅是交集,而不是整个脏区域,减少了串流的数据;并且,有些无用的数据流与绘图指令指示的数据区间没有交集,就不进行串流,进一步减少了串流的数据;从而,实现了网络流量的优化,可以有效减少串流的网络流量;
另外,由于不必在更新缓存数据时进行串流,服务器上可以减少大量的内存拷贝操作,从而可以有效提高服务器的运行效率。
为便于更好的理解本发明实施例提供的技术方案,下面通过一个具体场景下的实施方式为例进行介绍。
请参考图7,以交互式应用系统中运行的游戏更新一维顶点缓存(VertexBuffer)为例,本发明实施例的另一种图形界面更新方法,可包括:
S1、在需要更新图形界面的缓存数据时,游戏调用Lock()函数,即IDirect3DVertexBuffer9::Lock;由于采用Hook技术,Lock()函数调用先进入HookApi中;在HookApi中,先调用真实的Lock()函数;再把Lock()函数指示的数据区间与VertexBuffer对象关联起来,保存并记录为脏区域。
S2、游戏更新VertexBuffer数据,此时,服务器无操作。其中,更新方法可以是采用Memcpy函数,也可以是采用其它方法。
S3、游戏调用UnLock()函数,即IDirect3DVertexBuffer9::UnLock;由于采用Hook技术,Lock()函数调用先进入HookApi中;在HookApi中,直接转调真实的Unlock()函数。
S4、在需要更新图形界面时,游戏调用DrawPrimitive或者DrawIndexedPrimitive绘制函数。调用绘制函数时先进入HookApi,分析当前Api需要使用的VertexBuffer的数据区间;如果该数据区间在记录中是脏的,则模拟一次Lock()、若干次Memcpy函数、一次UnLock()函数,并把它们串流到用户设备。最后,在HookApi中,调用真实的DrawPrimitive或者DrawIndexedPrimitive绘制函数。关于本步骤的进一步的说明,请参考图8.
请参考图8,是调用DrawPrimitive或者DrawIndexedPrimitive绘制函数时的具体流程图,包括:
a1、先通过绘制函数的参数,计算绘制函数需要使用的VertexBuffer的数据区间;
a2、计算这个数据区间与之前记录的脏区域的交集;如果交集不为空,则模拟生成以下函数:一次Lock()、若干次Memcpy函数、一次UnLock()函数,并把它们串流,更新脏区域;如果为空,则不串流数据;
a3、串流DrawPrimitive或者DrawIndexedPrimitive;
a4、调用真实的DrawPrimitive或者DrawIndexedPrimitive。
可见,在绘制过程中,分析当前Api即绘制函数的需要使用的VertexBuffer的数据区间,在该数据区间为脏或者说该数据区间与脏区域有交集时,模拟生成三种Api的调用,即Lock()、Memcpy、UnLock()三种函数的调用,其中,Lock()、和UnLock()具体可以分别是:IDirect3DVertexBuffer9::Lock,IDirect3DVertexBuffer9::UnLock;最后再调用真实的DrawPrimitive或者DrawIndexedPrimitive。
下面,举例说明所述脏区域的算法:
如图9所示,一帧内,以对一个VertexBuffer多次调用Lock()、UnLock()函数,多次调用DrawPrimitive或者DrawIndexedPrimitive函数为例,说明本发明所用的脏区域算法:
b1、游戏第一次调用Lock()、UnLock(),更新区间[a,b]后,更新VertexBuffer的“脏区域”{[a,b]};
b2、游戏第二次对相同的VertexBuffer调用Lock()、UnLock(),更新区间[c,d]后,更新VertexBuffer的“脏区域”{[a,b],[c,d]};
b3、游戏第一次调用DrawPrimitive或者DrawIndexedPrimitive绘制函数时:
假设绘制函数使用区间[e,f],“脏区域”{[a,b],[c,d]},且e<a,c<f<d,如图所示,有两个区间为“脏”的:[a,b],[c,f],于是执行以下步骤:
模拟一次Lock()函数、两次Memcpy函数,分别串流[a,b],[c,f]区间的数据,一次UnLock()函数;
更新“脏区域”{[f,d]};
串流DrawPrimitive或者DrawIndexedPrimitive;
调用真实的DrawPrimitive或者DrawIndexedPrimitive;
b4、游戏第二次调用DrawPrimitive或者DrawIndexedPrimitive绘制函数时:
假设绘制函数使用区间[e,f],“脏区域”{[f,d]},它们没有交集,即当前绘制函数使用的数据都是“干净”的,不需要模拟Lock()、Memcpy、UnLock()函数,于是:
串流DrawPrimitive或者DrawIndexedPrimitive;
调用真实的DrawPrimitive或者DrawIndexedPrimitive。
由上可见,本发明一些可行的实施方式中,通过采用脏区域算法,可以取得以下技术效果:
一、减少串流的网络流量:本发明实施例技术方案应用在一维顶点缓存、索引缓存,二维贴图,立体贴图等缓存数据的Lock()、UnLock()、LockRect()、UnLockRect()等函数时,可以减少串流的Api数量;并且,这些函数,只在DrawPrimitive或者DrawIndexedPrimitive绘制函数调用时,才会被串流,且有脏区域算法管理,不会多次串流干净的区域,减少了串流的网络流量;尤其对Lock()区间大,更新缓存数据区间小的情况,可进一步减少串流的网络流量;从而,实现了对串流的网络流量优化。
二、提高服务器或者说Trace端的运行效率:由于减少了串流的Api数量,所以减少了从显卡到内存的内存拷贝操作,间接提高了Trace端的运行效率。
需要说明的,上文中时以一维顶点缓存(VertexBuffer)为例进行的说明,但在3D游戏中,还可以应用在索引缓存(IndexBuffer)、二维贴图、立体贴图的相应Lock、UnLock函数上,方法相同,不再赘述。
另外,在其它基于指令串流的远程方案中,只要Api满足以下条件:串流的数据,不会立即被Retrace端应用,如图形被绘制、音乐被播放等;当另一个Api被调用时,才使用它之前曾串流过的Api数据;就可以应用本发明技术方案。
(实施例二、)为了更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的相关装置。
请参考图10,本发明实施例提供一种图形界面更新装置200,所述装置200应用于交互式应用系统的服务器,所述交互式应用系统包括用户设备和所述服务器,所述装置200包括:
记录模块210,用于将图形界面需要更新的区域记录为脏区域;
计算模块220,用于在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集;
发送模块230,用于向所述用户设备发送所述交集的指令数据流,所述交集的指令数据流用于所述用户设备更新所述用户设备侧的脏区域内的画面。
请参考图11,在一些实施例中,
所述装置200还包括:第一获取模块240;用于获取加锁指令;
所述记录模块210,具体用于将加锁指令指示的数据区间记录为脏区域。
在一些实施例中,
所述第一获取模块240,还用于获取所述图形界面更新所需要的缓存数据,以及获取解锁指令;
所述装置200还包括:确定模块250,用于确定不向所述用户设备发送所述加锁指令对应的指令数据流;确定不向所述用户设备发送所述缓存数据和所述解锁指令对应的指令数据流。
请参考图11,在一些实施例中,所述装置200还包括:
第二获取模块260,用于获取绘图指令,所述绘图区域是所述绘图指令指示的数据区间;
所述发送模块230,还用于向所述用户设备发送所述绘图指令的指令数据流。
请参考图11,在一些实施例中,所述装置200还包括:
判断模块270,用于判断所述交集是否为空;
生成模块280,用于若所述交集不为空,针对所述交集生成模拟加锁指令,内存拷贝指令和模拟解锁指令;
所述发送模块230,具体用于向所述用户设备发送所述模拟加锁指令,内存拷贝指令和模拟解锁指令对应的指令数据流。
在一些实施例中,所述记录模块,还用于将所述交集从记录的脏区域中去除,完成对脏区域的更新。
在一些实施例中,所述装置200还包括:
绘图模块290,用于执行所述绘图指令,使用所述交集的数据更新所述脏区域内的画面。
可以理解,本发明实施例装置的各个功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述方法实施例中的相关描述,此处不再赘述。
由上可见,在本发明的一些可行的实施方式中,提供了一种图形界面更新装置,取得了以下效果:
在实际更新图形界面时,才发送交集的指令数据流,也就是对交集串流,而不必在更新缓存数据时进行串流,减少了串流的次数;而且串流的仅仅是交集,而不是整个脏区域,减少了串流的数据;并且,有些无用的数据流与绘图指令指示的数据区间没有交集,就不进行串流,进一步减少了串流的数据;从而,实现了网络流量的优化,可以有效减少串流的网络流量;
另外,由于不必在更新缓存数据时进行串流,服务器上可以减少大量的内存拷贝操作,从而可以有效提高服务器的运行效率。
(实施例三、)本发明实施例还提供一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序当被包括一个或多个处理器的服务器执行时使所述服务器执行如上文方法实施例所述的图形界面更新方法。
(实施例四、)请参考图12,本发明实施例还提供一种服务器500,可包括:
处理器510,存储器520,通信接口530,总线540;所述处理器510,存储器520,通信接口530通过所述总线540相互的通信;所述通信接口530,用于接收和发送数据;所述存储器520用于存储程序550;所述处理器510用于执行所述存储器中的所述程序。当所述服务器500运行时,所述处理器510执行所述存储器520存储的所述程序550,以使所述服务器500执行如上文方法实施例所述的图形界面更新方法。
其中,处理器510可用于将图形界面需要更新的区域记录为脏区域;在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集;
通信接口530可用于向所述用户设备发送所述交集的指令数据流,所述交集的指令数据流用于所述用户设备更新所述用户设备侧的脏区域内的画面。
其中,所述总线可以是工业标准体系结构(IndustryStandardArchitecture,简称为ISA)总线或外部设备互连(PeripheralComponent,简称为PCI)总线或扩展工业标准体系结构(ExtendedIndustryStandardArchitecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线中的一种或多种。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器可以包含高速RAM(RamdomAccessMemory)存储器。可选地,所述存储器还可以还包括非易失性存储器(non-volatilememory)。例如所述存储器可以包括磁盘存储器。
所述处理器可以是一个中央处理器(CentralProcessingUnit,简称为CPU),或者所述处理器可以是特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者所述处理器可以是被配置成实施本发明实施例的一个或多个集成电路。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的图形界面更新方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种图形界面更新方法,其特征在于,所述方法应用于交互式应用系统,所述交互式应用系统包括服务器和用户设备,所述方法包括:
所述服务器将图形界面需要更新的区域记录为脏区域;
在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集,向所述用户设备发送所述交集的指令数据流,所述交集的指令数据流用于所述用户设备更新所述用户设备侧的脏区域内的画面。
2.根据权利要求1所述的方法,其特征在于,所述服务器将图形界面需要更新的区域记录为脏区域包括:
所述服务器获取加锁指令,将所述加锁指令指示的数据区间记录为脏区域。
3.根据权利要求2所述的方法,其特征在于,所述将加锁指令指示的数据区间记录为脏区域之前还包括:
确定不向所述用户设备发送所述加锁指令对应的指令数据流;
所述将加锁指令指示的数据区间记录为脏区域之后还包括:
获取所述图形界面更新所需要的缓存数据,以及获取解锁指令;确定不向所述用户设备发送所述缓存数据和所述解锁指令对应的指令数据流。
4.根据权利要求1所述的方法,其特征在于,计算绘图区域与所述脏区域的交集包括:
获取绘图指令,所述绘图区域是所述绘图指令指示的数据区间;
所述方法还包括:向所述用户设备发送所述绘图指令的指令数据流。
5.根据权利要求1所述的方法,其特征在于,所述向所述用户设备发送所述交集的指令数据流之前还包括:
判断所述交集是否为空,若所述交集不为空,针对所述交集生成模拟加锁指令,内存拷贝指令和模拟解锁指令;
所述向所述用户设备发送所述交集的指令数据流包括:向所述用户设备发送所述模拟加锁指令,内存拷贝指令和模拟解锁指令对应的指令数据流。
6.根据权利要求1至5中任一所述的方法,其特征在于,所述方法还包括:
将所述交集从记录的脏区域中去除,完成对脏区域的更新。
7.根据权利要求1至5中任一所述的方法,其特征在于,所述方法还包括:
执行所述绘图指令,使用所述交集的数据更新所述脏区域内的画面。
8.一种图形界面更新装置,其特征在于,所述装置应用于交互式应用系统的服务器,所述交互式应用系统包括用户设备和所述服务器,所述装置包括:
记录模块,用于将图形界面需要更新的区域记录为脏区域;
计算模块,用于在需要更新所述图形界面时,计算绘图区域与所述脏区域的交集;
发送模块,用于向所述用户设备发送所述交集的指令数据流,所述交集的指令数据流用于所述用户设备更新所述用户设备侧的脏区域内的画面。
9.根据权利要求8所述的装置,其特征在于,
所述装置还包括:第一获取模块,用于获取加锁指令;
所述记录模块,具体用于将所述加锁指令指示的数据区间记录为脏区域。
10.根据权利要求9所述的装置,其特征在于,
所述第一获取模块,还用于获取所述图形界面更新所需要的缓存数据,以及获取解锁指令;
所述装置还包括:确定模块,用于确定不向所述用户设备发送所述加锁指令对应的指令数据流;确定不向所述用户设备发送所述缓存数据和所述解锁指令对应的指令数据流。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
所述装置还包括:第二获取模块,用于获取绘图指令,所述绘图区域是所述绘图指令指示的数据区间;
所述发送模块,还用于向所述用户设备发送所述绘图指令的指令数据流。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述交集是否为空;
生成模块,用于若所述交集不为空,针对所述交集生成模拟加锁指令,内存拷贝指令和模拟解锁指令;
所述发送模块,具体用于向所述用户设备发送所述模拟加锁指令,内存拷贝指令和模拟解锁指令对应的指令数据流。
13.根据权利要求8至12中任一所述的装置,其特征在于,
所述记录模块,还用于将所述交集从记录的脏区域中去除,完成对脏区域的更新。
14.根据权利要求8至12中任一所述的装置,其特征在于,所述装置还包括:
绘图模块,用于执行所述绘图指令,使用所述交集的数据更新所述脏区域内的画面。
CN201610064040.1A 2016-01-29 2016-01-29 一种图形界面更新方法和装置 Active CN105511890B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610064040.1A CN105511890B (zh) 2016-01-29 2016-01-29 一种图形界面更新方法和装置
PCT/CN2017/072408 WO2017129105A1 (zh) 2016-01-29 2017-01-24 一种图形界面更新方法和装置
US15/762,266 US10645005B2 (en) 2016-01-29 2017-01-24 GUI updating method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610064040.1A CN105511890B (zh) 2016-01-29 2016-01-29 一种图形界面更新方法和装置

Publications (2)

Publication Number Publication Date
CN105511890A true CN105511890A (zh) 2016-04-20
CN105511890B CN105511890B (zh) 2018-02-23

Family

ID=55719900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610064040.1A Active CN105511890B (zh) 2016-01-29 2016-01-29 一种图形界面更新方法和装置

Country Status (3)

Country Link
US (1) US10645005B2 (zh)
CN (1) CN105511890B (zh)
WO (1) WO2017129105A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017129105A1 (zh) * 2016-01-29 2017-08-03 腾讯科技(深圳)有限公司 一种图形界面更新方法和装置
CN110286992A (zh) * 2019-07-02 2019-09-27 中国工商银行股份有限公司 界面图形重绘的方法及装置
CN111309357A (zh) * 2020-02-24 2020-06-19 腾讯科技(成都)有限公司 云游戏软件的更新方法、装置、存储介质和云游戏系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111714894B (zh) * 2020-06-08 2023-07-21 咪咕互动娱乐有限公司 游戏数据的获取方法、装置、电子设备及存储介质
CN114064017A (zh) * 2020-08-04 2022-02-18 腾讯科技(深圳)有限公司 一种绘制方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020723A (ja) * 2007-07-12 2009-01-29 Casio Comput Co Ltd サーバ装置およびプログラム
US20090100483A1 (en) * 2007-10-13 2009-04-16 Microsoft Corporation Common key frame caching for a remote user interface
CN101847269A (zh) * 2009-03-27 2010-09-29 上海科泰世纪科技有限公司 多图层动画渲染系统及方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666551A (en) * 1994-06-30 1997-09-09 Digital Equipment Corporation Distributed data bus sequencing for a system bus with separate address and data bus protocols
US5758149A (en) * 1995-03-17 1998-05-26 Unisys Corporation System for optimally processing a transaction and a query to the same database concurrently
US7055151B1 (en) * 1998-04-03 2006-05-30 Applied Micro Circuits Corporation Systems and methods for multi-tasking, resource sharing and execution of computer instructions
WO2003065240A1 (en) * 2002-02-01 2003-08-07 John Fairweather System and method for managing collections of data on a network
GB0502891D0 (en) * 2005-02-12 2005-03-16 Next Device Ltd User interfaces
US7535475B2 (en) * 2005-11-01 2009-05-19 Adobe Systems Incorporated Virtual view tree
US7847798B1 (en) * 2006-10-24 2010-12-07 Adobe Systems Incorporated Clipping and culling artwork using a graphics processing unit
US20090240880A1 (en) * 2008-03-21 2009-09-24 Hitachi, Ltd. High availability and low capacity thin provisioning
US7962458B2 (en) * 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US8847970B2 (en) * 2012-04-18 2014-09-30 2236008 Ontario Inc. Updating graphical content based on dirty display buffers
US8994750B2 (en) * 2012-06-11 2015-03-31 2236008 Ontario Inc. Cell-based composited windowing system
WO2015110804A1 (en) * 2014-01-21 2015-07-30 Elektraglide Ltd A method and system for interactive graphics streaming
CN105511890B (zh) * 2016-01-29 2018-02-23 腾讯科技(深圳)有限公司 一种图形界面更新方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020723A (ja) * 2007-07-12 2009-01-29 Casio Comput Co Ltd サーバ装置およびプログラム
US20090100483A1 (en) * 2007-10-13 2009-04-16 Microsoft Corporation Common key frame caching for a remote user interface
CN101847269A (zh) * 2009-03-27 2010-09-29 上海科泰世纪科技有限公司 多图层动画渲染系统及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017129105A1 (zh) * 2016-01-29 2017-08-03 腾讯科技(深圳)有限公司 一种图形界面更新方法和装置
US10645005B2 (en) 2016-01-29 2020-05-05 Tencent Technology (Shenzhen) Company Limited GUI updating method and device
CN110286992A (zh) * 2019-07-02 2019-09-27 中国工商银行股份有限公司 界面图形重绘的方法及装置
CN111309357A (zh) * 2020-02-24 2020-06-19 腾讯科技(成都)有限公司 云游戏软件的更新方法、装置、存储介质和云游戏系统
CN111309357B (zh) * 2020-02-24 2022-07-12 腾讯科技(成都)有限公司 云游戏软件的更新方法、装置、存储介质和云游戏系统

Also Published As

Publication number Publication date
CN105511890B (zh) 2018-02-23
WO2017129105A1 (zh) 2017-08-03
US20180278529A1 (en) 2018-09-27
US10645005B2 (en) 2020-05-05

Similar Documents

Publication Publication Date Title
CN105511890A (zh) 一种图形界面更新方法和装置
KR100962920B1 (ko) 비주얼 및 장면 그래프 인터페이스
US10255650B2 (en) Graphics processing using dynamic resources
US9495722B2 (en) Developer controlled layout
CN103455396A (zh) 电子设备硬件性能的测试方法及装置
JP2002533837A (ja) エミュレーションタイムとリアルタイム間の同期を維持するシステム及び方法
CN109671147B (zh) 基于三维模型的纹理贴图生成方法及装置
US11094036B2 (en) Task execution on a graphics processor using indirect argument buffers
JP2017509092A (ja) 共有されるデータチャネルを用いるシェーダパイプライン
CN104850388A (zh) 网页绘制方法及装置
CN116028025A (zh) 一种汽车服务化模型框架生成方法、装置、设备及介质
JP2023533108A (ja) 道路ラベルを生成するための方法、装置、デバイス及び記憶媒体
CN110930492B (zh) 模型渲染的方法、装置、计算机可读介质及电子设备
CN110362375A (zh) 桌面数据的显示方法、装置、设备和存储介质
CN112634401B (zh) 一种平面轨迹绘制方法、装置、设备及存储介质
CN117237502A (zh) 一种三维渲染方法、装置、设备及介质
CN116152039B (zh) 图像渲染的方法
CN107615229B (zh) 用户界面装置和用户界面装置的画面显示方法
CN116109767A (zh) 三维场景的渲染方法、图像处理器、电子设备及存储介质
CN110930499B (zh) 一种3d数据处理方法及装置
CN114241094A (zh) 动画绘制方法、装置、存储介质及电子设备
CN114564268A (zh) 一种设备管理方法、装置、电子设备和存储介质
CN114092645A (zh) 三维场景的可视化搭建方法、装置、电子设备及存储介质
CN113538687A (zh) 基于vtk的有限元可视化方法、系统、装置及存储介质
Shakah et al. Graphics pipeline evolution: problems and solutions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant