CN116524063A - 光照颜色的计算方法、装置、设备及介质 - Google Patents
光照颜色的计算方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116524063A CN116524063A CN202310808647.6A CN202310808647A CN116524063A CN 116524063 A CN116524063 A CN 116524063A CN 202310808647 A CN202310808647 A CN 202310808647A CN 116524063 A CN116524063 A CN 116524063A
- Authority
- CN
- China
- Prior art keywords
- light
- celestial sphere
- virtual environment
- client
- harmonic coefficients
- 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
- 238000005286 illumination Methods 0.000 title claims abstract description 116
- 238000004364 calculation method Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 claims abstract description 143
- 230000008569 process Effects 0.000 claims abstract description 75
- 230000004075 alteration Effects 0.000 claims abstract description 25
- 238000013507 mapping Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 19
- 238000009434 installation Methods 0.000 claims description 16
- 230000003287 optical effect Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 239000000523 sample Substances 0.000 claims 1
- 238000009877 rendering Methods 0.000 abstract description 37
- 239000003086 colorant Substances 0.000 abstract description 7
- 239000000306 component Substances 0.000 description 18
- 238000011161 development Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000003068 static effect Effects 0.000 description 13
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 238000004088 simulation Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002060 circadian Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种光照颜色的计算方法、装置、设备及介质,属于图像渲染领域。该方法包括:运行支持虚拟环境的客户端;在客户端的运行过程中,获取客户端内预存的天光球谐系数,天光球谐系数是根据光环境贴图预计算得到的,光环境贴图用于描述虚拟环境中的光照环境;根据天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。本申请将避免在运行过程中执行天光球谐系数的计算,不仅降低了运行时的终端性能消耗,还提高了虚拟环境中物体的渲染速度。
Description
技术领域
本申请涉及图像渲染领域,特别涉及一种光照颜色的计算方法、装置、设备及介质。
背景技术
游戏运行中,需要对场景中物件的光照颜色进行渲染。
相关技术中,对场景中物件的光照颜色渲染包含两个方面,其中一个是场景中直接光(光源直接照射)的颜色渲染,另一个是场景中间接光(全局光照)的颜色渲染。对于间接光的颜色渲染,则又进一步包含两个方面,一个是间接光的漫反射的颜色渲染,另一个是间接光的镜面反射的颜色渲染。渲染目标物件的间接光漫反射的颜色时,相关技术的思想是生成一张光环境贴图(Cubemap),光环境贴图描述了场景的光照环境,光环境贴图用于模拟环境中各个物件的反射和折射效果,朝目标物件的法线方向采样光环境贴图即可得到目标物件的天光漫反射颜色。
发明内容
本申请提供了一种光照颜色的计算方法、装置、设备及介质,避免了在运行过程中执行天光球谐系数的计算,不仅降低了运行时的终端性能消耗,还提高了虚拟环境中物体的渲染速度。所述技术方案包括如下内容。
根据本申请的一个方面,提供了一种光照颜色的计算方法,所述方法包括:
运行支持虚拟环境的客户端;
在客户端的运行过程中,获取客户端内预存的天光球谐系数,天光球谐系数是根据光环境贴图预计算得到的,光环境贴图用于描述虚拟环境中的光照环境;
根据天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个可选的实施例中,虚拟环境中的光照随时间发生变化。在客户端的运行过程中,获取多组天光球谐系数,多组天光球谐系数是根据多张光环境贴图预先计算得到的,多组天光球谐系数与多张光环境贴图一一对应,多张光环境贴图与多个标记时间点一一对应;根据实时时间对多组天光球谐系数进行插值,计算得到目标组天光球谐系数;根据目标组天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个可选的实施例中,根据实时时间,确定与实时时间相邻的两个标记时间点;根据实时时间与两个标记时间点的时间距离,计算得到插值系数;根据插值系数,对两个标记时间点对应的两组天光球谐系数进行插值计算,得到目标组天光球谐系数。
在一个可选的实施例中,根据实时时间,确定与实时时间相邻的两个标记时间点;根据实时时间,结合预配置的插值曲线,映射得到插值系数;根据插值系数,对两个标记时间点对应的两组天光球谐系数进行插值计算,得到目标组天光球谐系数。
在一个可选的实施例中,虚拟环境中的光照不随时间发生变化。
在客户端的运行过程中,获取单组天光球谐系数,单组天光球谐系数是根据单张光环境贴图预先计算得到的。在客户端的运行过程中,对于虚拟环境中的一个物体,根据单组天光球谐系数计算天光漫反射颜色。
根据本申请的另一个方面,提供了一种光照颜色的计算方法,所述方法包括:
获取光环境贴图,所述光环境贴图用于描述虚拟环境中的光照环境;
根据所述光环境贴图,预先计算得到天光球谐系数;
将所述天光球谐系数存储至客户端的安装包文件,所述客户端支持所述虚拟环境,所述天光球谐系数用于在所述客户端的运行过程中计算所述虚拟环境中至少一个物体的天光漫反射颜色。
在一个可选的实施例中,虚拟环境中的光照随时间发生变化。获取多张光环境贴图,多张光环境贴图与多个标记时间点一一对应。根据多张光环境贴图,预先计算得到与多张光环境贴图一一对应的多组天光球谐系数;多组天光球谐系数用于在客户端的运行过程中根据实时时间插值计算得到目标组天光球谐系数,目标组天光球谐系数用于计算得到虚拟环境中至少一个物体的天光漫反射颜色。
在一个可选的实施例中,所述多组天光球谐系数包括与所述实时时间相邻的两个标记时间点分别对应的两组天光球谐系数,所述两组天光球谐系数用于在运行过程中根据插值系数插值得到所述目标组天光球谐系数;
其中,所述插值系数是根据所述实时时间与所述两个标记时间点的时间距离计算得到的,或者,所述插值系数是根据所述实时时间在预配置的插值曲线中映射得到的。
在一个可选的实施例中,虚拟环境中的光照不随时间发生变化。获取单张光环境贴图;根据单张光环境贴图,预计算得到单组天光球谐系数;单组天光球谐系数用于在客户端的运行过程中对虚拟环境中的物体计算天光漫反射颜色。
在一个可选的实施例中,将天光球谐系数存储至天光照明组件中,天光照明组件是虚拟环境的光源组件;以及,在天光照明组件中移除光环境贴图;将天光照明组件存储至客户端的安装包文件中。
在一个可选的实施例中,在天光照明组件中保存光环境贴图的存储路径。
根据本申请的另一方面,提供了一种光照颜色的计算装置,所述装置包括:
运行模块,用于运行支持虚拟环境的客户端;
获取模块,用于在客户端的运行过程中,获取客户端内预存的天光球谐系数,天光球谐系数是根据光环境贴图预计算得到的,光环境贴图用于描述虚拟环境中的光照环境;
计算模块,用于根据天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。
根据本申请的另一方面,提供了一种光照颜色的计算装置,所述装置包括:
获取模块,用于获取光环境贴图,光环境贴图用于描述虚拟环境中的光照环境;
计算模块,用于根据光环境贴图,预先计算得到天光球谐系数;
处理模块,用于将天光球谐系数存储至客户端的安装包文件,客户端支持虚拟环境,天光球谐系数用于在客户端的运行过程中计算虚拟环境中至少一个物体的天光漫反射颜色。
根据本申请的一个方面,提供了一种计算机设备,计算机设备包括:处理器和存储器,存储器存储有计算机程序,计算机程序由处理器加载并执行以实现如上的光照颜色的计算方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序由处理器加载并执行以实现如上的光照颜色的计算方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在客户端的运行过程中,将根据预存的天光球谐系数,计算得到虚拟环境中的物体的天光漫反射颜色,其中,天光球谐系数是根据光环境贴图预计算得到的。即本申请将避免在运行过程中执行天光球谐系数的计算,渲染画面时将直接向GPU传输天光球谐系数,由GPU计算并渲染天光漫反射颜色,本申请释放了原先用于计算天光球谐系数的计算资源,降低了运行时的终端性能消耗。
并且,运行过程中实时渲染画面对终端的处理速度要求较高,本申请直接利用预存的天光球谐系数也提高了虚拟环境中物体的渲染速度,避免了因渲染速度较慢导致的画面卡顿、清晰度差等现象。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的原理示意图;
图2是本申请一个实施例提供的光照颜色的计算方法的流程图;
图3是本申请一个实施例提供的编辑器的界面示意图;
图4是本申请一个示例性实施例提供的编辑器计算得到的多组天光球谐系数的示意图;
图5是本申请另一个实施例提供的编辑器的界面示意图;
图6是本申请一个实施例提供的记录天光球谐系数的代码结构的示意图;
图7是本申请另一个实施例提供的光照颜色的计算方法的流程图;
图8是本申请一个示例性实施例提供的光照颜色的计算方法的示意图;
图9是本申请另一个示例性实施例提供的光照颜色的计算方法的示意图;
图10是本申请一个实施例提供的光照颜色的计算装置的结构框图;
图11是本申请另一个实施例提供的光照颜色的计算装置的结构框图;
图12是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
虚幻引擎(Unreal Engine,UE):一种游戏引擎,游戏引擎由已经编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件组成。游戏引擎为游戏开发者提供各种编写游戏所需的各种工具,其目的在于让游戏开发者能容易和快速地做出游戏程式而不用由零开始。简单来说,游戏引擎是代码框架,而游戏开发者即直接利用代码框架,来快速实现游戏开发。
天光照明组件(称为SkyLight或SkyLightComponent):天光照明组件是虚幻引擎中的一个照明组件,用于模拟天空中的光照和环境光。天光照明组件可以根据环境贴图或天空球来生成实时的环境光照,并将其应用于场景中的所有物体。天光照明组件可以作为静态或动态光源使用,它可以在场景中创建一个天空盒,也可以捕捉周围环境的光照信息,从而实现更真实的环境光照效果。即,天光照明组件是虚拟环境的天光光源组件。
球谐(Spherical Harmonics,SH):球谐基函数是一种球面空间的基函数。球谐函数拟合是指球谐基函数的线性组合,线性组合的系数称之为球谐系数。球谐是一种用于近似表示球面上的函数的数学方法。在图形学中,球谐经常用于描述光照信息,特别是在实时渲染中。通过使用球谐,可以将光照信息压缩成几个系数,并在运行时快速计算出场景中的光照。虚幻引擎中,球谐系数用于描述场景中的全局照明信息,如场景中的天光(Skylight)和全局光照(Lightmass)计算。
图形处理器(Graphics Processing Unit,GPU):一种专门用于处理图形计算的处理器,它的设计目标是为了加速图形渲染和计算任务。相比于中央处理器(CentralProcessing Unit,CPU),GPU拥有更多的流处理器和更高的并行计算能力,使得它可以同时处理大量的数据,从而提供更高的图形渲染性能。除了用于游戏和娱乐产业,GPU还被广泛应用于科学计算、人工智能、虚拟现实等领域。
顶点着色器(Vertex Shader,VS):主要负责对场景中的顶点进行变换,像素着色器(Pixel Shader,PS)负责对每个像素进行着色,包括纹理采样、光照计算、透明度等。顶点着色器和像素着色器是GPU上的程序,可以高效地处理三维场景的渲染,并且可以通过编写自定义的着色器代码来实现特定的渲染效果。虚幻引擎提供了一些内置的着色器模板,也支持开发者编写自定义的着色器来满足特定的需求。
计算着色器(Compute Shader,CS):是一种在GPU上运行的程序,用于高效地执行计算任务。与顶点着色器和像素着色器不同的是,计算着色器不直接与图形渲染相关,而是用于执行通用计算任务,如物理模拟、数据处理等。计算着色器可以通过编写自定义的着色器代码来实现特定的计算任务,并且可以与其他着色器和渲染技术结合使用,扩展虚幻引擎的功能。
立方体贴图(CubeMap):是一种特殊的贴图类型,用于渲染环境反射和折射效果。它由六个面组成,每个面都是一个正方形的二维贴图,共同组成一个立方体。在渲染过程中,立方体贴图可以捕捉场景中的环境信息,并将其映射到一个立方体贴图上,然后使用该贴图来模拟物体的反射和折射效果。立方体贴图常用于实现镜面反射、全局光照和天空盒等效果。
天时间(Time Of Day):指的是一天中不同时间的变化,通常指昼夜变化。
移动属性(Mobility):在虚幻引擎中,天光照明组件的Mobility属性指定了灯光如何移动和更新,可选的属性值有Static、Stationary和Movable。当天光照明组件的Mobility为Static时,运行时不会计算天光球谐系数,天光各项参数修改无效;当天光照明组件的Mobility为Stationary或Movable时,运行时会计算天光的SH系数。通常意义上,Static意味着虚拟环境中的直接光和间接光都烘培,无实时光照;Stationary意味着烘培间接光,实时计算直接光;Movable意味着不烘培,实时计算直接光。针对不同的光源,可以特殊指定其具体含义。
序列化、反序列化:序列化是将数据结构或对象转换为一种可被存储或传输的格式的过程,以便在需要时可以进行存储、传输或还原。序列化通常涉及将数据转换为二进制格式,以便能够有效地存储和传输数据。序列化可以用于许多场景,例如保存和加载游戏状态、将数据传输到远程服务器、创建网络通信协议等。反序列化是序列化的逆过程,即将二进制数据转换回原来的数据结构或对象。反序列化通常涉及将二进制数据读取到内存中,并根据数据的结构将其转换回原始的数据类型。在实际应用中,序列化和反序列化通常是成对出现的,用于将数据存储和传输到不同的环境中。
虚拟环境:客户端(如游戏客户端)在终端上运行时显示(或提供)的虚拟的环境。该虚拟环境可以是对真实世界的仿真环境环境,也可以是半仿真半虚构的三维环境环境,还可以是纯虚构的三维环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,下述实施例以虚拟环境是三维虚拟环境来举例说明,但对此不加以限定。
图1示出了本申请一个示例性实施例提供的原理示意图。图1示出了计算机系统,计算机系统包括客户端开发设备101和客户端运行设备102。在本申请中,客户端开发设备101将执行天光球谐系数的预计算,将预计算得到的天光球谐系数发送至客户端运行设备102,客户端运行设备102在客户端的运行过程中通过天光球谐系数计算虚拟环境中物体的天光漫反射颜色。
结合参考图1,图1还示出了在虚拟环境中光照随时间发生变化和光照不随时间发生变化两种情况下,客户端开发设备101的天光球谐系数的预计算过程,以及客户端运行设备102的运行过程。
对于光照随时间发生变化的情况,客户端开发设备101获取多张光环境贴图103,根据多张光环境贴图103计算得到多组天光球谐系数104,其中,光环境贴图表征虚拟环境中的光照环境,多张光环境贴图是预先配置得到的,天光球谐系数表征多张光环境贴图103压缩后得到的光照信息,多组天光球谐系数104与多张光环境贴图103一一对应。多组光环境贴图103与虚拟环境中的多个标记时间点一一对应,可选的,多个标记时间点包括清晨、中午、傍晚、午夜。
客户端运行设备102获取多组天光球谐系数104,根据虚拟环境的实时时间(游戏的实时时间)计算得到插值系数,根据插值系数对多组天光球谐系数104中的至少两组天光球谐系数进行插值计算,得到目标组天光球谐系数105。客户端运行设备102再根据目标组天光球谐系数105计算得到虚拟环境中至少一个物体的天光漫反射颜色106。在一个实施例中,客户端运行设备102根据虚拟环境的实时时间,确定与实时时间相邻的两个标记时间点;根据实时时间与两个标记时间点的时间距离,计算得到插值系数;根据插值系数,对两个标记时间点对应的两组天光球谐系数进行插值计算,得到目标组天光球谐系数。
在一个实施例中,客户端运行设备102根据实时时间,确定与实时时间相邻的两个标记时间点;根据实时时间,结合预配置的插值曲线,映射得到插值系数;根据插值系数,对两个标记时间点对应的两组天光球谐系数进行插值计算,得到目标组天光球谐系数。插值曲线是客户端开发设备101预配置的。
对于光照不随时间发生变化的情况,客户端开发设备101获取单张光环境贴图107,根据单张光环境贴图107计算得到单组天光球谐系数108,单张光环境贴图107与单组天光球谐系数108相对应。可选的,单张光环境贴图107是虚幻引擎中的天光照明组件指定的。客户端运行设备102获取单组天光球谐系数108,在运行过程中,客户端运行设备102对虚拟环境中的物体计算天光漫反射颜色109。
在一个实施例中,客户端开发设备101不将光环境贴图发送至客户端运行设备102。可选的,客户端开发设备101将光环境贴图的存储路径发送至客户端运行设备102。
可以理解的是,对于虚拟环境中光照随时间发生变化和光照不随时间发生变化的两种情况,相关技术均是在运行过程中计算天光球谐系数的,本申请的天光球谐系数在开发过程中已预计算得到,本申请能降低运行过程中的性能消耗。不发送光环境贴图,使得运行过程中无需加载光环境贴图,节省了客户端运行设备102的内存,以及释放了安装包文件的包空间。
在一个实施例中,客户端开发设备101可以是终端或服务器中的至少一种。客户端运行设备102可以是终端。客户端开发设备101和客户端运行设备102可以是同一设备或不同设备。可选的,终端为手机、台式电脑、笔记本电脑、平板电脑、智能电视、智能音箱、车载终端、AR(Augmented Reality,增强现实)/VR(Virtual Reality,虚拟现实)设备、智能机器人或者智能手表等多种类型的终端。可选的,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
图2示出了本申请一个示例性实施例提供的光照颜色的计算方法的流程图,以该方法由图1所示的客户端开发设备执行或客户端开发设备中的编辑器执行进行举例说明,编辑器可以是虚幻引擎的编辑器,该方法包括如下步骤。
步骤220,获取光环境贴图,光环境贴图用于描述虚拟环境中的光照环境;
光环境贴图,即Cubemap,光环境贴图用于描述虚拟环境中的光照环境,具体的,光环境贴图用于模拟虚拟环境中物体的反射和折射效果。
虚拟环境,客户端在终端上运行时显示(或提供)的虚拟的环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的三维环境,还可以是纯虚构的三维环境。客户端上登录有控制虚拟角色的游戏帐号,客户端可以是射击类游戏应用程序、赛车竞技类游戏应用程序、MOBA(Multiplayer Online Battle Arena,多人在线战术竞技)类游戏应用程序、回合制卡牌游戏应用程序、三维地图程序、横版射击、横版冒险、横版过关、横版策略、虚拟现实(Virtual Reality,VR)应用程序、增强现实(Augmented Reality,AR)程序中的任意一种。
在一个实施例中,对于虚拟环境中的光照随时间发生变化的情况,将获取多张光环境贴图,多张光环境贴图与虚拟环境的多个标记时间点一一对应。可选的,标记时间点是编辑器中设置的虚拟环境中的时间点,如清晨(6:00)、中午(12:00)、傍晚(17:00)、午夜(00:00)。
可选的,编辑器中的多张光环境贴图是通过记录的存储路径加载得到的,编辑器根据存储路径在代码中显示加载多张光环境贴图。
示意性的,图3示出了编辑器界面。编辑器界面显示了天光照明组件中与天光漫反射相关联的天光球谐系数的四张光环境贴图301,四张光环境贴图301从上往下依次与清晨、中午、傍晚、午夜四个标记时间点相对应。天光照明组件是虚拟环境的光源组件。
在一个实施例中,对于虚拟环境中的光照不随时间发生变化的情况,将获取单张光环境贴图。可选的,单张光环境贴图是天光照明组件中预先配置的,可选的,天光照明组件中预存有单张光环境贴图资源。
步骤240,根据光环境贴图,预先计算得到天光球谐系数;
天光球谐系数,用于表征光环境贴图压缩后得到的环境光照信息。编辑器将根据光环境贴图,预计算得到天光球谐系数。其中,天光球谐系数已具有非常成熟的计算方式,且不属于本申请的关注重点,故不展开描述。
在一个实施例中,对于虚拟环境中的光照随时间发生变化的情况,将根据多张光环境贴图,预先计算得到与多张光环境贴图一一对应的多组天光球谐系数。多组天光球谐系数用于在客户端的运行过程中对虚拟环境中的物体计算天光漫反射颜色。
结合参考图4,图4示出了编辑器预计算得到的多组天光球谐系数,图4示出了第一组天光球谐系数401、第二组天光球谐系数402、第三组天光球谐系数403和第四组天光球谐系数404。图4中的每组天光球谐系数包括三阶球谐,每组天光球谐系数共包括27个系数。图4示出的是编辑器的日志记录的多组天光球谐系数。
在一个实施例中,对于虚拟环境中的光照不随时间发生变化的情况,将根据单张光环境贴图,预计算得到单组天光球谐系数;单组天光球谐系数用于在客户端的运行过程中对虚拟环境中的物体计算天光漫反射颜色。
步骤260,将天光球谐系数存储至客户端的安装包文件,客户端支持虚拟环境,天光球谐系数用于在客户端的运行过程中计算虚拟环境中至少一个物体的天光漫反射颜色。
预计算得到天光球谐系数之后,还将天光球谐系数进行数据打包,将数据包发送至客户端运行设备。客户端运行设备和客户端开发设备可以是同一设备也可以是不同设备,客户端运行设备可以是玩家终端,也可以是游戏的测试终端等。运行过程中,客户端运行设备在计算虚拟环境中物体的天光漫反射颜色时,无需再计算天光球谐系数。
在一个实施例中,将天光球谐系数存储至天光照明组件中,天光照明组件是虚拟环境的光源组件;以及,在天光照明组件中移除光环境贴图;将天光照明组件存储至客户端的安装包文件中。在天光照明组件中移除光环境贴图,使得运行时无需加载光环境贴图,光环境贴图不会被存储至安装包文件,也即光环境贴图不会在运行时占用内存。
可选的,在天光照明组件中保存光环境贴图的存储路径,如FSoftPathPtr路径,方便有需要时重新执行天光球谐系数的预计算。示意性的,当光环境贴图存在修改时,可快速重新执行天光球谐系数的预计算。FSoftObjectPath是一个引用资源的结构体,FSoftObjectPath存储了一个资源的路径信息,但并不会直接加载这个资源。
综上所述,在客户端的运行过程中,将根据预存的天光球谐系数,计算得到虚拟环境中的物体的天光漫反射颜色,其中,天光球谐系数是根据光环境贴图预计算得到的。即本申请将避免在运行过程中执行天光球谐系数的计算,渲染画面时将直接向GPU传输天光球谐系数,由GPU计算并渲染天光漫反射颜色。本申请释放了原先用于计算天光球谐系数的计算资源,降低了运行时的终端性能消耗。并且,运行过程中实时渲染画面对终端的处理速度要求较高,本申请直接利用预存的天光球谐系数也提高了虚拟环境中物体的渲染速度,避免了因渲染速度较慢导致的画面卡顿、清晰度差等现象。
并且,具体提供了对于虚拟环境中光照随时间发生变化的情况,将根据预计算得到的多组天光球谐系数计算得到目标组天光球谐系数。直接利用多组天光球谐系数,计算难度较低,降低了运行过程中的性能消耗。
并且,具体提供了对于光照不随时间发生变化的情况,将根据预计算得到的单组天光球谐系数计算天光漫反射颜色。直接利用单组天光球谐系数,无需额外计算操作,降低了运行过程中的性能消耗。
并且,预计算天光球谐系数,使得运行过程中无需加载光环境贴图,节省了运行终端的内存,以及释放了安装包文件的数据包空间。
并且,在天光照明组件中保存光环境贴图的存储路径,有利于在需要时重新执行天光球谐系数的预计算。
基于图2所示的实施例中,步骤240中对于虚拟环境中的光照随时间发生变化的情况,将根据多张光环境贴图生成多组天光球谐系数。多组天光球谐系数中的至少两组天光球谐系数用于在客户端的运行过程中根据虚拟环境中的实时时间插值计算得到目标组天光球谐系数,目标组天光球谐系数用于计算得到虚拟环境中至少一个物体的天光漫反射颜色。实时时间是游戏时间,可选的,实时时间是客户端运行设备上的游戏时间。
在一个实施例中,多组天光球谐系数包括与实时时间相邻的两个标记时间点分别对应的两组天光球谐系数,两组天光球谐系数用于在运行过程中根据插值系数插值得到目标组天光球谐系数。插值系数的取值为[0,1]。
在一种可能的实施方式中,插值系数是根据虚拟环境的实时时间与两个标记时间点的时间距离计算得到的。示意性的,多张光环境贴图包括四张光环境贴图,分别与清晨(6:00)、中午(12:00)、傍晚(17:00)、午夜(00:00)四个标记时间点相对应。假设实时时间为9:00,则实时时间与相邻的两个标记时间点的时间距离均为3个小时,则确定清晨的光环境贴图的插值系数为0.5,中午的光环境贴图的插值系数也为0.5,将两张光环境贴图与各自对应的插值系数进行乘法运算后,再进行求和,得到目标组天光球谐系数。
在另一种可能的实施方式中,插值系数是根据虚拟环境的实时时间在预配置的插值曲线中映射得到的。示意性的,假设实时时间为9:00,根据预配置的插值曲线确定9:00映射的清晨的光环境贴图的插值系数为0.3、中午的光环境贴图的插值系数为0.7,将两张光环境贴图与各自对应的插值系数进行乘法运算后,再进行求和,得到目标组天光球谐系数。结合参考图5,图5示出了编辑器中预配置插值曲线的界面。区域501显示了天光插值系数的相关编辑控件,此时将通过曲线进行配置天光插值系数。
可选的,预配置的插值曲线包括多条插值曲线。多条插值曲线与客户端运行设备的多种显示模式一一对应,显示模式可以是游戏客户端中设置的,也可以是终端的操作系统设置的。例如,预配置有三条插值曲线,分别对应低分辨率显示模式、中分辨率显示模式和高分辨率显示模式。客户端运行设备检测到当前客户端处于低分辨率显示模式,则使用第一插值曲线;检测到当前客户端处于中分辨率显示模式,则使用第二插值曲线;检测到当前客户端处于高分辨率显示模式,则使用第三插值曲线。
对于同一实时时间,通过第一插值曲线映射得到的第一光环境贴图的插值系数小于通过第二插值曲线映射得到的第一光环境贴图的插值系数,通过第二插值曲线映射得到的第一光环境贴图的插值系数小于通过第三插值曲线映射得到的第一光环境贴图的插值系数。第一光环境贴图是实时时间相邻的两个标记时间点中较接近“12:00”的标记时间点对应的光环境贴图。
或者说,对于同一实时时间,通过第一插值曲线映射得到的第二光环境贴图的插值系数大于通过第二插值曲线映射得到的第二光环境贴图的插值系数,通过第二插值曲线映射得到的第二光环境贴图的插值系数大于通过第三插值曲线映射得到的第二光环境贴图的插值系数。第二光环境贴图是实时时间相邻的两个标记时间点中较接近“00:00”的标记时间点对应的光环境贴图。
上述方式中,客户端运行设备将使用与显示模式匹配的插值曲线,满足了高分辨率模式下虚拟环境中的光照将更充足,画面将更清晰但耗能;低分辨率模式下虚拟环境中的光照将不充足,画质较差但节能。
在一个实施例中,插值系数是根据实时时间分别与多组天光球谐系数的多个标记时间点之间的时间距离确定得到的。多组天光球谐系数用于在运行过程中根据插值系数插值得到目标组天光球谐系数。例如,实时时间为9:00,则实时时间与四个标记时间点的时间距离分别为3小时、3小时、7小时和9小时,则确定清晨的光环境贴图的权重为(1-3/22)、中午的光环境贴图的权重为(1-3/22)、傍晚的光环境贴图的权重为(1-7/22)、午夜光环境贴图的权重为(1-9/22),将四张光环境贴图与各自对应的权重进行加权求和后,求平均值,得到目标组天光球谐系数。
综上所述,上述实施例具体提供了对于虚拟环境中光照随时间发生变化的情况,将根据预计算得到的多组天光球谐系数计算得到目标组天光球谐系数,通过实时时间得到插值系数,通过插值系数插值得到目标天光组球谐系数,不仅可以实现对画面的实时渲染,所利用的插值计算还较为简单,不会增加过多的计算量。并且,插值系数可以通过实时时间计算得到也可以通过预配置的曲线映射得到,插值系数的获取过程较为简单,不会增加过多的计算量。
在一个实施例中,基于图2所示的方法实施例,执行步骤220之前,还需先将天光照明组件设置为运行时计算天光球谐系数的状态,天光照明组件是虚拟环境的光源组件。天光照明组件(SkyLight)具有Mobility属性,Mobility属性具有三种可能的属性值Static、Stationary、Movable。
当天光照明组件的Mobility属性为Static时,运行时不会计算天光球谐系数,天光的各项参数修改无效;当天光照明组件的Mobility属性为Stationary或Movable时,运行时会计算天光球谐系数。具体的,执行步骤220之前,还需先将天光照明组件的Mobility属性设置为Stationary。
在一个实施例中,基于图2所示的方法实施例,执行步骤240之后,还将天光照明组件设置为运行时不计算天光球谐系数的状态。具体的,执行步骤240之后,还将天光照明组件的Mobility属性设置为Static。
在一个实施例中,基于图2所示的方法实施例,步骤260中,将天光球谐系数存储至天光照明组件中,更具体的,包括采用UProperty变量将预计算得到的天光球谐系数存储至天光照明组件中,借助于UProperty可以方便地实现天光球谐系数的序列化和反序列化。结合参考图6,图6的(A)部分示出了采用Uproperty变量记录天光球谐系数的代码结构,图6的(B)部分示出了更具体的将一组天光球谐系数共27个系数采用Uproperty变量进行记录的代码结构。
在虚幻引擎里,当一个类的某个成员变量被定义为Uproperty变量时,该成员变量会自动被虚幻引擎的序列化系统管理。在序列化时,虚幻引擎4会将UProperty变量的值转换为一个二进制格式,并将其写入到磁盘或网络流中。在反序列化时,虚幻引擎4会将二进制数据读取出来,并将其转换回原来的值。
在一个实施例中,基于图2所示的方法实施例,步骤240中,编辑器预计算天光球谐系数时,通过GPU中的顶点着色器(VS)和像素着色器(PS)进行计算。可选的,还通过GPU中的计算着色器(CS)加速计算,以提升并行度。
图7示出了本申请一个示例性实施例提供的光照颜色的计算方法的流程图,以该方法由图1所示的客户端运行设备102执行进行举例说明,该方法包括如下步骤。
步骤720,运行支持虚拟环境的客户端;
客户端是游戏客户端,游戏客户端支持游戏中的虚拟环境,虚拟环境可以是是对真实世界的仿真环境,也可以是半仿真半虚构的三维环境,还可以是纯虚构的三维环境。虚拟角色可以在虚拟环境中执行奔跑、射击等动作。
步骤740,在客户端的运行过程中,获取客户端内预存的天光球谐系数,天光球谐系数是根据光环境贴图预计算得到的,光环境贴图用于描述虚拟环境中的光照环境;
在一个实施例中,对于虚拟环境中的光照随时间发生变化的情况,将获取多组天光球谐系数,多组天光球谐系数是根据多张光环境贴图预先计算得到的,多组天光球谐系数与多张光环境贴图一一对应,多张光环境贴图与虚拟环境的多个标记时间点一一对应。可选的,标记时间点是编辑器中设置的时间点,如清晨(6:00)、中午(12:00)、傍晚(17:00)、午夜(00:00)。
在一个实施例中,对于虚拟环境中的光照不随时间发生变化的情况,将获取单组天光球谐系数,单组天光球谐系数是根据单张光环境贴图预先计算得到的。
步骤760,根据天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个实施例中,对于虚拟环境中的光照随时间发生变化的情况,将根据多组天光球谐系数计算得到目标组天光球谐系数;根据目标组天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个实施例中,对于虚拟环境中的光照不随时间发生变化的情况,将根据单组天光球谐系数直接计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个实施例中,将天光球谐系数通过光照积分公式,得到物体的辐射度信息,辐射度信息是经过多次反射后到达物体所在位置的光的总和。将物体的辐射度值与物体的法线结合,以计算物体的天光漫反射颜色。可选的,还将物体的辐射度值与物体的材质颜色等表面属性进行结合,以计算物体的天光漫反射颜色。可选的,为方便GPU进行并行运算,一组天光球谐系数中的27个系数将作为7个vector4(一种变量类型)参与运算。
综上所述,在客户端的运行过程中,将根据预存的天光球谐系数,计算得到虚拟环境中的物体的天光漫反射颜色,其中,天光球谐系数是根据光环境贴图预计算得到的。即本申请将避免在运行过程中执行天光球谐系数的计算,渲染画面时将直接向GPU传输天光球谐系数,由GPU计算并渲染天光漫反射颜色。本申请释放了原先用于计算天光球谐系数的计算资源,降低了运行时的终端性能消耗。并且,运行过程中实时渲染画面对终端的处理速度要求较高,本申请直接利用预存的天光球谐系数也提高了虚拟环境中物体的渲染速度,避免了因渲染速度较慢导致的画面卡顿、清晰度差等现象。
并且,上述实施例具体提供了对于虚拟环境中光照随时间发生变化的情况,将根据预计算得到的多组天光球谐系数计算得到目标组天光球谐系数,根据目标组天光球谐系数计算天光漫反射颜色。直接利用多组天光球谐系数,计算难度较低,降低了运行过程中的性能消耗。
并且,上述实施例具体提供了对于光照不随时间发生变化的情况,将根据预计算得到的单组天光球谐系数计算天光漫反射颜色。直接利用单组天光球谐系数,无需额外计算操作,降低了运行过程中的性能消耗。
并且,预计算天光球谐系数,使得运行过程中无需加载光环境贴图,节省了运行终端的内存,以及释放了安装包文件的数据包空间。
基于图7所示的可选实施例中,步骤760中对于虚拟环境中的光照随时间发生变化的情况,将根据多组天光球谐系数计算得到目标组天光球谐系数,包括:根据虚拟环境的实时时间对多组天光球谐系数中的至少两组天光球谐系数进行插值,计算得到目标组天光球谐系数;根据目标组天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个实施例中,根据实时时间,确定与实时时间相邻的两个标记时间点;根据实时时间与两个标记时间点的时间距离,计算得到插值系数;根据插值系数,对两个标记时间点对应的两组天光球谐系数进行插值计算,得到目标组天光球谐系数。示意性的,多张光环境贴图包括四张光环境贴图,分别与清晨(6:00)、中午(12:00)、傍晚(17:00)、午夜(00:00)四个标记时间点相对应。假设实时时间为9:00,则实时时间与相邻的两个标记时间的时间距离均为3个小时,则确定清晨的光环境贴图的插值系数为0.5,中午的光环境贴图的插值系数也为0.5,将两张光环境贴图与各自对应的插值系数进行乘法运算后,再进行求和,得到目标组天光球谐系数。
在一个实施例中,根据实时时间,确定与实时时间相邻的两个标记时间点;根据实时时间,结合预配置的插值曲线,映射得到插值系数;根据插值系数,对两个标记时间点对应的两组天光球谐系数进行插值计算,得到目标组天光球谐系数。示意性的,假设实时时间为9:00,根据预配置的插值曲线确定9:00映射的清晨的光环境贴图的插值系数为0.3、中午的光环境贴图的插值系数为0.7,将两张光环境贴图与各自对应的插值系数进行乘法运算后,再进行求和,得到目标组天光球谐系数。
可选的,预配置的插值曲线包括多条插值曲线。多条插值曲线与客户端运行设备的多种显示模式一一对应,显示模式可以是游戏客户端中设置的,也可以是终端的操作系统设置的。例如,预配置有三条插值曲线,分别对应低分辨率显示模式、中分辨率显示模式和高分辨率显示模式。客户端运行设备检测到当前客户端处于低分辨率显示模式,则使用第一插值曲线;检测到当前客户端处于中分辨率显示模式,则使用第二插值曲线;检测到当前客户端处于高分辨率显示模式,则使用第三插值曲线。
对于同一实时时间,通过第一插值曲线映射得到的第一光环境贴图的插值系数小于通过第二插值曲线映射得到的第一光环境贴图的插值系数,通过第二插值曲线映射得到的第一光环境贴图的插值系数小于通过第三插值曲线映射得到的第一光环境贴图的插值系数。第一光环境贴图是实时时间相邻的两个标记时间点中较接近“12:00”的标记时间点对应的光环境贴图。
或者说,对于同一实时时间,通过第一插值曲线映射得到的第二光环境贴图的插值系数大于通过第二插值曲线映射得到的第二光环境贴图的插值系数,通过第二插值曲线映射得到的第二光环境贴图的插值系数大于通过第三插值曲线映射得到的第二光环境贴图的插值系数。第二光环境贴图是实时时间相邻的两个标记时间点中较接近“00:00”的标记时间点对应的光环境贴图。
上述方式中,客户端运行设备将使用与显示模式匹配的插值曲线,满足了高分辨率模式下虚拟环境中的光照将更充足,画面将更清晰但耗能;低分辨率模式下虚拟环境中的光照将不充足,画质较差但节能。
在一个实施例中,根据实时时间分别与多组天光球谐系数的多个标记时间点之间的时间距离,确定得到插值系数。根据插值系数,对多组天光球谐系数进行插值计算,得到目标组天光球谐系数。例如,实时时间为9:00,则实时时间与四个标记时间点的时间距离分别为3小时、3小时、7小时和9小时,则确定清晨的光环境贴图的权重为(1-3/22)、中午的光环境贴图的权重为(1-3/22)、傍晚的光环境贴图的权重为(1-7/22)、午夜光环境贴图的权重为(1-9/22),将四张光环境贴图与各自对应的权重进行加权求和后,求平均值,得到目标组天光球谐系数。
综上所述,上述实施例具体提供了对于虚拟环境中光照随时间发生变化的情况,将根据预计算得到的多组天光球谐系数计算得到目标组天光球谐系数,通过实时时间得到插值系数,通过插值系数插值得到目标天光组球谐系数,不仅可以实现对画面的实时渲染,所利用的插值计算还较为简单,不会增加过多的计算量。并且,插值系数可以通过实时时间计算得到也可以通过预配置的曲线映射得到,插值系数的获取过程较为简单,不会增加过多的计算量。
图8示出了本申请一个示例性实施例提供的光照颜色的计算方法的示意图。以该方法由图1所示的客户端开发设备执行进行举例说明,该方法包括如下步骤。
步骤801,开始;
步骤802,场景主关卡接收打开操作;天光球谐系数预计算功能菜单接收打开操作;
响应于编辑器中游戏的场景主关卡页面接收打开操作,将显示主关卡页面。通过主关卡页面打开天光球谐系数预计算功能菜单,天光球谐系数预计算功能菜单用于配置与天光球谐系数计算相关的参数,并执行天光球谐系数的计算。响应于天光球谐系数预计算功能菜单接收打开操作,执行如下步骤803。
可选的,游戏是闯关类游戏,在游戏世界中设置有多个游戏关卡,可选的,当玩家控制虚拟角色通过前一关卡之后,方可进行后一关卡的闯关。可选的,玩家可再次进行已通过关卡的闯关。编辑器中将为每个关卡设置一个场景主关卡页面,场景主关卡页面支持对该关卡中的场景进行相关参数的配置。
步骤803,编辑器加载含有天光照明组件和TOD配置的场景灯光关卡;
编辑器将加载含有天光照明组件和TOD配置的场景灯光关卡。
步骤804,编辑器将天光照明组件的Mobility属性设置为Stationary;
在计算天光球谐系数之前,编辑器将天光照明组件的Mobility属性设置为Stationary。根据虚幻引擎中天光的特性,将Mobility属性设置为Stationary,方能执行天光球谐系数的计算。
最终天光照明组件的Mobility属性设置为Static。但在计算天光球谐系数期间,天光照明组件的Mobility属性设置为Stationary。这是直接利用虚幻引擎中天光的特性,设置为Static可以使得运行时完全跳过天光球谐系数的计算;设置为Stationary才能执行。
步骤805,判断场景是否存在昼夜变化;
若场景存在昼夜变化,即存在TOD,则执行步骤806;若场景不存在昼夜变化,即不存在TOD,则执行步骤808。
步骤806,编辑器根据TOD的凌晨、中午、傍晚、午夜四个时间点配置的光环境贴图,分别计算得到四组天光球谐系数;
编辑器计算天光球谐系数时,可以直接借用虚幻引擎的现有功能,即根据提供的Cubemap(光环境贴图)用顶点着色器、像素着色器计算天光球谐系数。对于存在昼夜变化的场景,编辑器将根据凌晨、中午、傍晚、午夜4个时间点对应的4个Cubemap的存储路径,分别加载得到Cubemap,再根据加载得到的Cubemap计算天光球谐系数,最终得到4组天光球谐系数。
步骤807,编辑器将天光照明组件的Mobility属性设置为Static;
执行完步骤807之后,此时输出结果包括Mobility属性设置为Static的天光照明组件,天光照明组件不关联加载任何的Cubemap资源,天光照明组件含有四组天光球谐系数。天光球谐系数可以直接保存到天光照明组件,借助于UProperty可以方便地实现天光球谐系数的序列化和反序列化。
在一个实施例中,最终的天光照明组件不直接关联Cubemap,仅保存Cubemap的存储路径(如FSoftPathPtr路径)。天光照明组件不直接关联Cubemap使得游戏运行过程中不会将Cubemap加载进终端内存,并且,游戏打包时也可以忽略Cubemap。保存Cubemap的存储路径记录了Cubemap的路径信息,方便有需要时(譬如CubeMap资源有修改时)重新执行天光球谐系数的预计算。对于TOD场景,TOD配置里的4个标志时间点的Cubemap也是记录的FSoftPathPtr路径,预计算天光球谐系数时将在代码里显式加载Cubemap,Cubemap不会被带到游戏包也就不会在游戏运行时占用终端内存。
步骤808,编辑器根据天光照明组件指定的Cubemap计算天光球谐系数;
对于无昼夜变化的场景,编辑器只需要根据天光照明组件指定的CubeMap计算得到一组天光球谐系数即可。
步骤809,编辑器清空天光照明组件的Cubemap,仅记录保存Cubemap的路径;
在一个实施例中,最终的天光照明组件不直接关联CubeMap,仅保存CubeMap的存储路径(如FSoftPathPtr路径)。天光照明组件不直接关联Cubemap使得游戏运行过程中不会将Cubemap加载进终端内存,并且,游戏打包时也可以忽略Cubemap。保存Cubemap的存储路径记录了Cubemap的路径信息,方便有需要时(譬如CubeMap资源有修改时)重新执行天光球谐系数的预计算。对于TOD场景,TOD配置里的4个标志时间点的Cubemap也是记录的FSoftPathPtr路径,预计算天光球谐系数时将在代码里显式加载Cubemap,Cubemap不会被带到游戏包也就不会在游戏运行时占用终端内存。
步骤810,编辑器将天光照明组件的Mobility属性设置为Static;
执行完步骤810之后,此时输出结果包括Mobility属性设置为Static的天光照明组件,天光照明组件不关联加载任何的Cubemap资源,天光照明组件含有一组天光球谐系数。天光球谐系数可以直接保存到天光照明组件,借助于UProperty可以方便地实现天光球谐系数的序列化和反序列化。
步骤811,结束。
综上所述,上述实施例具体提供了编辑器对于天光球谐系数的预计算过程,天光球谐系数的预计算降低了运行时的终端性能消耗,提高了物体的渲染速度。
图9示出了本申请一个示例性实施例提供的光照颜色的计算方法的流程图。以该方法由图1所示的客户端运行设备执行进行举例说明,该方法包括如下步骤。
步骤901,运行时无需使用GPU计算天光球谐系数。只存在一组天光球谐系数时直接传给GPU;存在TOD的四组天光球谐系数时根据TOD时间取相邻时段的天光球谐系数插值后传给GPU;
客户端运行时完全不需要通过GPU计算天光球谐系数。对于非TOD场景,直接将唯一的1组天光球谐系数传给GPU;对于TOD场景,根据TOD时间,取前后临近的两个标志时间点的天光球谐系数进行插值,将插值后的结果传给GPU,插值可以用简单的线性插值实现,为了方便调节效果,可以提供一个曲线方便根据TOD时间自定义插值系数。
步骤902,GPU根据天光球谐系数和法线进行天光漫反射颜色的计算。
在一个实施例中,GPU根据天光球谐系数和法线计算天光漫反射颜色。为了方便GPU并行运算,一组天光球谐系数的27个球谐系数实际上作为7个vector4参与运算。
综上所述,在客户端的运行过程中,GPU将根据预存的天光球谐系数,计算得到虚拟环境中的物体的天光漫反射颜色,其中,天光球谐系数是根据光环境贴图预计算得到的。即本申请将避免在运行过程中执行天光球谐系数的计算,渲染画面时将直接向GPU传输天光球谐系数,由GPU计算并渲染天光漫反射颜色。本申请释放了原先用于计算天光球谐系数的计算资源,降低了运行时的终端性能消耗。并且,运行过程中实时渲染画面对终端的处理速度要求较高,本申请直接利用预存的天光球谐系数也提高了虚拟环境中物体的渲染速度,避免了因渲染速度较慢导致的画面卡顿、清晰度差等现象。
图10示出了本申请一个示例性实施例提供的光照颜色的计算装置,该装置包括如下模块:
运行模块1001,用于运行支持虚拟环境的客户端;
获取模块1002,用于在客户端的运行过程中,获取客户端内预存的天光球谐系数,天光球谐系数是根据光环境贴图预计算得到的,光环境贴图用于描述虚拟环境中的光照环境;
计算模块1003,用于根据天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个可选的实施例中,虚拟环境中的光照随时间发生变化。获取模块1002,还用于在客户端的运行过程中,获取多组天光球谐系数,多组天光球谐系数是根据多张光环境贴图预先计算得到的,多组天光球谐系数与多张光环境贴图一一对应,多张光环境贴图与虚拟环境中的多个标记时间点一一对应。计算模块1003,还用于根据虚拟环境的实时时间对多组天光球谐系数中的至少两组天光球谐系数进行插值,计算得到目标组天光球谐系数;根据目标组天光球谐系数计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个可选的实施例中,计算模块1003,还用于根据虚拟环境的实时时间,确定与实时时间相邻的两个标记时间点;根据实时时间与两个标记时间点的时间距离,计算得到插值系数;根据插值系数,对两个标记时间点对应的两组天光球谐系数进行插值计算,得到目标组天光球谐系数。
在一个可选的实施例中,计算模块1003,还用于根据虚拟环境的实时时间,确定与实时时间相邻的两个标记时间点;根据实时时间,结合预配置的插值曲线,映射得到插值系数;根据插值系数,对两个标记时间点对应的两组天光球谐系数进行插值计算,得到目标组天光球谐系数。
在一个可选的实施例中,虚拟环境中的光照不随时间发生变化。获取模块1002,还用于在客户端的运行过程中,获取单组天光球谐系数,单组天光球谐系数是根据单张光环境贴图预先计算得到的。计算模块1003,还用于在客户端的运行过程中,对于虚拟环境中的一个物体,根据单组天光球谐系数计算天光漫反射颜色。
综上所述,相关技术中对于光照随时间发生变化和不随时间发生变化的两种情况,相关技术均是在运行过程中计算天光球谐系数的。通过预计算天光球谐系数,本申请可以避免在运行过程中进行天光球谐系数,进而降低运行过程中的性能消耗。并且,预计算天光球谐系数,使得运行过程中无需加载光环境贴图,释放了节省了运行终端的内存,以及释放了安装包文件的数据包空间。
图11示出了本申请一个示例性实施例提供的光照颜色的计算装置,该装置包括如下模块。
获取模块1101,用于获取光环境贴图,光环境贴图用于描述虚拟环境中的光照环境;
计算模块1102,用于根据光环境贴图,预先计算得到天光球谐系数;
处理模块1103,用于将天光球谐系数存储至客户端的安装包文件,客户端支持虚拟环境,天光球谐系数用于在客户端的运行过程中计算虚拟环境中至少一个物体的天光漫反射颜色。
在一个可选的实施例中,虚拟环境中的光照随时间发生变化。获取模块1101,还用于获取多张光环境贴图,多张光环境贴图与虚拟环境的多个标记时间点一一对应。计算模块1102,还用于根据多张光环境贴图,预先计算得到与多张光环境贴图一一对应的多组天光球谐系数;多组天光球谐系数中的至少两组天光球谐系数用于在客户端的运行过程中根据虚拟环境的实时时间插值计算得到目标组天光球谐系数,目标组天光球谐系数用于计算得到虚拟环境中至少一个物体的天光漫反射颜色。
在一个可选的实施例中,多组天光球谐系数包括与实时时间相邻的两个标记时间点分别对应的两组天光球谐系数,两组天光球谐系数用于在运行过程中根据插值系数插值得到目标组天光球谐系数;其中,插值系数是根据实时时间与两个标记时间点的时间距离计算得到的,或者,插值系数是根据实时时间在预配置的插值曲线中映射得到的。
在一个可选的实施例中,虚拟环境中的光照不随时间发生变化。获取模块1101,还用于获取单张光环境贴图。计算模块1102,还用于根据单张光环境贴图,预计算得到单组天光球谐系数;单组天光球谐系数用于在客户端的运行过程中对于虚拟环境中的物体计算天光漫反射颜色。
在一个可选的实施例中,处理模块1103,还用于将天光球谐系数存储至天光照明组件中,天光照明组件是虚拟环境的光源组件;以及,在天光照明组件中移除光环境贴图;将天光照明组件存储至客户端的安装包文件中。
在一个可选的实施例中,处理模块1103,还用于在天光照明组件中保存光环境贴图的存储路径。
在一个可选的实施例中,装置还包括设置模块1104,设置模块1104用于将天光照明组件设置为运行时计算天光球谐系数,天光照明组件是虚拟环境的光源组件。将天光照明组件设置为运行时不计算天光球谐系数。
综上所述,相关技术中对于光照随时间发生变化和不随时间发生变化的两种情况,相关技术均是在运行过程中计算天光球谐系数的。通过预计算天光球谐系数,本申请可以避免在运行过程中进行天光球谐系数,进而降低运行过程中的性能消耗。并且,预计算天光球谐系数,使得运行过程中无需加载光环境贴图,释放了节省了运行终端的内存,以及释放了安装包文件的数据包空间。
图12示出了本申请一个示例性实施例提供的计算机设备1200的结构框图。该计算机设备1200可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备1200还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,计算机设备1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本申请中方法实施例提供的光照颜色的计算方法。
在一些实施例中,计算机设备1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。示例地,外围设备可以包括:射频电路1204、显示屏1205、摄像头组件1206、音频电路1207和电源1208中的至少一种。
外围设备接口1203可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置在计算机设备1200的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在计算机设备1200的不同表面或呈折叠设计;在另一些实施例中,显示屏1205可以是柔性显示屏,设置在计算机设备1200的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1200的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。
电源1208用于为计算机设备1200中的各个组件进行供电。电源1208可以是交流电、直流电、一次性电池或可充电电池。当电源1208包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备1200还包括有一个或多个传感器1209。该一个或多个传感器1209包括但不限于:加速度传感器1210、陀螺仪传感器1211、压力传感器1212、光学传感器1213以及接近传感器1214。
加速度传感器1210可以检测以计算机设备1200建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1210可以用于检测重力加速度在三个坐标轴上的分量。处理器1201可以根据加速度传感器1210采集的重力加速度信号,控制显示屏1205以横向视图或纵向视图进行用户界面的显示。加速度传感器1210还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1211可以检测计算机设备1200的机体方向及转动角度,陀螺仪传感器1211可以与加速度传感器1210协同采集用户对计算机设备1200的3D动作。处理器1201根据陀螺仪传感器1211采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1212可以设置在计算机设备1200的侧边框和/或显示屏1205的下层。当压力传感器1212设置在计算机设备1200的侧边框时,可以检测用户对计算机设备1200的握持信号,由处理器1201根据压力传感器1212采集的握持信号进行左右手识别或快捷操作。当压力传感器1212设置在显示屏1205的下层时,由处理器1201根据用户对显示屏1205的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器1213用于采集环境光强度。在一个实施例中,处理器1201可以根据光学传感器1213采集的环境光强度,控制显示屏1205的显示亮度。示例地,当环境光强度较高时,调高显示屏1205的显示亮度;当环境光强度较低时,调低显示屏1205的显示亮度。在另一个实施例中,处理器1201还可以根据光学传感器1213采集的环境光强度,动态调整摄像头组件1206的拍摄参数。
接近传感器1214,也称距离传感器,通常设置在计算机设备1200的前面板。接近传感器1214用于采集用户与计算机设备1200的正面之间的距离。在一个实施例中,当接近传感器1214检测到用户与计算机设备1200的正面之间的距离逐渐变小时,由处理器1201控制显示屏1205从亮屏状态切换为息屏状态;当接近传感器1214检测到用户与计算机设备1200的正面之间的距离逐渐变大时,由处理器1201控制显示屏1205从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图12中示出的结构并不构成对计算机设备1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方法实施例提供的光照颜色的计算方法。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例提供的光照颜色的计算方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种光照颜色的计算方法,其特征在于,所述方法包括:
运行支持虚拟环境的客户端;
在所述客户端的运行过程中,获取所述客户端内预存的天光球谐系数,所述天光球谐系数是根据光环境贴图预计算得到的,所述光环境贴图用于描述所述虚拟环境中的光照环境;
根据所述天光球谐系数计算所述虚拟环境中至少一个物体的天光漫反射颜色。
2.根据权利要求1所述的方法,其特征在于,所述虚拟环境中的光照随时间发生变化;
所述在所述客户端的运行过程中,获取所述客户端内预存的天光球谐系数,包括:
在所述客户端的运行过程中,获取多组天光球谐系数,所述多组天光球谐系数是根据多张光环境贴图预先计算得到的,所述多组天光球谐系数与所述多张光环境贴图一一对应,所述多张光环境贴图与所述虚拟环境中的多个标记时间点一一对应;
所述根据所述天光球谐系数计算所述虚拟环境中至少一个物体的天光漫反射颜色,包括:
根据所述虚拟环境的实时时间对所述多组天光球谐系数中的至少两组天光球谐系数进行插值,计算得到目标组天光球谐系数;
根据所述目标组天光球谐系数计算所述虚拟环境中至少一个物体的天光漫反射颜色。
3.根据权利要求2所述的方法,其特征在于,所述根据所述虚拟环境的实时时间对所述多组天光球谐系数中的至少两组天光球谐系数进行插值,计算得到目标组天光球谐系数,包括:
根据所述虚拟环境的实时时间,确定与所述实时时间相邻的两个标记时间点;
根据所述实时时间与所述两个标记时间点的时间距离,计算得到插值系数;
根据所述插值系数,对所述两个标记时间点对应的两组天光球谐系数进行插值计算,得到所述目标组天光球谐系数。
4.根据权利要求2所述的方法,其特征在于,所述根据所述虚拟环境的实时时间对所述多组天光球谐系数中的至少两组天光球谐系数进行插值,计算得到目标组天光球谐系数,包括:
根据所述虚拟环境的实时时间,确定与所述实时时间相邻的两个标记时间点;
根据所述实时时间,结合预配置的插值曲线,映射得到插值系数;
根据所述插值系数,对所述两个标记时间点对应的两组天光球谐系数进行插值计算,得到所述目标组天光球谐系数。
5.根据权利要求1所述的方法,其特征在于,所述虚拟环境中的光照不随时间发生变化;
所述在所述客户端的运行过程中,获取所述客户端内预存的天光球谐系数,包括:
在所述客户端的运行过程中,获取单组天光球谐系数,所述单组天光球谐系数是根据单张光环境贴图预先计算得到的;
所述根据所述天光球谐系数计算所述虚拟环境中至少一个物体的天光漫反射颜色,包括:
在所述客户端的运行过程中,对于所述虚拟环境中的一个物体,根据所述单组天光球谐系数计算天光漫反射颜色。
6.一种光照颜色的计算方法,其特征在于,所述方法包括:
获取光环境贴图,所述光环境贴图用于描述虚拟环境中的光照环境;
根据所述光环境贴图,预先计算得到天光球谐系数;
将所述天光球谐系数存储至客户端的安装包文件,所述客户端支持所述虚拟环境,所述天光球谐系数用于在所述客户端的运行过程中计算所述虚拟环境中至少一个物体的天光漫反射颜色。
7.根据权利要求6所述的方法,其特征在于,所述虚拟环境中的光照随时间发生变化,所述获取光环境贴图,包括:
获取多张光环境贴图,所述多张光环境贴图与所述虚拟环境的多个标记时间点一一对应;
所述根据所述光环境贴图,预先计算得到天光球谐系数,包括:
根据所述多张光环境贴图,预先计算得到与所述多张光环境贴图一一对应的多组天光球谐系数;所述多组天光球谐系数中的至少两组天光球谐系数用于在所述客户端的运行过程中根据所述虚拟环境的实时时间插值计算得到目标组天光球谐系数,所述目标组天光球谐系数用于计算得到所述虚拟环境中至少一个物体的天光漫反射颜色。
8.根据权利要求7所述的方法,其特征在于,
所述多组天光球谐系数包括与所述实时时间相邻的两个标记时间点分别对应的两组天光球谐系数,所述两组天光球谐系数用于在运行过程中根据插值系数插值得到所述目标组天光球谐系数;
其中,所述插值系数是根据所述实时时间与所述两个标记时间点的时间距离计算得到的,或者,所述插值系数是根据所述实时时间在预配置的插值曲线中映射得到的。
9.根据权利要求6所述的方法,其特征在于,所述虚拟环境中的光照不随时间发生变化,所述获取光环境贴图,包括:
获取单张光环境贴图;
所述根据所述光环境贴图,预计算天光球谐系数,包括:
根据所述单张光环境贴图,预计算得到单组天光球谐系数;所述单组天光球谐系数用于在所述客户端的运行过程中对所述虚拟环境中的物体计算天光漫反射颜色。
10.根据权利要求6至9任一所述的方法,其特征在于,所述将所述天光球谐系数存储至客户端的安装包文件,包括:
将所述天光球谐系数存储至天光照明组件中,所述天光照明组件是所述虚拟环境的光源组件;以及,在所述天光照明组件中移除所述光环境贴图;
将所述天光照明组件存储至所述客户端的安装包文件中。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述天光照明组件中保存所述光环境贴图的存储路径。
12.根据权利要求6至9任一所述的方法,其特征在于,所述获取光环境贴图之前,还包括:
将天光照明组件设置为运行时计算所述天光球谐系数,所述天光照明组件是所述虚拟环境的光源组件;
所述根据所述光环境贴图,预计算天光球谐系数之后,还包括:
将所述天光照明组件设置为运行时不计算所述天光球谐系数。
13.一种光照颜色的计算装置,其特征在于,所述装置包括:
运行模块,用于运行支持虚拟环境的客户端;
获取模块,用于在所述客户端的运行过程中,获取所述客户端内预存的天光球谐系数,所述天光球谐系数是根据光环境贴图预计算得到的,所述光环境贴图用于描述所述虚拟环境中的光照环境;
计算模块,用于根据所述天光球谐系数计算所述虚拟环境中至少一个物体的天光漫反射颜色。
14.一种光照颜色的计算装置,其特征在于,所述装置包括:
获取模块,用于获取光环境贴图,所述光环境贴图用于描述虚拟环境中的光照环境;
计算模块,用于根据所述光环境贴图,预先计算得到天光球谐系数;
处理模块,用于将所述天光球谐系数存储至客户端的安装包文件,所述客户端支持所述虚拟环境,所述天光球谐系数用于在所述客户端的运行过程中计算所述虚拟环境中至少一个物体的天光漫反射颜色。
15.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至12任一所述的光照颜色的计算方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至12任一所述的光照颜色的计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310808647.6A CN116524063B (zh) | 2023-07-04 | 2023-07-04 | 光照颜色的计算方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310808647.6A CN116524063B (zh) | 2023-07-04 | 2023-07-04 | 光照颜色的计算方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116524063A true CN116524063A (zh) | 2023-08-01 |
CN116524063B CN116524063B (zh) | 2023-09-22 |
Family
ID=87405011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310808647.6A Active CN116524063B (zh) | 2023-07-04 | 2023-07-04 | 光照颜色的计算方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116524063B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000101830A (ja) * | 1998-09-18 | 2000-04-07 | Fuji Photo Film Co Ltd | 画像変換方法、画像変換装置及び画像変換の手順を記録した記録媒体 |
US20180240276A1 (en) * | 2017-02-23 | 2018-08-23 | Vid Scale, Inc. | Methods and apparatus for personalized virtual reality media interface design |
US20200035038A1 (en) * | 2017-03-24 | 2020-01-30 | Changsha Morale Network Technology Co., Ltd. | An Interactive Implementation Method for Mobile Terminal Display of 3D Model |
US20200074716A1 (en) * | 2018-08-29 | 2020-03-05 | Intel Corporation | Real-time system and method for rendering stereoscopic panoramic images |
CN112907716A (zh) * | 2021-03-19 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 |
US20220207821A1 (en) * | 2020-02-06 | 2022-06-30 | Tencent Technology (Shenzhen) Company Limited | Image rendering method and related apparatus, terminal and storage medium |
CN116310061A (zh) * | 2023-05-18 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法、装置以及存储介质 |
-
2023
- 2023-07-04 CN CN202310808647.6A patent/CN116524063B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000101830A (ja) * | 1998-09-18 | 2000-04-07 | Fuji Photo Film Co Ltd | 画像変換方法、画像変換装置及び画像変換の手順を記録した記録媒体 |
US20180240276A1 (en) * | 2017-02-23 | 2018-08-23 | Vid Scale, Inc. | Methods and apparatus for personalized virtual reality media interface design |
US20200035038A1 (en) * | 2017-03-24 | 2020-01-30 | Changsha Morale Network Technology Co., Ltd. | An Interactive Implementation Method for Mobile Terminal Display of 3D Model |
US20200074716A1 (en) * | 2018-08-29 | 2020-03-05 | Intel Corporation | Real-time system and method for rendering stereoscopic panoramic images |
US20220207821A1 (en) * | 2020-02-06 | 2022-06-30 | Tencent Technology (Shenzhen) Company Limited | Image rendering method and related apparatus, terminal and storage medium |
CN112907716A (zh) * | 2021-03-19 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 |
CN116310061A (zh) * | 2023-05-18 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法、装置以及存储介质 |
Non-Patent Citations (1)
Title |
---|
K、E、N: "3D渲染光照模型总结7:SH 球谐光照", pages 1 - 3, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/405472846> * |
Also Published As
Publication number | Publication date |
---|---|
CN116524063B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109978989B (zh) | 三维人脸模型生成方法、装置、计算机设备及存储介质 | |
CN112263837B (zh) | 虚拟环境中的天气渲染方法、装置、设备及存储介质 | |
CN109993823B (zh) | 阴影渲染方法、装置、终端及存储介质 | |
US11393154B2 (en) | Hair rendering method, device, electronic apparatus, and storage medium | |
CN112933599B (zh) | 三维模型渲染方法、装置、设备及存储介质 | |
CN112870707B (zh) | 虚拟场景中的虚拟物体展示方法、计算机设备及存储介质 | |
CN110992248B (zh) | 唇妆特效的显示方法、装置、设备及存储介质 | |
CN116091676B (zh) | 虚拟对象的面部渲染方法及点云特征提取模型的训练方法 | |
CN112370784B (zh) | 虚拟场景显示方法、装置、设备以及存储介质 | |
CN111932664A (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN112907716B (zh) | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 | |
CN111738914B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
KR102633468B1 (ko) | 핫스팟 맵 표시 방법 및 장치, 그리고 컴퓨터 기기와 판독 가능한 저장 매체 | |
CN112245926A (zh) | 虚拟地形的渲染方法、装置、设备及介质 | |
CN110517346B (zh) | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
CN112206519B (zh) | 实现游戏场景环境变化的方法、装置、存储介质及计算机设备 | |
CN112950753B (zh) | 虚拟植物显示方法、装置、设备及存储介质 | |
CN116524063B (zh) | 光照颜色的计算方法、装置、设备及介质 | |
CN116212374A (zh) | 模型处理方法、装置、计算机设备和存储介质 | |
CN116402931A (zh) | 体积渲染方法、装置、计算机设备和计算机可读存储介质 | |
CN116828207A (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN116935824B (zh) | 音频数据的滤波方法、装置、设备和存储介质 | |
CN113559500B (zh) | 动作数据的生成方法、装置、电子设备及存储介质 | |
CN116993889A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40091129 Country of ref document: HK |