CN110675479B - 动态光照处理方法、装置、存储介质及电子装置 - Google Patents
动态光照处理方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN110675479B CN110675479B CN201910974204.8A CN201910974204A CN110675479B CN 110675479 B CN110675479 B CN 110675479B CN 201910974204 A CN201910974204 A CN 201910974204A CN 110675479 B CN110675479 B CN 110675479B
- Authority
- CN
- China
- Prior art keywords
- cpu
- unit
- level index
- index structure
- light source
- 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- 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
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B20/00—Energy efficient lighting technologies, e.g. halogen lamps or gas discharge lamps
- Y02B20/40—Control techniques providing energy savings, e.g. smart controller or presence detection
Abstract
本发明公开了一种动态光照处理方法、装置、存储介质及电子装置。该方法包括:利用中央处理器计算游戏场景中每个光源的光照范围,得到运算结果;利用图形处理器根据运算结果进行光照渲染。本发明解决了相关技术中移动终端由于受到硬件资源以及性能的限制,因此难以在游戏场景内实现大规模的动态光照的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种动态光照处理方法、装置、存储介质及电子装置。
背景技术
相关技术中所提供的单机游戏或网络游戏的运行环境通常包括:计算机终端和移动终端。两者虽然各有优势,但同时也都存在着特定的缺陷。计算机终端的优势主要在于:强大的硬件资源(例如:处理速度、存储空间)和尺寸较大的显示器,因此,游戏流畅度较高、画面既视感和游戏代入感较强。然而,其缺陷在于:便携性较差,不利于游戏玩家随时随地开展游戏。与之相反,移动终端的优势主要在于:便携性较强,有利于游戏玩家随时随地进行游戏。然而,其缺陷在于:缺乏足够的硬件资源(例如:处理速度、存储空间)支持,显示器的尺寸较小并且还会被游戏操作控件(例如:方向控件、技能控件)占用一定比例的显示空间。
尽管如此,由于在移动终端上进行游戏给游戏玩家带来了极大的便利,因此,相比于端游而言,手游更加受到游戏玩家的青睐。然而,不可回避的一个关键技术缺陷在于:移动终端由于受到硬件资源以及性能的限制,因此难以在游戏场景内实现大规模的动态光照。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种动态光照处理方法、装置、存储介质及电子装置,以至少解决相关技术中移动终端由于受到硬件资源以及性能的限制,因此难以在游戏场景内实现大规模的动态光照的技术问题。
根据本发明其中一实施例,提供了一种动态光照处理方法,包括:
利用中央处理器(CPU)计算游戏场景中每个光源的光照范围,得到运算结果;利用图形处理器(GPU)根据运算结果进行光照渲染。
可选地,利用CPU计算游戏场景中每个光源的光照范围,得到运算结果包括:利用CPU根据当前摄像机的视锥确定第一截面和第二截面,其中,第一截面是距离当前摄像机的镜头最近的截面,第二截面是距离当前摄像机的镜头最远的截面;利用CPU将第一截面和第二截面之间的视锥范围按照指数分布进行群组划分,得到多个视锥单元;利用CPU在对游戏场景进行群组划分完毕之后,根据每个光源的包围盒所影响的视锥单元计算该光源的光照范围,得到运算结果。
可选地,每个光源的光照范围的几何形状由当前摄像机的镜头类型确定。
可选地,在利用CPU计算游戏场景中每个光源的光照范围,得到运算结果之后,还包括:利用CPU将运算结果编码成被GPU所识别的数据结构。
可选地,利用CPU将运算结果编码成被GPU所识别的数据结构包括:利用CPU将运算结果编码成多级索引结构,其中,多级索引结构包括:第一级索引结构、第二级索引结构和第三级索引结构,第一级索引结构用于记录每个视锥单元内存储的描述信息,描述信息用于描述影响该视锥单元的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置,第二级索引结构为点光源和聚光灯索引紧密排列的数据结构,第三级索引结构用于索引点光源和聚光灯的实际渲染数据;利用CPU将多级索引结构存储至显存中。
可选地,利用GPU根据运算结果进行光照渲染包括:确定步骤,利用GPU确定当前待着色像素所归属的视锥单元;处理步骤,利用GPU从确定的视锥单元中读取描述信息中记录的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置,按照点光源数量和起始索引位置查找影响确定的视锥单元的至少一个点光源以及按照聚光灯数量和中间索引位置查找影响确定的视锥单元的至少一个聚光灯,其中,中间索引位置由点光源数量和起始索引位置确定;渲染步骤,从至少一个点光源和至少一个聚光灯中读取实际渲染数据进行光照渲染;判断步骤,判断是否存在尚未渲染的待着色像素,如果是,则返回确定步骤,如果否,则渲染结束。
根据本发明其中一实施例,还提供了一种动态光照处理装置,包括:
计算模块,用于利用CPU计算游戏场景中每个光源的光照范围,得到运算结果;处理模块,用于利用GPU根据运算结果进行光照渲染。
可选地,计算模块包括:第一确定单元,用于利用CPU根据当前摄像机的视锥确定第一截面和第二截面,其中,第一截面是距离当前摄像机的镜头最近的截面,第二截面是距离当前摄像机的镜头最远的截面;划分单元,用于利用CPU将第一截面和第二截面之间的视锥范围按照指数分布进行群组划分,得到多个视锥单元;计算单元,用于利用CPU在对游戏场景进行群组划分完毕之后,根据每个光源的包围盒所影响的视锥单元计算该光源的光照范围,得到运算结果。
可选地,每个光源的光照范围的几何形状由当前摄像机的镜头类型确定。
可选地,上述装置还包括:编码模块,用于利用CPU将运算结果编码成被GPU所识别的数据结构。
可选地,编码模块包括:编码单元,用于利用CPU将运算结果编码成多级索引结构,其中,多级索引结构包括:第一级索引结构、第二级索引结构和第三级索引结构,第一级索引结构用于记录每个视锥单元内存储的描述信息,描述信息用于描述影响该视锥单元的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置,第二级索引结构为点光源和聚光灯索引紧密排列的数据结构,第三级索引结构用于索引点光源和聚光灯的实际渲染数据;存储单元,用于利用CPU将多级索引结构存储至显存中。
可选地,处理模块包括:第二确定单元,用于利用GPU确定当前待着色像素所归属的视锥单元;处理单元,用于利用GPU从确定的视锥单元中读取描述信息中记录的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置,按照点光源数量和起始索引位置查找影响确定的视锥单元的至少一个点光源以及按照聚光灯数量和中间索引位置查找影响确定的视锥单元的至少一个聚光灯,其中,中间索引位置由点光源数量和起始索引位置确定;渲染单元,用于从至少一个点光源和至少一个聚光灯中读取实际渲染数据进行光照渲染;判断单元,用于判断是否存在尚未渲染的待着色像素,如果是,则返回第二确定单元,如果否,则渲染结束。
根据本发明其中一实施例,还提供了一种存储介质,其特征在于,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的动态光照处理方法。
根据本发明其中一实施例,还提供了一种电子装置,包括存储器和多个处理器,其特征在于,多个处理器包括:CPU和GPU,存储器中存储有计算机程序,多个处理器被设置为运行计算机程序以执行上述任一项中的动态光照处理方法。
在本发明至少部分实施例中,采用CPU计算游戏场景中每个光源的光照范围以得到运算结果的方式,通过GPU根据运算结果进行光照渲染,达到了区别于相关技术中所提供的动态光照技术,将光照范围的划分移动到CPU端进行计算,并在CPU端完成光照范围的计算之后,再由GPU使用运算结果(即优化过的光照数据)进行光照渲染,以避免过分依赖于移动终端上GPU的目的,从而实现了增加动态光照技术的使用兼容性,减轻GPU端在光照运算中的负荷,提升移动终端在动态光照运算过程中的运行效率的技术效果,进而解决了相关技术中移动终端由于受到硬件资源以及性能的限制,因此难以在游戏场景内实现大规模的动态光照的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的动态光照处理方法的流程图;
图2是根据本发明其中一可选实施例的在光源群组运算中群组划分过程的示意图;
图3是根据本发明其中一可选实施例的利用CPU将运算结果编码成多级索引结构的示意图;
图4是根据本发明其中一实施例的动态光照处理装置的结构框图;
图5是根据本发明其中一可选实施例的动态光照处理装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明其中一实施例,提供了一种动态光照处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端或者类似的运算装置中执行。以运行在移动终端上为例,移动终端可以包括多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的动态光照处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的动态光照处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,上述移动终端具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本实施例中提供了一种运行于上述移动终端的动态光照处理方法,图1是根据本发明其中一实施例的动态光照处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S12,利用CPU计算游戏场景中每个光源的光照范围,得到运算结果;
步骤S14,利用GPU根据运算结果进行光照渲染。
通过上述步骤,可以采用CPU计算游戏场景中每个光源的光照范围以得到运算结果的方式,通过GPU根据运算结果进行光照渲染,达到了区别于相关技术中所提供的动态光照技术,将光照范围的划分移动到CPU端进行计算,并在CPU端完成光照范围的计算之后,再由GPU使用运算结果(即优化过的光照数据)进行光照渲染,以避免过分依赖于移动终端上GPU的目的,从而实现了增加动态光照技术的使用兼容性,减轻GPU端在光照运算中的负荷,提升移动终端在动态光照运算过程中的运行效率的技术效果,进而解决了相关技术中移动终端由于受到硬件资源以及性能的限制,因此难以在游戏场景内实现大规模的动态光照的技术问题。
可选地,在步骤S12中,利用CPU计算游戏场景中每个光源的光照范围,得到运算结果可以包括以下执行步骤:
步骤S121,利用CPU根据当前摄像机的视锥确定第一截面和第二截面,其中,第一截面是距离当前摄像机的镜头最近的截面,第二截面是距离当前摄像机的镜头最远的截面;
步骤S122,利用CPU将第一截面和第二截面之间的视锥范围按照指数分布进行群组划分,得到多个视锥单元;
步骤S123,利用CPU在对游戏场景进行群组划分完毕之后,根据每个光源的包围盒所影响的视锥单元计算该光源的光照范围,得到运算结果。
在一个可选实施例中,首先,可以利用CPU根据当前摄像机的视锥确定第一截面(即距离当前摄像机的镜头最近的截面)和第二截面(即距离当前摄像机的镜头最远的截面);其次,可以利用CPU将第一截面和第二截面之间的视锥范围按照指数分布进行群组划分以得到多个视锥单元;然后,再利用CPU根据每个光源的包围盒所影响的视锥单元计算该光源的光照范围以得到运算结果。
图2是根据本发明其中一可选实施例的在光源群组运算中群组划分过程的示意图,如图2所示,可以利用CPU将第一截面和第二截面之间的视锥范围按照指数分布进行群组划分以得到多个视锥单元。在从第一截面至第二截面的方向上,视锥单元的精度由小变大,即间距逐渐变大。第一截面和第二截面之间的视锥范围内的所有视锥单元可以组成一个大群组。在该大群组内根据光源的包围盒对每个视锥单元的影响,可以计算得到光源的影响范围(即光照范围)。而受到光照范围影响的视锥单元将会构成大群组内的小群组。由此在划分出群组之后,便可摆脱现有动态光照技术中对场景深度的需求,并且同样适用于半透明物体的动态光照处理。
在一个可选实施例中,每个光源的光照范围的几何形状由当前摄像机的镜头类型确定。例如:当镜头类型为点光源镜头时,每个光源的光照范围的几何形状为圆形。当镜头类型为聚光灯镜头时,每个光源的光照范围的几何形状为矩形。
可选地,在步骤S12,利用CPU计算游戏场景中每个光源的光照范围,得到运算结果之后,还可以包括以下执行步骤:
步骤S13,利用CPU将运算结果编码成被GPU所识别的数据结构。
在完成光照范围的计算之后,可以利用CPU将运算结果编码成GPU所识别的数据结构后,由此便可以准备利用GPU执行光照渲染操作。
可选地,在步骤S13中,利用CPU将运算结果编码成被GPU所识别的数据结构可以包括以下执行步骤:
步骤S131,利用CPU将运算结果编码成多级索引结构,其中,多级索引结构包括:第一级索引结构、第二级索引结构和第三级索引结构,第一级索引结构用于记录每个视锥单元内存储的描述信息,描述信息用于描述影响该视锥单元的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置,第二级索引结构为点光源和聚光灯索引紧密排列的数据结构,第三级索引结构用于索引点光源和聚光灯的实际渲染数据;
步骤S132,利用CPU将多级索引结构存储至显存中。
在一个可选实施例中,可以利用CPU将运算结果编码成多级索引结构。该多级索引结构包括:第一级索引结构、第二级索引结构和第三级索引结构。第一级索引结构用于记录每个视锥单元内存储的描述信息,描述信息用于描述影响该视锥单元的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置。第二级索引结构为点光源和聚光灯索引紧密排列的数据结构。第三级索引结构用于索引点光源和聚光灯的实际渲染数据。
图3是根据本发明其中一可选实施例的利用CPU将运算结果编码成多级索引结构的示意图,如图3所示,在第一级索引结构中,以视锥单元内存储的描述信息“0,[2,1]”为例,“[2,1]”表示有2个点光源和1个聚光灯的光照范围均影响到该视锥单元。“0”表示从第二级索引结构的第0个位置处开始索引,确定2个点光源在第二级索引结构中的索引分别为1和3以及1个聚光灯在第二级索引结构中的索引为2。然后再分别依照索引1便可从点光源1中获得实际渲染数据,依照索引3便可从点光源3中获得实际渲染数据以及依照索引2便可从聚光灯2中获得实际渲染数据。最后,再利用CPU将多级索引结构存储至显存中,以供GPU在渲染过程中从多级索引结构读取实际渲染数据。
可选地,在步骤S14中,利用GPU根据运算结果进行光照渲染可以包括以下执行步骤:
步骤S141,利用GPU确定当前待着色像素所归属的视锥单元;
步骤S142,利用GPU从确定的视锥单元中读取描述信息中记录的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置,按照点光源数量和起始索引位置查找影响确定的视锥单元的至少一个点光源以及按照聚光灯数量和中间索引位置查找影响确定的视锥单元的至少一个聚光灯,其中,中间索引位置由点光源数量和起始索引位置确定;
步骤S143,从至少一个点光源和至少一个聚光灯中读取实际渲染数据进行光照渲染;
步骤S144,判断是否存在尚未渲染的待着色像素,如果是,则返回步骤S141,如果否,则渲染结束。
仍然如图3所示,利用GPU根据光栅化后的屏幕空间位置以及深度能够确定当前着色的像素在群组中的位置(即该像素所归属的视锥单元,例如:描述信息为“0,[2,1]”的视锥单元)。其次,利用GPU从确定的视锥单元中读取描述信息中记录的点光源数量(例如:2个点光源)、聚光灯数量(例如:1个聚光灯)以及在第二级索引结构中的起始索引位置(例如:从第二级索引结构的第0个位置处开始索引),按照点光源数量和起始索引位置查找影响确定的视锥单元的至少一个点光源(例如:索引1对应的点光源1以及索引3对应的点光源3)以及按照聚光灯数量和中间索引位置查找影响确定的视锥单元的至少一个聚光灯(例如:索引2对应的聚光灯2)。然后,利用GPU分别依照索引1便可从点光源1中获得实际渲染数据,依照索引3便可从点光源3中获得实际渲染数据以及依照索引2便可从聚光灯2中获得实际渲染数据执行光照渲染操作。由此循环进行光照运算,直至全部像素渲染完毕。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种动态光照处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明其中一实施例的动态光照处理装置的结构框图,如图4所示,该装置包括:计算模块10,用于利用CPU计算游戏场景中每个光源的光照范围,得到运算结果;处理模块20,用于利用GPU根据运算结果进行光照渲染。
可选地,计算模块10包括:第一确定单元(图中未示出),用于利用CPU根据当前摄像机的视锥确定第一截面和第二截面,其中,第一截面是距离当前摄像机的镜头最近的截面,第二截面是距离当前摄像机的镜头最远的截面;划分单元(图中未示出),用于利用CPU将第一截面和第二截面之间的视锥范围按照指数分布进行群组划分,得到多个视锥单元;计算单元(图中未示出),用于利用CPU在对游戏场景进行群组划分完毕之后,根据每个光源的包围盒所影响的视锥单元计算该光源的光照范围,得到运算结果。
可选地,每个光源的光照范围的几何形状由当前摄像机的镜头类型确定。
可选地,图5是根据本发明其中一可选实施例的动态光照处理装置的结构框图,如图5所示,该装置除包括图4所示的所有模块外,上述装置还包括:编码模块30,用于利用CPU将运算结果编码成被GPU所识别的数据结构。
可选地,编码模块30包括:编码单元(图中未示出),用于利用CPU将运算结果编码成多级索引结构,其中,多级索引结构包括:第一级索引结构、第二级索引结构和第三级索引结构,第一级索引结构用于记录每个视锥单元内存储的描述信息,描述信息用于描述影响该视锥单元的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置,第二级索引结构为点光源和聚光灯索引紧密排列的数据结构,第三级索引结构用于索引点光源和聚光灯的实际渲染数据;存储单元(图中未示出),用于利用CPU将多级索引结构存储至显存中。
可选地,处理模块20包括:第二确定单元(图中未示出),用于利用GPU确定当前待着色像素所归属的视锥单元;处理单元(图中未示出),用于利用GPU从确定的视锥单元中读取描述信息中记录的点光源数量、聚光灯数量以及在第二级索引结构中的起始索引位置,按照点光源数量和起始索引位置查找影响确定的视锥单元的至少一个点光源以及按照聚光灯数量和中间索引位置查找影响确定的视锥单元的至少一个聚光灯,其中,中间索引位置由点光源数量和起始索引位置确定;渲染单元(图中未示出),用于从至少一个点光源和至少一个聚光灯中读取实际渲染数据进行光照渲染;判断单元(图中未示出),用于判断是否存在尚未渲染的待着色像素,如果是,则返回第二确定单元,如果否,则渲染结束。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,利用CPU计算游戏场景中每个光源的光照范围,得到运算结果;
S2,利用GPU根据运算结果进行光照渲染。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,利用CPU计算游戏场景中每个光源的光照范围,得到运算结果;
S2,利用GPU根据运算结果进行光照渲染。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种动态光照处理方法,其特征在于,包括:
利用中央处理器CPU计算游戏场景中每个光源的光照范围,得到运算结果;
利用图形处理器GPU根据所述运算结果进行光照渲染;
其中,利用所述CPU计算所述游戏场景中每个光源的光照范围,得到所述运算结果包括:
利用所述CPU根据当前摄像机的视锥确定第一截面和第二截面,其中,所述第一截面是距离所述当前摄像机的镜头最近的截面,所述第二截面是距离所述当前摄像机的镜头最远的截面;
利用所述CPU将所述第一截面和所述第二截面之间的视锥范围按照指数分布进行群组划分,得到多个视锥单元;
利用所述CPU在对所述游戏场景进行群组划分完毕之后,根据每个光源的包围盒所影响的视锥单元计算该光源的光照范围,得到所述运算结果。
2.根据权利要求1所述的方法,其特征在于,每个光源的光照范围的几何形状由所述当前摄像机的镜头类型确定。
3.根据权利要求1所述的方法,其特征在于,在利用所述CPU计算所述游戏场景中每个光源的光照范围,得到所述运算结果之后,还包括:
利用所述CPU将所述运算结果编码成被所述GPU所识别的数据结构。
4.根据权利要求3所述的方法,其特征在于,利用所述CPU将所述运算结果编码成被所述GPU所识别的数据结构包括:
利用所述CPU将所述运算结果编码成多级索引结构,其中,所述多级索引结构包括:第一级索引结构、第二级索引结构和第三级索引结构,所述第一级索引结构用于记录每个视锥单元内存储的描述信息,所述描述信息用于描述影响该视锥单元的点光源数量、聚光灯数量以及在所述第二级索引结构中的起始索引位置,所述第二级索引结构为点光源和聚光灯索引紧密排列的数据结构,所述第三级索引结构用于索引点光源和聚光灯的实际渲染数据;
利用所述CPU将所述多级索引结构存储至显存中。
5.根据权利要求4所述的方法,其特征在于,利用所述GPU根据所述运算结果进行光照渲染包括:
确定步骤,利用所述GPU确定当前待着色像素所归属的视锥单元;
处理步骤,利用所述GPU从确定的视锥单元中读取所述描述信息中记录的点光源数量、聚光灯数量以及在所述第二级索引结构中的起始索引位置,按照所述点光源数量和所述起始索引位置查找影响所述确定的视锥单元的至少一个点光源以及按照所述聚光灯数量和中间索引位置查找影响所述确定的视锥单元的至少一个聚光灯,其中,所述中间索引位置由所述点光源数量和所述起始索引位置确定;
渲染步骤,从所述至少一个点光源和所述至少一个聚光灯中读取所述实际渲染数据进行光照渲染;
判断步骤,判断是否存在尚未渲染的待着色像素,如果是,则返回所述确定步骤,如果否,则渲染结束。
6.一种动态光照处理装置,其特征在于,包括:
计算模块,用于利用中央处理器CPU计算游戏场景中每个光源的光照范围,得到运算结果;
处理模块,用于利用图形处理器GPU根据所述运算结果进行光照渲染;
其中,所述计算模块包括:
第一确定单元,用于利用所述CPU根据当前摄像机的视锥确定第一截面和第二截面,其中,所述第一截面是距离所述当前摄像机的镜头最近的截面,所述第二截面是距离所述当前摄像机的镜头最远的截面;
划分单元,用于利用所述CPU将所述第一截面和所述第二截面之间的视锥范围按照指数分布进行群组划分,得到多个视锥单元;
计算单元,用于利用所述CPU在对所述游戏场景进行群组划分完毕之后,根据每个光源的包围盒所影响的视锥单元计算该光源的光照范围,得到所述运算结果。
7.根据权利要求6所述的装置,其特征在于,每个光源的光照范围的几何形状由所述当前摄像机的镜头类型确定。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
编码模块,用于利用所述CPU将所述运算结果编码成被所述GPU所识别的数据结构。
9.根据权利要求8所述的装置,其特征在于,所述编码模块包括:
编码单元,用于利用所述CPU将所述运算结果编码成多级索引结构,其中,所述多级索引结构包括:第一级索引结构、第二级索引结构和第三级索引结构,所述第一级索引结构用于记录每个视锥单元内存储的描述信息,所述描述信息用于描述影响该视锥单元的点光源数量、聚光灯数量以及在所述第二级索引结构中的起始索引位置,所述第二级索引结构为点光源和聚光灯索引紧密排列的数据结构,所述第三级索引结构用于索引点光源和聚光灯的实际渲染数据;
存储单元,用于利用所述CPU将所述多级索引结构存储至显存中。
10.根据权利要求9所述的装置,其特征在于,所述处理模块包括:
第二确定单元,用于利用所述GPU确定当前待着色像素所归属的视锥单元;
处理单元,用于利用所述GPU从确定的视锥单元中读取所述描述信息中记录的点光源数量、聚光灯数量以及在所述第二级索引结构中的起始索引位置,按照所述点光源数量和所述起始索引位置查找影响所述确定的视锥单元的至少一个点光源以及按照所述聚光灯数量和中间索引位置查找影响所述确定的视锥单元的至少一个聚光灯,其中,所述中间索引位置由所述点光源数量和所述起始索引位置确定;
渲染单元,用于从所述至少一个点光源和所述至少一个聚光灯中读取所述实际渲染数据进行光照渲染;
判断单元,用于判断是否存在尚未渲染的待着色像素,如果是,则返回所述第二确定单元,如果否,则渲染结束。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至5任一项中所述的动态光照处理方法。
12.一种电子装置,包括存储器和多个处理器,其特征在于,所述多个处理器包括:中央处理器CPU和图形处理器GPU,所述存储器中存储有计算机程序,所述多个处理器被设置为运行所述计算机程序以执行所述权利要求1至5任一项中所述的动态光照处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910974204.8A CN110675479B (zh) | 2019-10-14 | 2019-10-14 | 动态光照处理方法、装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910974204.8A CN110675479B (zh) | 2019-10-14 | 2019-10-14 | 动态光照处理方法、装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110675479A CN110675479A (zh) | 2020-01-10 |
CN110675479B true CN110675479B (zh) | 2023-05-16 |
Family
ID=69082217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910974204.8A Active CN110675479B (zh) | 2019-10-14 | 2019-10-14 | 动态光照处理方法、装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110675479B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475307B (zh) * | 2020-04-02 | 2023-04-28 | 北京代码乾坤科技有限公司 | 物理结算的处理方法和装置 |
CN111773691A (zh) * | 2020-07-03 | 2020-10-16 | 珠海金山网络游戏科技有限公司 | 云游戏服务系统、云客户端及数据处理方法 |
CN112132918B (zh) * | 2020-08-28 | 2022-08-05 | 稿定(厦门)科技有限公司 | 基于粒子的聚光灯效果实现方法及装置 |
CN112569598A (zh) * | 2020-12-22 | 2021-03-30 | 上海幻电信息科技有限公司 | 目标对象控制方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768765A (zh) * | 2012-06-25 | 2012-11-07 | 南京安讯网络服务有限公司 | 实时点光源软阴影渲染方法 |
CN106504315A (zh) * | 2016-11-17 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 模拟全局光照的方法和装置 |
US9928637B1 (en) * | 2016-03-08 | 2018-03-27 | Amazon Technologies, Inc. | Managing rendering targets for graphics processing units |
CN109903385A (zh) * | 2019-04-29 | 2019-06-18 | 网易(杭州)网络有限公司 | 三维模型的渲染方法、装置、处理器及终端 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10803655B2 (en) * | 2012-06-08 | 2020-10-13 | Advanced Micro Devices, Inc. | Forward rendering pipeline with light culling |
-
2019
- 2019-10-14 CN CN201910974204.8A patent/CN110675479B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768765A (zh) * | 2012-06-25 | 2012-11-07 | 南京安讯网络服务有限公司 | 实时点光源软阴影渲染方法 |
US9928637B1 (en) * | 2016-03-08 | 2018-03-27 | Amazon Technologies, Inc. | Managing rendering targets for graphics processing units |
CN106504315A (zh) * | 2016-11-17 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 模拟全局光照的方法和装置 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN109903385A (zh) * | 2019-04-29 | 2019-06-18 | 网易(杭州)网络有限公司 | 三维模型的渲染方法、装置、处理器及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110675479A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110675479B (zh) | 动态光照处理方法、装置、存储介质及电子装置 | |
US11517818B2 (en) | Processing method, rendering method and device for static component in game scene | |
US9870362B2 (en) | Interactive data-driven presentations | |
CN110049456B (zh) | 一种在移动终端显示富媒体的方法、装置及移动终端 | |
US20130316825A1 (en) | Service providing method using on-line game, and recording media recording program for implementing the method | |
CN105487760A (zh) | 一种展示消息的方法、装置及电子设备 | |
CN104571877A (zh) | 一种页面的显示处理方法及装置 | |
CN111111172A (zh) | 游戏场景的地表处理方法、装置、处理器及电子装置 | |
CN110704058A (zh) | 页面渲染方法、装置、存储介质、处理器及电子装置 | |
EP3285216A1 (en) | Association of comments to points of interest in virtual reality | |
CN109213468B (zh) | 一种语音播放方法和装置 | |
CN112492382B (zh) | 视频帧提取方法、装置、电子设备和存储介质 | |
CN108428092B (zh) | 一种业务流程展示方法、装置及设备 | |
CN113176904A (zh) | 应用启动动画的调整方法和装置 | |
WO2018133556A1 (zh) | 一种用于实现用户在应用中通信的方法、装置与设备 | |
CN104054049A (zh) | 减少由cpu执行以便复制源数据从而实现对源数据的并行处理的读/写操作的数量 | |
CN112492399B (zh) | 信息显示方法、装置及电子设备 | |
CN113282237B (zh) | 分区创建方法、装置、存储介质及计算机设备 | |
KR101150717B1 (ko) | 홀로그램 영상 표시 방법 및 그 장치, 및 기록매체 | |
CN115495519A (zh) | 报表数据加工方法及装置 | |
CN114742970A (zh) | 虚拟三维模型的处理方法、非易失性存储介质及电子装置 | |
CN114782716A (zh) | 图像匹配方法及装置 | |
CN109491557A (zh) | 一种图标显示方法及装置 | |
CN111221461A (zh) | 逐步呈现图像展示内容的方法、装置、设备和存储介质 | |
CN115104092A (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 |