CN112423111A - 图形引擎和适用于播放器的图形处理方法 - Google Patents
图形引擎和适用于播放器的图形处理方法 Download PDFInfo
- Publication number
- CN112423111A CN112423111A CN202011223807.3A CN202011223807A CN112423111A CN 112423111 A CN112423111 A CN 112423111A CN 202011223807 A CN202011223807 A CN 202011223807A CN 112423111 A CN112423111 A CN 112423111A
- Authority
- CN
- China
- Prior art keywords
- rendering
- engine
- player
- data
- graphics
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000009877 rendering Methods 0.000 claims abstract description 183
- 238000012545 processing Methods 0.000 claims abstract description 54
- 230000003993 interaction Effects 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002452 interceptive effect Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 abstract description 4
- 238000000034 method Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 244000309464 bull Species 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
- H04N21/4314—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for fitting data in a restricted space on the screen, e.g. EPG data in a rectangular grid
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4884—Data services, e.g. news ticker for displaying subtitles
Abstract
本申请公开了一种适用于播放器的图形处理方法,包括:通过图形引擎与播放器进行数据交互,以得到播放数据;基于所述播放数据和预设逻辑,通过所述图形引擎对所述播放器的下一帧执行图形处理操作。在本申请中,在所述引擎场景层和所述播放器之间设置通信机制,使得所述引擎场景层和所述播放器之间就正在播放的视频之播放数据进行交互,从而使得所述引擎场景层可以高效获取播放数据用于图形处理操作,尤其适用于视频播放业务,确保视频渲染效果。
Description
技术领域
本申请涉及图形处理技术领域,尤其涉及一种图形引擎,以及适用于播放器的图形处理方法、系统、计算机设备和计算机可读存储介质。
背景技术
随着互联网的发展,例如便携式计算机、平板式计算机、个人计算机、智能手机、平板式计算机等各类电子设备被广泛应用。为了提高用户体验,越来越多的操作系统或应用程序需要图形引擎的支持,通过图形引擎渲染二维图形或三维图形。现有的图形引擎有OSG(OpenSceneGraph,三维渲染引擎)、Unity引擎等。
在移动端时代,业务场景更为复杂,在不同的业务场景下需要的引擎功能不尽相同,轻量化要求也更高。部分公司根据自己的业务需要开发了不同的图形引擎,如,cocos2d-x、苹果公司的SpriteKit、Google公司开发的用于Flutter中的skia、阿里巴巴公司的Gcanvas等。其他各个公司也在根据自己的独特业务需求进行引擎设计。但是,上述诸多图形引擎中,都不能有效地适应视频播放业务。
发明内容
本申请实施例的目的是提供一种图形引擎,以及适用于播放器的图形处理方法、系统、计算机设备和计算机可读存储介质,用于解决图形引擎面向视频业务场景的适应问题。
本申请实施例的一个方面提供了一种图形引擎,包括:引擎场景层,用于根据预设逻辑执行图形处理操作;其中:根据所述预设逻辑执行所述图形处理操作,包括:基于预定传输协议与播放器交互以得到播放数据,及根据所述播放数据和所述预设逻辑执行所述图形处理操作。
可选的,所述播放数据包括所述播放器的视频播放进度;根据所述播放数据和所述预设逻辑执行所述图形处理操作,包括:根据所述视频播放进度和所述预设逻辑,获取各个弹幕的弹幕位置数据。
可选的,所述播放数据包括请求关闭弹幕的请求数据;根据所述播放数据和所述预设逻辑执行所述图形处理操作,包括:根据所述请求数据和所述预设逻辑进行弹幕隐藏。
可选的,还包括:视图层,用于将消息传递至所述引擎场景层;所述消息包括:帧更新信号、触控事件、场景协同信号和/或与所述播放器的交互数据。
可选的,还包括:Runtime运行层,用于运行JS代码;所述Runtime运行层绑定有JS应用程序接口;其中,所述JS应用程序接口作为所述图形引擎的对外开放接口,用于所述图形引擎和第三方功能模块之间的交互。
可选的,还包括:shell层,作为所述图形引擎和系统平台之间的交互接口,用于将所述图形引擎适配于目标系统平台。
可选的,所述引擎场景层,还用于:将多个纹理合并成一个纹理。
可选的,所述引擎场景层,还用于:更新场景中的多个节点的节点数据;根据所述多个节点的节点数据,为所述多个节点生成多个渲染指令;所述多个节点包括不需要独立渲染环境的一个或多个第一渲染节点和需要独立渲染环境的一个或多个第二渲染节点;将所述多个渲染指令缓存到多个渲染队列中;所述多个渲染队列包括第一渲染队列和一个或多个第二渲染队列;所述第一渲染队列用于缓存每个第一渲染节点的渲染指令;每个第二渲染队列分别对应一个第二渲染节点并用于缓存相应第二渲染节点的渲染指令;遍历所述多个渲染队列,将目标参数相同的多个渲染命令合并成一个渲染批次,以得到多个渲染批次;及根据各个渲染批次调用图形库或硬件。
本申请实施例的一个方面又提供了一种适用于播放器的图形处理方法,包括:通过图形引擎与播放器进行数据交互,以得到播放数据;基于所述播放数据和预设逻辑,通过所述图形引擎对所述播放器的下一帧执行图形处理操作。
可选的,所述图形引擎和所述播放器之间预先约定有用于交互的传输协议。
可选的,所述播放数据包括所述播放器的视频播放进度;通过所述图形引擎对所述播放器的下一帧执行图形处理操作,包括:根据所述视频播放进度和所述预设逻辑,获取各个弹幕的弹幕位置数据。
可选的,所述播放数据包括请求关闭弹幕的请求数据;通过所述图形引擎对所述播放器的下一帧执行图形处理操作,包括:根据所述请求数据和所述预设逻辑进行弹幕隐藏。
可选的,通过所述图形引擎对所述播放器的下一帧执行图形处理操作,还包括:将多个纹理合并成一个纹理。
可选的,通过所述图形引擎对所述播放器的下一帧执行图形处理操作,还包括:更新场景中的多个节点的节点数据;根据所述多个节点的节点数据,为所述多个节点生成多个渲染指令;所述多个节点包括不需要独立渲染环境的一个或多个第一渲染节点和需要独立渲染环境的一个或多个第二渲染节点;将所述多个渲染指令缓存到多个渲染队列中;所述多个渲染队列包括第一渲染队列和一个或多个第二渲染队列;所述第一渲染队列用于缓存每个第一渲染节点的渲染指令;每个第二渲染队列分别对应一个第二渲染节点并用于缓存相应第二渲染节点的渲染指令;遍历所述多个渲染队列,将目标参数相同的多个渲染命令合并成一个渲染批次,以得到多个渲染批次;及根据各个渲染批次调用图形库或硬件。
本申请实施例的一个方面又提供了一种适用于播放器的图形处理系统,包括:交互模块,用于通过图形引擎与播放器进行数据交互,以得到播放数据;图形处理模块,用于基于所述播放数据和预设逻辑,通过所述图形引擎对所述播放器的下一帧执行图形处理操作。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现如上所述的适用于播放器的图形处理方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的适用于播放器的图形处理方法的步骤。
本申请实施例提供的图形引擎,以及适用于播放器的图形处理方法、系统、计算机设备和计算机可读存储介质,为适应视频播放业务,在所述引擎场景层和所述播放器之间设置通信机制,使得所述引擎场景层和所述播放器之间就正在播放的视频之播放数据进行交互,使得图形引擎可以高效获取播放数据用于图形处理操作,确保视频渲染效果。
附图说明
图1示意性示出了根据本申请实施例一的图形引擎的架构图;
图2为携带弹幕的视频帧;
图3示意性示出了根据本申请实施例二的适用于播放器的图形处理方法的流程图;
图4为图3中步骤S302的子步骤图;
图5为图3中步骤S302的另一子步骤图;
图6为图3中步骤S302的另一子步骤图;
图7为图3中步骤S302的另一子步骤图;
图8示意性示出了渲染一帧的具体流程图;
图9示意性示出了根据本申请实施例三的适用于播放器的图形处理系统的框图;及
图10示意性示出了根据本申请实施例四的适于实现适用于播放器的图形处理方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请的术语解释:
图元,任何一个图形都是由点、线、面等基础图案或者重复的图案组合而成,这些图案即图元。
图形引擎,是用于图形绘制的功能组件,随着图形软硬件技术的快速发展,图形引擎也得到了快速的发展,在动画、虚拟现实、游戏开发、仿真模拟等领域得到应用。
DirectX(基于微软的通用对象模式的图形接口)和OpenGL(Open GraphicsLibrary,开放式底层图形库)可以用于实现编写三维图形。但是,由于其设计场景中的具体对象较为困难,更着重于基础图元,因此后来对其进行封装,成为使用更加简便,功能更加丰富的开发环境,可以称之为图形引擎,诸如图形引擎OSG和Unity。
在移动端时代,业务场景更为复杂,在不同的业务场景下需要的引擎功能不尽相同,轻量化要求也更高。部分公司根据自己的业务需要开发了不同的图形引擎,如,cocos2d-x、苹果公司的SpriteKit、Google公司开发的用于Flutter中的skia、阿里巴巴公司的Gcanvas等。其他各个公司也在根据自己的独特业务需求进行引擎设计。
上述诸多图形引擎中,缺乏这样一款图形引擎,既能够既满足跨平台,轻量化的要求,又能和播放器交互,特别适应视频业务场景,同时又有良好性能能够支撑各种业务。
本申请旨在提供一种图形引擎或特别适于播放器的图形处理方法,其能够支持跨平台和实现轻量化、达到使用简便的目的,并能够完全契合公司业务场景:既能够和播放器能够良好的数据交互,又能够为其他业务能够进行足够的技术支撑。本申请还旨在优化渲染流程,从而减少图形渲染所消耗的计算资源,提升渲染效率。
需要说明的是,本申请提供的图形引擎,可以用于向应用程序添加具有流畅动画的高性能2D/3D内容,或使用一组基于2D/3D游戏的高级工具来创建游戏。本申请提供的图形引擎亦可以集成到应用程序中,其负责执行图形引擎软件包。
实施例一
图1示意性示出了根据本申请实施例一的图形引擎1的架构图。所述图形引擎1可以包括:
(1)引擎场景层(Scene)2。
所述引擎场景层2,用于根据预设逻辑执行图形处理操作。
其中,根据所述预设逻辑执行所述图形处理操作,包括:基于预定传输协议与播放器交互以得到播放数据,及根据所述播放数据和所述预设逻辑执行所述图形处理操作。
所述引擎场景层2,作为所述图形引擎1的内核并用于实现引擎功能,内部封装有所述预设逻辑(集合)。这些预设逻辑(集合),可以包括有关控制、场景、节点或子节点(Node、SpriteNode、LabelNode)、动作(Action)、纹理(Texture)、字体(Font)、着色(Shader)、物理模拟(SimulatesPhysics)、应用约束(AppliesConstraints)等各类业务实现逻辑。
为适应视频播放业务,在所述引擎场景层2和所述播放器之间设置通信机制,使得所述引擎场景层2和所述播放器之间就正在播放的视频之播放数据进行交互,使得图形引擎1可以高效获取播放数据用于图形处理操作,确保视频渲染效果。
所述播放数据,可以包括视频播放进度、尺寸大小、用户在播放器上的用户触发事件等。
作为示例,所述播放数据可以是来自所述播放器的视频播放进度。以下以弹幕为例,对视频播放进行在引擎场景层的作用做一个示例性描述。在观看视频节目的过程中,用户通常会通过发送弹幕的方式,与主播或其他用户进行互动。所述弹幕,是通过网络观看视频时弹出的并沿预定方向移动的字幕。弹幕在英文中还没有固定词汇,其通常称之为:comment、danmaku、barrage、bullet screen、bullet-screen comment等。弹幕允许用户发表评论或感想,但与普通视频分享网站只在播放器下专用点评区显示不同,其会以滑动字幕的方式实时出现在视频画面上,保证所有观看者都能注意到。可知,弹幕是在特定播放节点上被弹出,并在视频播放界面上以预定方向滑过。当引擎场景层2在渲染一个视频帧时,需要确定这个视频帧在视频中的播放位置(即视频播放进度),通过该播放位置确定将各个弹幕分别绘制到这个视频帧的哪个位置。因此,所述引擎场景层用于:根据所述视频播放进度和所述预设逻辑,确定各个弹幕的弹幕位置。
作为示例,所述播放数据可以是来自所述播放器的请求关闭弹幕的请求数据。继续以弹幕为例,当所述播放器接收到关闭弹幕的用户操作时,会生成用于关闭弹幕的请求数据,并将所述关闭弹幕的请求数据以所述预设传输协议传递至所述引擎场景层中。当引擎场景层在渲染一个视频帧并接收到来自所述播放器的所述关闭弹幕的请求数据时,会将这个视频帧上的所有或部分弹幕隐藏。因此,所述引擎场景层2用于:根据所述请求数据和所述预设逻辑进行弹幕隐藏。
以上示例性的说明:可以将所述图形引擎1和所述播放器之间的数据交互得到的数据,用于所述图形引擎1的计算和图形渲染。当然,所述图形引擎1要使用所述播放器的哪些数据,或怎么使用所述播放器的数据,是由所述预设逻辑来确定的。
(2)视图层(View)3。
所述视图层3用于将消息传递至所述引擎场景层。
所述视图层3可以将播放器或系统平台的消息传递到所述引擎场景层,也可以将所述引擎场景层的消息传递至播放器或系统平台。所述消息包括:帧更新信号(Vsync)、触控事件(TouchEvent)、场景协同信号(ViewCoor)和/或与所述播放器的交互数据。
(3)Runtime运行层4。
所述Runtime运行层4用于运行JS代码。
所述Runtime运行层4绑定有JS应用程序接口;其中,所述JS应用程序接口作为所述图形引擎的对外开放接口,用于所述图形引擎和第三方功能模块之间的交互。
通过所述Runtime运行层4和所述JS应用程序接口,开发者可以根据需求开发运行在所述图形引擎之上的扩展功能,从而保证了功能的可扩展性和性能的高效性。这种图形引擎的可扩展性为后续业务需求的增长及引擎功能的扩展提供了支持。
(4)shell层5。
shell层5,作为所述图形引擎和系统平台之间的交互接口,用于将所述图形引擎适配于目标系统平台。
所述shell层5在于对图形引擎的功能进行封装,使得所述图形引擎能够适配在各个系统平台上,系统平台可以是安卓(Android)、IOS(苹果公司手机操作系统)、macOS(苹果公司桌面电脑操作系统)、浏览器等。所述shell层旨在使得所述图形引擎能够达到支持多端跨平台开发。
(5)图形引擎基础工具(Base)。
如,日志(Logging)、文件系统(FileSystem)、任务运行(TaskRunner)、线程管理(Thread)、时钟(Timepoint)、重启、消息循环等。
在本实施例中,可以通过对图形接口的封装完成图形渲染管线(Graphicspipeline/rendering pipeline)的实现,为实施引擎场景层的功能提供支撑。所述图形引擎管线为:从数据被输入GPU,到最后渲染成为图形所经历的一系列有序处理过程。
图形渲染管线涉及渲染缓冲区(Renderbuffer)、帧缓冲区(Framebuffer)、着色器、纹理等。
以上列举了所述图形引擎1的部分架构组成,所述图形引擎处理一帧的大致工作流程如下:
步骤A:视图层3接收帧更新信号,并转发至引擎场景层。
步骤B:引擎场景层2根据所述帧更新信号,开启播放器的下一帧的处理操作。
步骤C:引擎场景层2基于播放数据,根据预设逻辑对视频帧、弹幕等场景节点各种数据进行处理(如运动评估、物理模拟等),以得到更新后的数据;基于所述更新后的数据,可以向图形处理器(GPU,Graphics Processing Unit)发起DrawCall调用命令或者调用底层图形库(如,OpenGL),以实施渲染操作。需要说明的是,所述运动评估可以包括位置变化、颜色变化、透明度变化等各类评估。
其中,Shell层5则用于所述图形引擎的系统平台适配;
Runtime运行层4可以解析和运行JavaScript等代码,用于所述图形引擎的功能扩展。
在步骤C中,每个节点都会调用一次或多次Draw Call命令,每次Draw Call命令调用之前都需耗时地准备数据。然,本申请人发现,在实际场景中,多次调用的Draw Call命令可能所准备的数据有相似性,通过一次Draw Call命令去调用相同的数据,可以减少数据存储以提升效率,也可以提升渲染效率,降低GPU的计算资源。如图2所示,图2中出现大量相同的弹幕头像和相同的弹幕文字,将纹理相同的节点(如弹幕头像或弹幕文字)合并绘制,则可以减少资源开销。
但在合并过程中,还需要解决以下问题:
(1)动态合并纹理内存问题。为了解决上述问题,所述引擎场景层2还用于:将多个常用纹理合并成一个纹理,使得更多的节点可以共享同一个纹理对象(Texture Object)。纹理对象用于存储纹理数据,并且使纹理数据更加高效获得。
(2)如何整理纹理频繁变动所产生的碎片,如何解决大量频繁更换的中文文本(尤其是弹幕文字),绘制顺序影响Z轴顺序问题。为了解决上述问题,所述引擎场景层2的合并流程如下:
步骤C1,更新场景中的多个节点的节点数据;
步骤C2,根据所述多个节点的节点数据,为所述多个节点生成多个渲染指令;所述多个节点包括不需要独立渲染环境的一个或多个第一渲染节点和需要独立渲染环境的一个或多个第二渲染节点;
步骤C3,将所述多个渲染指令缓存到多个渲染队列中;所述多个渲染队列包括第一渲染队列和一个或多个第二渲染队列;所述第一渲染队列用于缓存每个第一渲染节点的渲染指令;每个第二渲染队列分别对应一个第二渲染节点并用于缓存相应第二渲染节点的渲染指令;
步骤C4,遍历所述多个渲染队列,将目标参数相同的多个渲染命令合并成一个渲染批次,以得到多个渲染批次;
步骤C5,根据各个渲染批次调用图形库或硬件,以减少调用次数。
需要说明的是,所述目标参数可以包括纹理参数、着色器参数等。所述一个或多个第二渲染节点可以是CropNode(待裁剪节点)、EffectNode(待滤镜过滤节点)等。每个第一渲染节点或每个第二渲染节点根据需要可能一个或多个渲染指令。
实施例二
图3示意性示出了根据本申请实施例二的适用于播放器的图形处理方法的流程图。所述方法可以运行在移动终端中。如图3所示,所述方法可以包括步骤S300~S302,其中:
步骤S300,通过图形引擎与播放器进行数据交互,以得到播放数据。
步骤S302,基于所述播放数据和预设逻辑,通过所述图形引擎对所述播放器的下一帧执行图形处理操作。
所述图形引擎可以是实施例一所描述的图形引擎。
在示例性的实施例中,所述图形引擎和所述播放器之间预先约定有用于交互的传输协议(如数据格式等),以实现二者之间的有效交互。
在示例性的实施例中,所述播放数据包括所述播放器的视频播放进度。
如图4所示,所述步骤S302可以包括步骤S400:根据所述视频播放进度和所述预设逻辑,获取各个弹幕的弹幕位置数据。即通过图形引擎和播放器的交互数据,用于弹幕位置的确定。
在示例性的实施例中,所述播放数据包括请求关闭弹幕的请求数据。
如图5所示,所述步骤S302可以包括步骤S500:根据所述请求数据和所述预设逻辑进行弹幕隐藏。即通过图形引擎和播放器的交互数据,用于弹幕隐藏操作。
在示例性的实施例中,如图6所示,所述步骤S302可以包括步骤S600:将多个(常用)纹理合并成一个纹理,使得更多的节点可以共享同一个纹理对象,以节省内存。
在示例性的实施例中,如图7所示,所述步骤S302可以包括步骤S700~S708,其中:步骤S700,更新场景中的多个节点的节点数据;步骤S702,根据所述多个节点的节点数据,为所述多个节点生成多个渲染指令;所述多个节点包括不需要独立渲染环境的一个或多个第一渲染节点和需要独立渲染环境的一个或多个第二渲染节点;步骤S704,将所述多个渲染指令缓存到多个渲染队列中;所述多个渲染队列包括第一渲染队列和一个或多个第二渲染队列;所述第一渲染队列用于缓存每个第一渲染节点的渲染指令;每个第二渲染队列分别对应一个第二渲染节点并用于缓存相应第二渲染节点的渲染指令;步骤S706,遍历所述多个渲染队列,将目标参数相同的多个渲染命令合并成一个渲染批次,以得到多个渲染批次;及步骤S708,根据各个渲染批次调用图形库或硬件。本实施例可以减少调用次数等。
为便于理解,如图8所示,以下提供一个示例性流程:
步骤S800,图形引擎层通过视图层获取来自系统平台的帧更新信号(Vsync)。
步骤S802,帧数据更新,以更新场景中多个节点的节点数据。
其中,步骤S802具体包括:基于播放数据和预设逻辑,更新场景中的各个节点的节点数据;在所述各个节点的节点数据的更新过程中,可以包括运动评估、物理模拟等。
步骤S804,DrawCall命令合并。
其中,步骤S804具体包括:根据所述多个节点的节点数据,为所述多个节点生成多个渲染指令;将所述多个渲染指令缓存到多个渲染队列中;以及遍历所述多个渲染队列,将目标参数相同的多个渲染命令合并成一个渲染批次,以得到多个渲染批次;
步骤S806,判断是否需要重绘,如果需要,则进入步骤S802C,否则停止处理操作并异步等待下一个Vsync。例如,这一帧的帧数据和上一帧的数据没有变化,则不会要重绘。
步骤S808,帧绘制:
(1)按渲染批次调用OpenGL等图形库,将场景以及以递归的方式将挂载在场景上的各个节点渲染出来。需要说明的是,场景绘制可能会涉及摄像头参数设置、背景清理等。
(2)异步等待下一个Vsync。
实施例三
图9示意性示出了根据本申请实施例三的适用于播放器的图形处理系统的框图,该适用于播放器的图形处理系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图9所示,该适用于播放器的图形处理系统900可以包括交互模块910和图形处理模块920,其中:
交互模块910,用于通过图形引擎与播放器进行数据交互,以得到播放数据;
图形处理模块920,用于基于所述播放数据和预设逻辑,通过所述图形引擎对所述播放器的下一帧执行图形处理操作。
在示例性的实施例中,所述图形引擎和所述播放器之间预先约定有用于交互的传输协议。
在示例性的实施例中,所述播放数据包括所述播放器的视频播放进度;所述图形处理模块920,还用于:根据所述视频播放进度和所述预设逻辑,获取各个弹幕的弹幕位置数据。
在示例性的实施例中,所述播放数据包括请求关闭弹幕的请求数据;图形处理模块920,用于根据所述请求数据和所述预设逻辑进行弹幕隐藏。
在示例性的实施例中,所述图形处理模块920,还用于:根据所述预设逻辑,对场景中的多个节点进行动作评估;根据对各个节点的动作评估,更新所述各个节点的节点数据;根据所述各个节点的节点数据,将所述多个节点中至少部分节点合并为若干个合并节点;及根据各个合并节点或所述多个节点中的各个未被合并的节点,分别调用图形库。
图形处理模块,用于所述节点数据包括纹理数据;图形处理模块920,用于:当所述多个节点中包括纹理相同的若干个节点时,则将该若干个节点合并为相应的合并节点。
在示例性的实施例中,所述图形处理模块920,还用于:将多个纹理合并成一个纹理。
在示例性的实施例中,所述图形处理模块920,还用于:更新场景中的多个节点的节点数据;根据所述多个节点的节点数据,为所述多个节点生成多个渲染指令;所述多个节点包括不需要独立渲染环境的一个或多个第一渲染节点和需要独立渲染环境的一个或多个第二渲染节点;将所述多个渲染指令缓存到多个渲染队列中;所述多个渲染队列包括第一渲染队列和一个或多个第二渲染队列;所述第一渲染队列用于缓存每个第一渲染节点的渲染指令;每个第二渲染队列分别对应一个第二渲染节点并用于缓存相应第二渲染节点的渲染指令;遍历所述多个渲染队列,将目标参数相同的多个渲染命令合并成一个渲染批次,以得到多个渲染批次;及根据各个渲染批次调用图形库或硬件。
实施例四
图10示意性示出了根据本申请实施例四的适于实现适用于播放器的图形处理方法的计算机设备900的硬件架构示意图。本实施例中,计算机设备900可以为移动终端4或者作为移动终端4的一部分。本实施例中,计算机设备900是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑等。如图10所示,计算机设备900至少包括但不限于:可通过系统总线相互通信链接存储器1010、处理器1020、网络接口1030。其中:
存储器1010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1010可以是计算机设备900的内部存储模块,例如该计算机设备900的硬盘或内存。在另一些实施例中,存储器1010也可以是计算机设备900的外部存储设备,例如该计算机设备900上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器1010还可以既包括计算机设备900的内部存储模块也包括其外部存储设备。本实施例中,存储器1010通常用于存储安装于计算机设备900的操作系统和各类应用软件,例如适用于播放器的图形处理方法的程序代码等。此外,存储器1010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1020通常用于控制计算机设备900的总体操作,例如执行与计算机设备900进行数据交互或者通信相关的控制和处理等。本实施例中,处理器1020用于运行存储器1010中存储的程序代码或者处理数据。
网络接口1030可包括无线网络接口或有线网络接口,该网络接口1030通常用于在计算机设备900与其他计算机设备之间建立通信链接。例如,网络接口1030用于通过网络将计算机设备900与外部终端相连,在计算机设备900与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图10仅示出了具有部件1010-1030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器1010中的适用于播放器的图形处理方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器1020)所执行,以完成本申请实施例。
实施例五
本申请还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的适用于播放器的图形处理方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中适用于播放器的图形处理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,现有的大多数图形引擎都过于“臃肿”,不利于开发者的快速学习。
相对而言,本申请实施例一所述的图形引擎,特别针对播放器的适配做了针对性的改进,尤其适合在弹幕活动场景中,应对迭代快、实效性高的情景。在申请实施例一所述的图形引擎中,基于视频播放业务的核心需求,通过对图形接口及引擎逻辑的封装,在满足引擎的功能同时以实现引擎的极尽“轻量化“。使开发人员能够快速学习并开发自己所需程序,并保证程序的体积尽可能的小。另外,还在此基础上,对图形引擎的引擎逻辑、视图及工具进行不同平台接口的适配,满足不同平台引擎业务逻辑的统一,使之能在多个平台快速部署,并提供JS应用程序接口为图形引擎提供调用服务,保证了功能的可扩展性和性能的高效性。
针对和播放器进行交互,可以约定播放器的播放页与图形引擎之间的传输协议和数据封装格式,并封装播放页和图形引擎各自接受信息的方法,从而建立两者之间的通信机制。例如,图形引擎计算一个加法运算“6+8”,图形引擎的引擎场景层可以播放器发送一个加法的方法请求,参数分别为6和8,播放器在接收到请求后将计算结果返回给引擎场景层。
上述方法请求信息可以如下:
播放器可以返回如下信息:
需要说明的是,以上仅为本申请的优选实施例,并非因此限制本申请的专利保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (17)
1.一种图形引擎,其特征在于,包括:
引擎场景层,用于根据预设逻辑执行图形处理操作;其中:
根据所述预设逻辑执行所述图形处理操作,包括:基于预定传输协议与播放器交互以得到播放数据,及根据所述播放数据和所述预设逻辑执行所述图形处理操作。
2.根据权利要求1所述的图形引擎,其特征在于,所述播放数据包括所述播放器的视频播放进度;根据所述播放数据和所述预设逻辑执行所述图形处理操作,包括:
根据所述视频播放进度和所述预设逻辑,获取各个弹幕的弹幕位置数据。
3.根据权利要求1所述的图形引擎,其特征在于,所述播放数据包括请求关闭弹幕的请求数据;根据所述播放数据和所述预设逻辑执行所述图形处理操作,包括:
根据所述请求数据和所述预设逻辑进行弹幕隐藏。
4.根据权利要求1所述的图形引擎,其特征在于,还包括:
视图层,用于将消息传递至所述引擎场景层;
所述消息包括:帧更新信号、触控事件、场景协同信号和/或与所述播放器的交互数据。
5.根据权利要求1所述的图形引擎,其特征在于,还包括:
Runtime运行层,用于运行JS代码;
所述Runtime运行层绑定有JS应用程序接口;其中,所述JS应用程序接口作为所述图形引擎的对外开放接口,用于所述图形引擎和第三方功能模块之间的交互。
6.根据权利要求1所述的图形引擎,其特征在于,还包括:
shell层,作为所述图形引擎和系统平台之间的交互接口,用于将所述图形引擎适配于目标系统平台。
7.根据权利要求1至6任意一项所述的图形引擎,其特征在于,所述引擎场景层,还用于:
将多个纹理合并成一个纹理。
8.根据权利要求1至6任意一项所述的图形引擎,其特征在于,所述引擎场景层,还用于:
更新场景中的多个节点的节点数据;
根据所述多个节点的节点数据,为所述多个节点生成多个渲染指令;所述多个节点包括不需要独立渲染环境的一个或多个第一渲染节点和需要独立渲染环境的一个或多个第二渲染节点;
将所述多个渲染指令缓存到多个渲染队列中;所述多个渲染队列包括第一渲染队列和一个或多个第二渲染队列;所述第一渲染队列用于缓存每个第一渲染节点的渲染指令;每个第二渲染队列分别对应一个第二渲染节点并用于缓存相应第二渲染节点的渲染指令;
遍历所述多个渲染队列,将目标参数相同的多个渲染命令合并成一个渲染批次,以得到多个渲染批次;及
根据各个渲染批次调用图形库或硬件。
9.一种适用于播放器的图形处理方法,其特征在于,包括:
通过图形引擎与播放器进行数据交互,以得到播放数据;
基于所述播放数据和预设逻辑,通过所述图形引擎对所述播放器的下一帧执行图形处理操作。
10.根据权利要求9所述的图形处理方法,其特征在于,所述图形引擎和所述播放器之间预先约定有用于交互的传输协议。
11.根据权利要求9所述的图形处理方法,其特征在于,所述播放数据包括所述播放器的视频播放进度;通过所述图形引擎对所述播放器的下一帧执行图形处理操作,包括:
根据所述视频播放进度和所述预设逻辑,获取各个弹幕的弹幕位置数据。
12.根据权利要求9所述的图形处理方法,其特征在于,所述播放数据包括请求关闭弹幕的请求数据;通过所述图形引擎对所述播放器的下一帧执行图形处理操作,包括:
根据所述请求数据和所述预设逻辑进行弹幕隐藏。
13.根据权利要求9至12任意一项所述的图形处理方法,其特征在于,通过所述图形引擎对所述播放器的下一帧执行图形处理操作,还包括:
将多个纹理合并成一个纹理。
14.根据权利要求9至12任意一项所述的图形处理方法,其特征在于,通过所述图形引擎对所述播放器的下一帧执行图形处理操作,还包括:
更新场景中的多个节点的节点数据;
根据所述多个节点的节点数据,为所述多个节点生成多个渲染指令;所述多个节点包括不需要独立渲染环境的一个或多个第一渲染节点和需要独立渲染环境的一个或多个第二渲染节点;
将所述多个渲染指令缓存到多个渲染队列中;所述多个渲染队列包括第一渲染队列和一个或多个第二渲染队列;所述第一渲染队列用于缓存每个第一渲染节点的渲染指令;每个第二渲染队列分别对应一个第二渲染节点并用于缓存相应第二渲染节点的渲染指令;
遍历所述多个渲染队列,将目标参数相同的多个渲染命令合并成一个渲染批次,以得到多个渲染批次;及
根据各个渲染批次调用图形库或硬件。
15.一种适用于播放器的图形处理系统,其特征在于,包括:
交互模块,用于通过图形引擎与播放器进行数据交互,以得到播放数据;
图形处理模块,用于基于所述播放数据和预设逻辑,通过所述图形引擎对所述播放器的下一帧执行图形处理操作。
16.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求9至14中任意一项所述的适用于播放器的图形处理方法的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求9至14中任意一项所述的适用于播放器的图形处理方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011223807.3A CN112423111A (zh) | 2020-11-05 | 2020-11-05 | 图形引擎和适用于播放器的图形处理方法 |
PCT/CN2021/111381 WO2022095526A1 (zh) | 2020-11-05 | 2021-08-09 | 图形引擎和适用于播放器的图形处理方法 |
US18/033,788 US20230403437A1 (en) | 2020-11-05 | 2021-08-09 | Graphics engine and graphics processing method applicable to player |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011223807.3A CN112423111A (zh) | 2020-11-05 | 2020-11-05 | 图形引擎和适用于播放器的图形处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112423111A true CN112423111A (zh) | 2021-02-26 |
Family
ID=74828642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011223807.3A Pending CN112423111A (zh) | 2020-11-05 | 2020-11-05 | 图形引擎和适用于播放器的图形处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230403437A1 (zh) |
CN (1) | CN112423111A (zh) |
WO (1) | WO2022095526A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923519A (zh) * | 2021-11-11 | 2022-01-11 | 深圳万兴软件有限公司 | 视频渲染方法、装置、计算机设备及存储介质 |
WO2022095526A1 (zh) * | 2020-11-05 | 2022-05-12 | 上海哔哩哔哩科技有限公司 | 图形引擎和适用于播放器的图形处理方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116757916B (zh) * | 2023-08-21 | 2023-10-20 | 成都中科合迅科技有限公司 | 图形绘制引擎的变更控制方法和系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662646A (zh) * | 2012-03-01 | 2012-09-12 | 华为技术有限公司 | 传感数据处理方法及计算节点 |
CN103999046A (zh) * | 2011-12-29 | 2014-08-20 | 英特尔公司 | 支持用于多媒体内容的浏览器的服务 |
WO2018121556A1 (zh) * | 2016-12-27 | 2018-07-05 | 北京奇虎科技有限公司 | 直播数据处理方法、装置、程序及介质 |
CN109408175A (zh) * | 2018-09-28 | 2019-03-01 | 北京赛博贝斯数据科技有限责任公司 | 通用高性能深度学习计算引擎中的实时交互方法及系统 |
CN109816763A (zh) * | 2018-12-24 | 2019-05-28 | 苏州蜗牛数字科技股份有限公司 | 一种图形渲染方法 |
US20190200047A1 (en) * | 2016-12-06 | 2019-06-27 | Tencent Technology (Shenzhen) Company Limited | Data processing method, apparatus, and system for live streaming page |
CN110213636A (zh) * | 2018-04-28 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 在线视频的视频帧生成方法、装置、存储介质及设备 |
CN110784773A (zh) * | 2019-11-26 | 2020-02-11 | 北京奇艺世纪科技有限公司 | 弹幕生成方法、装置、电子设备及存储介质 |
CN111031400A (zh) * | 2019-11-25 | 2020-04-17 | 上海哔哩哔哩科技有限公司 | 弹幕呈现方法和系统 |
CN111408138A (zh) * | 2019-01-04 | 2020-07-14 | 厦门雅基软件有限公司 | 基于游戏引擎的渲染方法、装置及电子设备 |
CN111432276A (zh) * | 2020-03-27 | 2020-07-17 | 北京奇艺世纪科技有限公司 | 一种游戏引擎、互动视频交互方法和电子设备 |
CN111556325A (zh) * | 2019-02-12 | 2020-08-18 | 广州艾美网络科技有限公司 | 结合音视频的渲染方法、介质及计算机设备 |
CN111796826A (zh) * | 2020-06-30 | 2020-10-20 | 北京字节跳动网络技术有限公司 | 一种弹幕的绘制方法、装置、设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317175B1 (en) * | 2013-09-24 | 2016-04-19 | Amazon Technologies, Inc. | Integration of an independent three-dimensional rendering engine |
CN104144351B (zh) * | 2014-04-04 | 2017-09-19 | 北京泰然神州科技有限公司 | 应用虚拟化平台的视频播放方法和装置 |
CN105597321B (zh) * | 2015-12-18 | 2020-07-10 | 武汉斗鱼网络科技有限公司 | 一种全屏游戏状态下的弹幕显示方法与系统 |
CN111508055B (zh) * | 2019-01-30 | 2023-04-11 | 华为技术有限公司 | 渲染方法及装置 |
US10918938B2 (en) * | 2019-03-29 | 2021-02-16 | Electronic Arts Inc. | Dynamic streaming video game client |
CN112423111A (zh) * | 2020-11-05 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 图形引擎和适用于播放器的图形处理方法 |
CN112995692B (zh) * | 2021-03-04 | 2023-05-02 | 广州虎牙科技有限公司 | 互动数据处理方法、装置、设备及介质 |
-
2020
- 2020-11-05 CN CN202011223807.3A patent/CN112423111A/zh active Pending
-
2021
- 2021-08-09 US US18/033,788 patent/US20230403437A1/en active Pending
- 2021-08-09 WO PCT/CN2021/111381 patent/WO2022095526A1/zh active Application Filing
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103999046A (zh) * | 2011-12-29 | 2014-08-20 | 英特尔公司 | 支持用于多媒体内容的浏览器的服务 |
CN102662646A (zh) * | 2012-03-01 | 2012-09-12 | 华为技术有限公司 | 传感数据处理方法及计算节点 |
US20190200047A1 (en) * | 2016-12-06 | 2019-06-27 | Tencent Technology (Shenzhen) Company Limited | Data processing method, apparatus, and system for live streaming page |
WO2018121556A1 (zh) * | 2016-12-27 | 2018-07-05 | 北京奇虎科技有限公司 | 直播数据处理方法、装置、程序及介质 |
CN110213636A (zh) * | 2018-04-28 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 在线视频的视频帧生成方法、装置、存储介质及设备 |
CN109408175A (zh) * | 2018-09-28 | 2019-03-01 | 北京赛博贝斯数据科技有限责任公司 | 通用高性能深度学习计算引擎中的实时交互方法及系统 |
CN109816763A (zh) * | 2018-12-24 | 2019-05-28 | 苏州蜗牛数字科技股份有限公司 | 一种图形渲染方法 |
CN111408138A (zh) * | 2019-01-04 | 2020-07-14 | 厦门雅基软件有限公司 | 基于游戏引擎的渲染方法、装置及电子设备 |
CN111556325A (zh) * | 2019-02-12 | 2020-08-18 | 广州艾美网络科技有限公司 | 结合音视频的渲染方法、介质及计算机设备 |
CN111031400A (zh) * | 2019-11-25 | 2020-04-17 | 上海哔哩哔哩科技有限公司 | 弹幕呈现方法和系统 |
CN110784773A (zh) * | 2019-11-26 | 2020-02-11 | 北京奇艺世纪科技有限公司 | 弹幕生成方法、装置、电子设备及存储介质 |
CN111432276A (zh) * | 2020-03-27 | 2020-07-17 | 北京奇艺世纪科技有限公司 | 一种游戏引擎、互动视频交互方法和电子设备 |
CN111796826A (zh) * | 2020-06-30 | 2020-10-20 | 北京字节跳动网络技术有限公司 | 一种弹幕的绘制方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
DANIEL BROOKSHIER等: "《Java P2P程序设计》", 31 January 2003 * |
耿卫东,陈凯,李鑫,徐明亮: "《三维游戏引擎设计与实现》", 30 October 2008 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022095526A1 (zh) * | 2020-11-05 | 2022-05-12 | 上海哔哩哔哩科技有限公司 | 图形引擎和适用于播放器的图形处理方法 |
CN113923519A (zh) * | 2021-11-11 | 2022-01-11 | 深圳万兴软件有限公司 | 视频渲染方法、装置、计算机设备及存储介质 |
CN113923519B (zh) * | 2021-11-11 | 2024-02-13 | 深圳万兴软件有限公司 | 视频渲染方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022095526A1 (zh) | 2022-05-12 |
US20230403437A1 (en) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022116759A1 (zh) | 图像渲染方法、装置、计算机设备和存储介质 | |
US10026211B2 (en) | Hardware-accelerated graphics for web applications using native code modules | |
US10026147B1 (en) | Graphics scenegraph rendering for web applications using native code modules | |
US8675000B2 (en) | Command buffers for web-based graphics rendering | |
CN112423111A (zh) | 图形引擎和适用于播放器的图形处理方法 | |
US9928637B1 (en) | Managing rendering targets for graphics processing units | |
US10207190B2 (en) | Technologies for native game experience in web rendering engine | |
US20130127849A1 (en) | Common Rendering Framework and Common Event Model for Video, 2D, and 3D Content | |
WO2023197762A1 (zh) | 图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN116157841A (zh) | 用于加速光线跟踪的系统和方法 | |
CN114564630A (zh) | 一种图数据Web3D可视化的方法、系统和介质 | |
CN112711729A (zh) | 基于页面动画的渲染方法、装置、电子设备及存储介质 | |
CN114170365A (zh) | 利用异步操作和光线变换的加速光线跟踪的系统和方法 | |
CN111796812B (zh) | 图像渲染的方法、装置、电子设备及计算机可读存储介质 | |
CN112700519A (zh) | 动画展示方法、装置、电子设备及计算机可读存储介质 | |
CN116503529A (zh) | 渲染、3d画面控制方法、电子设备和计算机可读存储介质 | |
CN113744377A (zh) | 一种动画处理系统、方法、装置、设备及介质 | |
CN115375821A (zh) | 一种图像渲染方法、装置及服务器 | |
KR101586655B1 (ko) | 반복순환 구조의 게임 장면 구현 및 동작 방법 | |
CN117392301B (zh) | 图形渲染方法、系统、装置、电子设备及计算机存储介质 | |
CN116166261A (zh) | 页面特效制作方法和系统 | |
CN117014689A (zh) | 弹幕的显示方法、装置以及电子设备 | |
CN114090920A (zh) | 可视化对象的处理方法、装置、电子设备和存储介质 | |
CN114528515A (zh) | 模型渲染方法、装置、电子设备及计算机可读存储介质 | |
CN115845363A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210226 |
|
RJ01 | Rejection of invention patent application after publication |