CN117351126A - 虚拟场景中雨雪特效的生成方法、装置及电子设备 - Google Patents
虚拟场景中雨雪特效的生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117351126A CN117351126A CN202311395025.1A CN202311395025A CN117351126A CN 117351126 A CN117351126 A CN 117351126A CN 202311395025 A CN202311395025 A CN 202311395025A CN 117351126 A CN117351126 A CN 117351126A
- Authority
- CN
- China
- Prior art keywords
- mask map
- region
- texture
- target
- mask
- 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
- 230000000694 effects Effects 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000009877 rendering Methods 0.000 claims abstract description 61
- 239000012634 fragment Substances 0.000 claims abstract description 30
- 238000013507 mapping Methods 0.000 claims abstract description 27
- 238000003860 storage Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000005070 sampling Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 28
- 238000007781 pre-processing Methods 0.000 claims description 20
- 238000010606 normalization Methods 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 241000282836 Camelus dromedarius Species 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 235000019640 taste Nutrition 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/60—3D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
-
- 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
-
- 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
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种虚拟场景中雨雪特效的生成方法、装置、电子设备及计算机可读存储介质,涉及图像处理领域。方法包括:在渲染阶段,从内存加载的遮罩贴图集合中确定作为参考遮罩贴图;确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标;对各个片元的纹理坐标进行采样,根据采样结果以及目标虚拟相机的高度,获得各个片元对应的基准高度;若片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染片元对应的冰雪特效。本申请实施例简化了美术工作流,运行时动态加/卸载所需贴图,内存占用低,带宽占用小,适用于不同尺寸的虚拟场景。
Description
技术领域
本申请涉及图像处理技术领域,具体而言,本申请涉及一种虚拟场景中雨雪特效的生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
随着硬件技术和互联网技术的不断发展,在虚拟场景(例如游戏)中,天气系统已然成为标配,其中,雨雪特效是天气系统中用于丰富天气表现的一个重要元素。
当虚拟场景只有纯户外和封闭室内时,只需让场景里的3D雨雪特效随着角色/镜头移动即可,但当有半封闭室内(户外可以看见室内,室内可以看见户外)的情况时,需要美术人员手动制作遮罩贴图用于特效材质,以说明哪些位置可以显示雨雪特效,哪些位置不显示雨雪特效。
相关技术中遮罩贴图无法直接用于大世界场景,对于400m*400m的小场景,美术手动制作一张1024*1024的mask贴图可以覆盖全场景。但对于4km*4km的大世界地图,一张mask贴图就不合适了:即便贴图尺寸扩大到4096*4096,精度依然不够,也耗内存。
发明内容
本申请实施例提供了一种雨雪特效的生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品,可以解决现有技术的上述问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种虚拟场景中雨雪特效的生成方法,该方法包括:
在渲染阶段,从内存加载的遮罩贴图集合中确定与所述虚拟对象当前的位置所在区域的遮罩贴图,作为参考遮罩贴图;
确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据所述各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标;
对各个片元的纹理坐标进行采样,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度;
对于任意一个片元,若所述片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染所述片元对应的冰雪特效;
其中,所述遮罩贴图集合中包括虚拟场景的各个区域的遮罩贴图,每个遮罩贴图包括相应区域的、经归一化处理的深度信息;
所述目标虚拟相机为在所述渲染阶段之前的预处理阶段,采集所述参考遮罩贴图所在区域的深度信息的虚拟相机;
所述预设坐标系为所述虚拟场景对应的三维坐标系。
根据本申请实施例的另一个方面,提供了一种虚拟场景中雨雪特效的生成装置,该装置包括:
贴图筛选模块,用于在渲染阶段,从内存加载的遮罩贴图集合中确定与所述虚拟对象当前的位置所在区域的遮罩贴图,作为参考遮罩贴图;
纹理坐标模块,用于确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据所述各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标;
基准高度确定模块,用于对各个片元的纹理坐标进行采样,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度;
渲染模块,用于对于任意一个片元,若所述片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染所述片元对应的冰雪特效;
其中,所述遮罩贴图集合中包括虚拟场景的各个区域的遮罩贴图,每个遮罩贴图包括相应区域的、经归一化处理的深度信息;
所述目标虚拟相机为在所述渲染阶段之前的预处理阶段,采集所述参考遮罩贴图所在区域的深度信息的虚拟相机;
所述预设坐标系为所述虚拟场景对应的三维坐标系。
作为一种可选的实施方式,装置还包括预处理模块,预处理模块包括:
场景加载模块,用于在所述预处理阶段加载所述虚拟场景;
区域深度采集模块,用于将所述虚拟场景划分为多个区域,采集各个区域的深度信息;
贴图创建模块,用于对每个区域的深度信息进行归一化处理,创建各个区域的遮罩贴图,在每个遮罩贴图中存储相应区域的、经归一化处理的深度信息。
作为一种可选的实施方式,预处理模块还包括:
第一角色创建模块,用于创建各个区域的第一角色,在每个第一角色中存储相应区域的遮罩贴图;
所述贴图筛选模块,包括:
第一角色加载模块,用于根据虚拟对象当前的位置,在内存中加载角色集合,所述角色集合包括所述虚拟对象周围预设范围的各个区域的第一角色;
贴图调用模块,用于从所述角色集合中,确定所述虚拟对象当前的位置所在的区域的目标第一角色,将目标第一角色存储的遮罩贴图,作为参考遮罩贴图。
作为一种可选的实施方式,纹理坐标模块包括:
差值计算子模块,用于对于每个片元,根据所述片元和目标虚拟相机在预设坐标系的水平面的坐标分量的差值;
映射子模块,用于将所述差值映射至预设范围,获得所述纹理坐标。
作为一种可选的实施方式,区域深度采集模块包括:
第二角色添加子模块,用于对于每个区域,在所述区域中添加第二角色,并设置所述区域的拍摄参数,所述第二角色包括场景捕捉组件;
第一纹理创建子模块,用于创建所述区域的第一纹理目标,作为所述场景捕捉组件的渲染纹理;
执行子模块,用于执行所述场景捕捉组件,获得所述区域的深度信息。
作为一种可选的实施方式,贴图创建模块包括:
第二纹理创建子模块,用于对于每个区域,创建所述区域的第二纹理目标,所述第二纹理目标的尺寸为第一纹理目标的2-m,m为正整数;
存储子模块,用于将经归一化处理的深度信息存储至所述第二纹理目标;
贴图存储子模块,用于对于每个区域,生成与所述第二纹理目标同尺寸的遮罩贴图,在所述遮罩贴图存储相应区域的、经归一化处理的深度信息。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行所述计算机程序以实现上述方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
在渲染阶段从内存加载的遮罩贴图集合中确定与所述虚拟对象当前的位置匹配的遮罩贴图,作为参考遮罩贴图,由于本申请是将虚拟场景按照区域进行划分,并只需要确定虚拟对象当前位置匹配的区域的遮罩贴图,相比现有技术需要加载虚拟场景的全量的遮罩贴图,为提升雨雪特效的渲染效率奠定基础,进一步根据雨雪特效的片元和目标虚拟相机的坐标,确定片元的纹理坐标,通过对纹理坐标进行采用,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度,利用片元在预设坐标系的高度和基准高度的差值判断是否渲染片元对应的冰雪特效,实现了自动基于虚拟对象所在的位置来显示雨雪特效,无需人工介入,简化了美术(特效、场景)工作流,运行时动态加/卸载所需Mask贴图,内存占用低,带宽占用小,是适用于各种尺寸的虚拟场景的雨雪特效方案。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的虚拟场景中的雨雪特效生成系统的架构示意图;
图2为本申请实施例提供的一种终端设备的结构示意图;
图3为本申请实施例提供的一种虚拟场景中雨雪特效的生成方法的流程示意图;
图4为本申请实施例提供的一种确定深度信息的原理示意图;
图5为本申请实施例提供的一种确定参考遮罩贴图的流程示意图;
图6为本申请实施例提供的另一种拟场景中雨雪特效的生成方法的流程示意图;
图7为本申请实施例提供的雨雪特效的展示效果示意图;
图8为本申请实施例提供的一种虚拟场景中雨雪特效的生成装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
1)虚幻引擎(Unreal Engine,UE),是一种游戏引擎。
2)虚拟场景:是应用程序在终端设备上运行时显示(或提供)的场景。该场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。
3)虚拟对象:虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,例如在虚拟场景中显示的人物、动物等。该虚拟对象可以是虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
4)编辑器(Editor),是一种集成式的开发环境,可用于创作内容或开发游戏关卡。借助对多用户编辑的支持,美术师、设计师和开发人员可以安全而可靠地同时对同一个虚幻引擎项目进行更改。编辑器渲染阶段的相对概念是游戏渲染阶段。
5)天气系统(Time Of Day,TOD),:在虚拟场景(例如游戏)中常见的动态系统,用于模拟不同天气下的游戏环境和光照变化,例如晴雨天气转换、昼夜更替等。
6)包围盒(BoundingBox),用于表示物体边界的简单几何形状,通常是一个立方体或长方体。
7)遮罩(mask)贴图,通常用于指代二进制图像,用于掩盖或遮罩一个物体或材质的某些部分。例如,可以使用一个遮罩贴图来遮罩一个材质的不透明度,从而只在遮罩区域内显示材质。
8)相机的投影方式主要包括透视投影和正交投影。透视投影是一种仿照人眼视觉的投影方式,它可以让远离相机的物体看起来较小,越接近相机则越大。透视投影常用于需要表现空间深度感的场景,例如摄影、电影、游戏等。正交投影是一种将物体按照固定比例缩放到成像平面上的投影方式,它不会受到物体距离相机的影响,因此在处理需要保持物体尺寸比例的场景时非常有用。
本申请提供的虚拟场景中雨雪特效方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
示例的,参见图1,图1是本申请实施例提供的虚拟场景中的雨雪特效生成系统100的架构示意图,为实现支撑一个丰富虚拟场景中雨雪特效的形态的应用,终端设备400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
在一些实施例中,以电子设备为终端设备为例,本申请实施例提供的虚拟场景中的雨雪特效生成方法可以由终端设备单独实现。例如,当需要在虚拟场景中生成雨雪特效时(例如天气系统控制虚拟场景中的天气从晴天转换到雨天),可以通过图1中示出的终端设备400单独获取客户端410(例如单机版/离线模式的游戏应用)的人机交互界面中显示的虚拟对象(例如虚拟场景中受控于当前用户的游戏角色)的位置,从内存加载的遮罩贴图集合中确定与虚拟对象当前的位置匹配的遮罩贴图,作为参考遮罩贴图;终端设备400确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据所述各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标;终端设备400对各个纹理坐标进行采样,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度;终端设备400对于任意一个片元,若所述片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染该片元对应的冰雪特效。
在另一些实施例中,本申请实施例提供的虚拟场景中的虚拟场景中的雨雪特效生成方法也可以由图1中示出的终端设备400和服务器200协同实现。例如,在终端设备400上运行有客户端410(例如网络版的游戏应用),当需要生成雨雪特效时(例如天气系统控制虚拟场景中的天气从晴天转变为雨天),客户端410通过网络300向服务器200发送虚拟对象当前的位置以及内存加载的遮罩贴图集合,以使得服务器200根据接收到的虚拟对象的位置和遮罩贴图集合确定参考遮罩贴图,接着服务器200确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据所述各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标;终端设备400对各个纹理坐标进行采样,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度,服务器200对于任意一个片元,若所述片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则将该所述片元作为目标片元返回终端设备400,终端设备400调用渲染程序,以使渲染程序绘制目标片元显示出雨雪特效。
在一些实施例中,本申请实施例可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
示例的,图1中示出的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在另一些实施例中,终端设备400或服务器200可以通过运行计算机程序来实现本申请实施例提供的虚拟场景中的雨雪特效生成方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如游戏类的应用程序(对应上文的客户端410);也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序,如嵌入至游戏类的应用程序中的小程序组件,其中,该小程序组件可以由用户控制运行或关闭。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
下面对本申请实施例提供的电子设备的结构进行说明。以本申请实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图2中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图2,图2是本申请实施例提供的终端设备400的结构示意图,图2所示的终端设备400包括:至少一个处理器420、存储器460、至少一个网络接口430和用户接口440。终端设备400中的各个组件通过总线系统450耦合在一起。可理解,总线系统450用于实现这些组件之间的连接通信。总线系统450除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统450。
处理器420可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口440包括使得能够呈现媒体内容的一个或多个输出装置441,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口440还包括一个或多个输入装置442,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器460可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器460可选地包括在物理位置上远离处理器420的一个或多个存储设备。
存储器460包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器460旨在包括任意适合类型的存储器。
在一些实施例中,存储器460能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统461,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块462,用于经由一个或多个(有线或无线)网络接口430到达其他电子设备,示例性的网络接口430包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块463,用于经由一个或多个与用户接口440相关联的输出装置441(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块464,用于对一个或多个来自一个或多个输入装置442之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的虚拟场景中的雨雪特效生成装置可以采用软件方式实现,图2示出了存储在存储器460中的虚拟场景中的雨雪特效生成装置465,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4651、确定模块4652、生成模块4653、分裂模块4654、网格化模块4655、绘制模块4656、归一化模块4657、存储模块4658和预测模块4659,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。需要指出的是,在图2中为了表述方便,一次性示出了上述所有模块,在实际应用中,不排除虚拟场景中的雨雪特效生成装置465中仅包括获取模块4651、确定模块4652、生成模块4653、分裂模块4654、网格化模块4655和绘制模块4656的实施,将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的虚拟场景中的雨雪特效生成装置可以采用硬件方式实现,作为示例,本申请实施例提供的虚拟场景中的雨雪特效生成装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟场景中的虚拟场景中的雨雪特效生成方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
下面将结合本申请实施例上文提供的电子设备的示例性应用和实施,说明本申请实施例提供的虚拟场景中的虚拟场景中的雨雪特效生成方法,如前所述,下文所述的虚拟场景中的虚拟场景中的雨雪特效生成方法可以由终端设备或服务器单独实现,或由终端设备和服务器协同实现,不再重复说明。
本申请实施例中提供了一种虚拟场景中雨雪特效的生成方法,如图3所示,该方法包括:
S101、在渲染阶段,从内存加载的遮罩贴图集合中确定与所述虚拟对象当前的位置所在区域的遮罩贴图,作为参考遮罩贴图。
以虚拟场景为游戏为例,本申请实施例的渲染阶段,是指游戏运行阶段。
下面对游戏中的天气转换过程进行说明。
示例的,天气系统控制游戏中的天气情景从晴天转换为雨天的条件可以是到达设定的天气转换时间,且天气转换时间可以是游戏的策划人员预先设定的,例如假设在游戏中举办了某种对天气情景有特殊要求(例如必须是雨天)的活动,且活动会在某个时间开启,则可以将活动的开启时间确定为天气转换时间,即当到达天气转换时间时,天气系统将控制游戏中的天气从晴天转换为雨天,并开始执行上述的步骤S101。
示例的,天气系统控制游戏中的天气情景从晴天转换为雨天的条件还可以是游戏场景发生了变化,且变化后的游戏场景对应的目标天气为雨天,例如假设游戏中包括了多张不同的地图,且不同的地图可以对应不同的天气,举例来说,假设受控于玩家的虚拟对象当前处于地图A(假设地图A对应的天气为晴天)中,当玩家控制虚拟对象从地图A移动至地图B(假设地图B对应的天气为雨天)时,由于地图B对应的天气为雨天,则可以确定需要在游戏中生成闪电特效,此时可以执行上述的步骤S101。
示例的,天气系统控制游戏中的天气情景从晴天转换为雨天的条件还可以是接收到玩家触发的天气转换指令,且天气转换指令指示的目标天气为雨天,例如在游戏中显示有不同天气分别对应的按钮,当接收到用户针对雨天按钮的点击操作时,天气系统将控制游戏中的天气从晴天转换为雨天,并开始执行上述的步骤S101。
在一些实施例中,当需要在虚拟场景中生成雨雪特效时,可以获取虚拟对象的位置以及内存加载的遮罩贴图集合,遮罩贴图集合中包括虚拟场景的各个区域的遮罩贴图,也即遮罩贴图集合中的每个遮罩贴图对应了虚拟场景中一个区域,所以可以确定虚拟对象的位置所在的区域,将该区域的遮罩贴图作为与所述虚拟对象当前的位置匹配的遮罩贴图,也即参考遮罩贴图。
关卡流(Level Streaming)是一种优化技术,利用它可以让游戏中的地图/关卡(Level)按需加载和卸载,从而提高游戏性能和节省内存。Level Streaming机制允许将大型地图划分为多个子地图/关卡(Sub-levels),每个子地图都可以独立加载和卸载。当玩家进入某个区域时,对应的子地图就会被异步加载到内存中,当玩家控制的虚拟对象离开该区域时,子地图又会被卸载。这种方式可以有效减少每个地图的大小,避免内存占用过高,同时也可以提高游戏的流畅度和加载速度。
由于本申请实施例是将虚拟场景分成了多个区域,一个区域可以为一个关卡,也可以由多个关卡组成,并预先创建各个区域的遮罩贴图,同时,借助Level Streaming机制,只有虚拟对象预设范围内的遮罩贴图才会加载到内存中,也即内存加载的遮罩贴图集合包括虚拟对象的预设范围内的遮罩贴图。
应当理解的是,由于每个遮罩贴图对应了虚拟场景中的一个区域,本申请以一个区域的中心位置在水平面的坐标与虚拟对象在水平面的坐标间的距离视为虚拟对象和该区域的遮罩贴图的距离。
在一些实施例中,本申请实施例还可以根据游戏的剧情进展,将虚拟对象的后续剧情涉及的区域的遮罩贴图加载在内存中。
在渲染时只需要确定与虚拟对象当前位置所在区域的遮罩贴图,相比现有技术仅存在虚拟场景全量的遮罩贴图,本申请减少了加载的遮罩贴图,为提升雨雪特效的渲染效率奠定基础。
需要注意的是,由于浮点数的绝对值越小,精度越高,因此本申请实施例每个遮罩贴图包括相应区域的、经归一化处理的深度信息,通过对深度信息进行归一化处理,使得处理后的深度信息便于存储。
S102、确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据所述各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标。
本申请实施例的预设坐标系为所述虚拟场景对应的三维坐标系,一般地,预设坐标系的X和Y轴构成了水平面,Z轴为竖直方向,深度信息也即Z轴方向的高度信息。
Fragment,在计算机图形学中,"fragment"是一个术语,通常用于描述光栅化过程中的一个阶段。光栅化是将几何图形转换为像素表示的过程。在这个过程中,几何图形被划分为许多小的片元,这些片元被称为"fragment"。每个fragment都包含了它在屏幕上的位置、颜色、纹理坐标等信息。由片元的定义可知,雨雪特效的片元包含了雨雪特效在屏幕上的位置、颜色、坐标等等信息。
UV,在图形渲染中,UV是一种用于纹理映射的二维坐标系。它通常表示在模型顶点上的二维坐标,也称之为纹理坐标,可以让渲染引擎在将纹理贴到模型表面时,精确地确定每个像素应该从纹理图像中获取哪一部分的颜色信息。在三维建模中,UV坐标(纹理坐标)通常需要在建模软件中手动指定,并且在导入渲染引擎时也会被导入。在像素着色器中,可以根据每个顶点的UV坐标和纹理图像进行插值,计算出每个片元的纹理坐标,以便进行纹理采样。
本申请实施例在渲染阶段之前,还包括预处理阶段,以游戏为例,预处理阶段一般是指游戏发布前的制作阶段。本申请实施例在预处理阶段,通过虚拟相机对各个区域的深度信息进行采集,可以理解的是,每个区域的深度信息是指该区域中各个虚拟布景的顶部至虚拟相机在Z轴的距离。
请参见图4,其示例性地示出了采集虚拟场景的深度信息的原理图,如图所示,虚拟场景的坐标系的X-Y平面即为虚拟场景的水平面,Z轴方向为竖直方向,在虚拟场景的空间201中具有多个虚拟布景,例如房屋202、树木等,为了拍摄区域的全景顶视图的深度图,虚拟相机203会放置的比较高,虚拟相机203在坐标系的X和Y轴的分量位于空间201的包围盒在X-Y平面的中心点,Z值取空间201的包围盒的最高处,并添加一定的余量,以图中的虚拟布景——房屋202为例,房屋202的深度信息,即为虚拟相机的Z轴分量和房屋顶部的Z轴分量间的差值204。
需要说明的是,由于深度信息是由虚拟相机以俯视视角拍摄的,所以为了更准确地获得深度信息,本申请针对不同的区域,设置不同的虚拟相机进行采集,每个区域的虚拟相机在水平面的坐标,可以是该区域的中心位置。
本申请实施例根据雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,确定雨雪特效相对于目标虚拟相机的偏移,将该偏移映射至(0,1)的范围,获得片元的纹理坐标。
S103、对各个片元的纹理坐标进行采样,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度。
本申请实施例对片元的纹理坐标进行遮罩纹理(Mask Texture)采样,得到归一化的高度,由于目标虚拟相机的位置足够高,因此将归一化的高度乘以目标虚拟相机的高度(也即目标虚拟相机在预设坐标系的Z轴分量),就获得了片元的基准高度。
S104、对于任意一个片元,若所述片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染所述片元对应的冰雪特效;
本申请实施例针对每个片元,只有在该片元在预设坐标系的高度与该片元的基准高度的差值大于预设阈值,才会渲染该片元对应的冰雪特效,实现了当虚拟对象位于的室内(即头顶有遮挡)没有冰雪特效,而室外有冰雪特效的渲染效果。
在一些实施例中,网格(mesh)由多边形面片构成,将多边形面片的顶点坐标传入顶点着色器,以使顶点着色器根据可编程渲染管线对顶点坐标进行图元装配处理,生成对应的图元。
在一些实施例中,可以首先将各个多边形面片(例如三角形面片)的顶点坐标组成二维数组,并通过应用程序编程接口(API,Application Programming Interface)将二维数组转换成浮点数型的数组传入顶点着色器中,随后顶点着色器可以根据可编程渲染管线对传入的顶点坐标进行图元装配处理(例如可以通过一个4*4的矩阵对传入的顶点坐标进行坐标转换处理),生成对应的多个图元。
进一步将图元传入片元着色器,以使片元着色器对图元进行光栅化处理后生成片元,并按照设定的着色策略对片元的颜色和透明度进行更新处理。
在一些实施例中,在得到图元之后,可以将生成的多个图元依次传入片元着色器中,以使片元着色器将传入的图元转换为像素点,并根据预设的顶点颜色信息,采用线性化的计算方式,计算出每一个像素点的线性化颜色值,从而对像素点进行颜色赋值,即完成了对图片进行光栅化处理生成片元的过程。在生成片元之后,还可以按照设定的着色策略(例如高度越高的片元,颜色明度越暗),也可以对片元的颜色和透明度进行更新处理,从而达到对雨雪特效进行动态展示的效果。
本申请实施例提供的虚拟场景中雨雪特效的生成方法,在渲染阶段从内存加载的遮罩贴图集合中确定与所述虚拟对象当前的位置匹配的遮罩贴图,作为参考遮罩贴图,由于本申请是将虚拟场景按照区域进行划分,并只需要确定虚拟对象当前位置匹配的区域的遮罩贴图,相比现有技术需要加载虚拟场景的全量的遮罩贴图,为提升雨雪特效的渲染效率奠定基础,进一步根据雨雪特效的片元和目标虚拟相机的坐标,确定片元的纹理坐标,通过对纹理坐标进行采用,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度,利用片元在预设坐标系的高度和基准高度的差值判断是否渲染片元对应的冰雪特效,实现了自动基于虚拟对象所在的位置来显示雨雪特效,无需人工介入,简化了美术(特效、场景)工作流,运行时动态加/卸载所需Mask贴图,内存占用低,带宽占用小,是适用于各种尺寸的虚拟场景的雨雪特效方案。
相关技术在处理较小的虚拟场景(例如400m*400m大小),美术人员绘制一张1024*1024大小的遮罩贴图既可以覆盖整个虚拟场景,也即遮罩贴图中每1*1大小的像素点用来展示0.39m*0.39m的虚拟场景,但是对于较大的虚拟场景时,仅绘制一张遮罩贴图就不太合适了,以4km*4km大小的虚拟场景为例,即便将遮罩贴图的尺寸扩大到4096*4096,每1*1大小的像素点用来展示0.97m*0.97m的虚拟场景,不仅精度较低,而且内存渲染4096*4096大小的遮罩贴图,相比渲染1024*1024大小的遮罩贴图所需的算力几乎提升16倍,对内存的占用巨大。而在本申请中,将虚拟场景划分为多个区域,并预选确定每个区域的遮罩贴图,内存仅根据虚拟对象的位置,加载虚拟对象预设范围内的遮罩贴图,显著降低了对内存的占用。
在上述各实施例的基础上,作为一种可选实施例,本申请实施例海报预处理阶段的处理步骤,具体包括:
S201、加载所述虚拟场景;
S202、将所述虚拟场景划分为多个区域,采集各个区域的深度信息;
S203、对每个区域的深度信息进行归一化处理,创建各个区域的遮罩贴图,在每个遮罩贴图中存储相应区域的、经归一化处理的深度信息。
本申请实施例在加载虚拟场景时,可以仅记载含有地面、建筑等主要物件,不需要加载杂物。应当理解的是虚幻引擎包括LOD1~LOD5等多个模型渲染级别,LOD级别越高,则渲染越细腻,效果越好,一般地,从LOD3级别开始会渲染虚拟场景中的小部件,以虚拟建筑为例,LOD3级别会显示门窗、栏杆、百叶窗等等,而LOD2级别则仅会对虚拟建筑的外立面等信息进行渲染,不要求拉近看的细节体积感,只用到几何信息。由于本申请实施例仅需要获得深度信息,所以对于建筑而言,只需要渲染到LOD2级别即可。
本申请对于将虚拟场景划分为多个区域的方式不作具体的限定,例如可以使基于虚拟场景的整体尺寸,按一定的比例确定每个区域的大小,也可以是基于游戏剧情、关卡涉及的虚拟环境的大小,来确定区域的大小。
本申请实施例的深度信息以及归一化后的深度信息均是存储在动态的渲染目标中,其内容想要序列化保存,就需要转换为静态的遮罩贴图,由于导入虚幻引擎的遮罩贴图默认压缩,以保证所有遮罩衣蛾图在虚幻引擎中大小是一样的,以提升加载速度。Mip map又叫做多级渐进贴图纹理映射,作用在游戏的纹理贴图,根据渲染物体距离相机的远近,选用不同大小的纹理贴图,考虑到本申请是对于雨雪进行渲染,一般情况下雨雪并不会随虚拟相机的远近发生变化,因此本申请实施例还会禁掉遮罩贴图的Mip map功能。
需要说明的是,为了方便渲染时动态加/卸载遮罩贴图,本申请实施例利用终端的Level Streaming机制,将Mask贴图关联到各个区域的关卡中,具体而言,分区域拍摄深度图生成Mask贴图时,同步生成各个区域的空关卡,往关卡里添加自定义的第一角色(TDSnowActor),角色(Actor)是游戏世界中的一个基本对象,可以被视为一个可以被放置在场景中的实体。Actor可自定义添加属性,这些属性可序列化保存到关卡里。本申请实施例的第一角色的属性包括遮罩贴图和渲染时需要的一些参数信息。属性(UProperty),在UE里,变量可以被序列化,即可以在运行时或保存到文件时将其值保存下来。序列化是指将一个对象或一组数据转换为一个可存储或可传输的格式,以便将其保存到磁盘或通过网络传输。UE使用序列化来实现保存和加载游戏状态、蓝图、配置文件等功能。当一个类的某个成员变量被定义为UProperty时,它会自动被UE的序列化系统管理。在序列化时,UE会将UProperty变量的值转换为一个二进制格式,并将其写入到磁盘或网络流中。在反序列化时,UE会将二进制数据读取出来,并将其转换回原来的值。
本申请实施例在每个遮罩贴图中存储相应区域的、经归一化处理的深度信息,之后还包括:
创建各个区域的第一角色,在每个第一角色中存储相应区域的遮罩贴图;
所述从内存中加载的遮罩贴图集合中确定与所述虚拟对象当前的位置匹配的遮罩贴图,作为参考遮罩贴图,包括:
根据虚拟对象当前的位置,在内存中加载角色集合,所述角色集合包括所述虚拟对象周围预设范围的各个区域的第一角色;
从所述角色集合中,确定所述虚拟对象当前的位置所在的区域的目标第一角色,将目标第一角色存储的遮罩贴图,作为参考遮罩贴图。
请参见图5,其示例性地示出了本申请实施例确定参考遮罩贴图的流程示意图,如图所示,首先在预处理阶段,首先加载虚拟场景,然后将虚拟场景划分为多个区域,在采集各个区域的深度信息时,同步生成各个区域的空关卡,并在关卡中添加第一角色,第一角色中存储相应区域的遮罩贴图以及渲染时所需的参数;在渲染阶段,实时基于虚拟对象当前的位置,确定虚拟对象周围预设范围内的第一角色,并加载在内存中,对于不处于虚拟对象周围预设范围内的第一角色,则从内存中卸载,进一步,从内存中加载的各个第一角色中确定目标第一角色,目标第一角色是指虚拟对象当前的位置所在的区域的目标第一角色,最后将目标第一角色存储的遮罩贴图,作为参考遮罩贴图。
在上述各实施例的基础上,作为一种可选实施例,根据所述各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标,包括:
S301、对于每个片元,根据所述片元和目标虚拟相机在预设坐标系的水平面的坐标分量的差值;
S302、将所述差值映射至预设范围,获得所述纹理坐标。
以下为本申请实施例的虚拟场景中雨雪特效的生成方法的伪代码:
上述第一段伪代码中,worldPos即片元的坐标,CameraWorldPos即目标虚拟相机的坐标,所以第一段伪代码即表示计算所述片元和目标虚拟相机在预设坐标系的水平面的坐标分量的差值(浮点值),第二端伪代码表示将差值的X轴分量和虚拟相机的视野宽度(CamerWidth)的比值加上0.5,同理对差值的Y轴分量和虚拟相机的视野宽度(CamerWidth)的比值加上0.5,获得纹理坐标,纹理坐标的值位于[0,1.0f]的范围内。第三段伪代码表示通过对遮罩纹理Mask Texture采样,在r通道得到归一化的高度,也即maskTexZ,该值同样为浮点值,第四段及之后的伪代码即计算片元在预设坐标系的高度与对应的基准高度的差值是否大于预设阈值0.01f,若满足该条件,则渲染该片元对应的冰雪特效,否则隐藏该片元对应的冰雪特效。
在一些实施例中,雨雪特效除了深度信息,还可以包括层级信息以及透明度信息等等,对于层级信息以及透明度信息也需要进行归一化处理(例如归一化到0到255的区间),并将归一化后的深度信息、层级信息、以及透明度信息存储至颜色信息的三通道(例如rgb三通道)中,例如可以将深度信息存储至红色(r,red)通道、将层级信息存储至绿色(g,green)通道、将透明度信息存储至蓝色(b,blue)通道,如此,后续在渲染管线的顶点着色器阶段可以使用存储的深度比例信息、层级信息、以及透明度信息来进行雨雪特效的绘制,进一步提高雨雪特效的显示效果。
在上述各实施例的基础上,作为一种可选实施例,采集各个区域的深度信息,包括:
对于每个区域,在所述区域中添加第二角色,并设置所述区域的拍摄参数,所述第二角色包括场景捕捉组件;
S401、创建所述区域的第一纹理目标,作为所述场景捕捉组件的渲染纹理;
S402、执行所述场景捕捉组件,获得所述区域的深度信息。
具体地,本申请实施例放置虚拟相机,其实是向虚拟场景中添加第二角色(ASceneCapture2D Actor),拍摄参数可以包括以下至少一者:
位置:XY值同区域的中心点;Z值取全场景包围盒的最高处并添加一定的裕量;
朝向:垂直向下;
ProjectionType/投影方式:Orthographic,正交投影;
CaptureSource/拍摄源:SCS_SceneDepth,场景深度;
OrthoWidth/视锥体宽度:区域尺寸加上一定的裕量,如GridSize为400m,视锥体宽度两个方向各添加10m的裕量,则最终的视锥体宽度为420m。
创建第一纹理目标,第一纹理目标的类型可以为UTextureRenderTarget2D类型,第一纹理目标作为场景捕捉Scene Capture的目标渲染纹理,然后执行场景捕捉组件的捕捉渲染场景操作,获得区域的深度信息。UTextureRenderTarget2D,用于在运行时生成渲染目标纹理。它允许在不使用屏幕渲染的情况下,将渲染结果直接渲染到纹理中,以便在后续的材质和渲染操作中使用。与常规的纹理不同,UTextureRenderTarget2D可以根据需要动态生成和更新。UTextureRenderTarget2D通常用于实现后期处理效果,如景深、环境光遮蔽等。它还可以用于实现动态的反射纹理,或者作为ShadowMap等高级渲染效果的输入。可以通过蓝图或代码创建和配置UTextureRenderTarget2D,也可以使用它作为材质的输入来创建复杂的渲染效果。
需要注意的是,本申请实施例的第一纹理目标的尺寸可以比遮罩贴图的尺寸更大一些,例如,遮罩贴图的尺寸为1024*1024,第一纹理目标的尺寸问2048*2048。
在上述各实施例的基础上,作为一种可选实施例,创建各个区域的遮罩贴图,在每个遮罩贴图中存储相应区域的、经归一化处理的深度信息,包括:
S501、对于每个区域,创建所述区域的第二纹理目标,所述第二纹理目标的尺寸为第一纹理目标的2-m,m为正整数;
S502、将经归一化处理的深度信息存储至所述第二纹理目标;
S503、对于每个区域,生成与所述第二纹理目标同尺寸的遮罩贴图,在所述遮罩贴图存储相应区域的、经归一化处理的深度信息。
具体实现上,本申请实施例创建的第二纹理目标的尺寸要小于第一纹理目标,并且尺寸可以是第一纹理目标的2-m,m为正整数,例如,第一纹理目标的尺寸如果是2048*2048,则第二纹理目标的尺寸可以是1024*1024,也即为第一纹理目标的1/4大小。
调用终端提供的功能接口UKismetRenderingLibrary::DrawMaterialToRenderTarget,将第一纹理目标中存储的深度信息进行归一化处理,将归一化处理结果写入第二纹理目标。
由于纹理目标为动态纹理,其内容想要序列化保存就需要转成静态的遮罩贴图,具体可以调用功能接口UTextureRenderTarget2D::ConstructTexture2D,根据第二纹理目标的尺寸,生成同尺寸大小的遮罩贴图,在该遮罩贴图中存储相应区域的、经归一化处理的深度信息。
请参见图6,其示例性地示出了本申请另一个实施例提供的虚拟场景中雨雪特效的生成方法的流程示意图,如图所示,包括:
S601、在预处理阶段加载虚拟场景;
S602、对于每个区域,在区域中添加第二角色,并设置区域的拍摄参数,第二角色包括场景捕捉组件;
S603、创建区域的第一纹理目标,作为场景捕捉组件的渲染纹理;
S604、执行场景捕捉组件,获得区域的深度信息;
S605、对每个区域的深度信息进行归一化处理;
S606、对于每个区域,创建区域的第二纹理目标,将经归一化处理的深度信息存储至第二纹理目标;
S607、对于每个区域,生成与第二纹理目标同尺寸的遮罩贴图,在遮罩贴图存储相应区域的、经归一化处理的深度信息;
S608、创建各个区域的第一角色,在每个第一角色中存储相应区域的遮罩贴图;
S609、在渲染阶段,根据虚拟对象当前的位置,在内存中加载角色集合,角色集合包括虚拟对象周围预设范围的各个区域的第一角色;
S610、从角色集合中,确定虚拟对象当前的位置所在的区域的目标第一角色,将目标第一角色存储的遮罩贴图,作为参考遮罩贴图;
S611、确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标;
S612、对于每个片元,根据片元和目标虚拟相机在预设坐标系的水平面的坐标分量的差值,将差值映射至预设范围,获得纹理坐标;
S613、对各个片元的纹理坐标进行采样,根据采样结果以及目标虚拟相机的高度,获得各个片元对应的基准高度;
S614、对于任意一个片元,若片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染片元对应的冰雪特效。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
随着硬件设备的不断发展以及游戏玩家品味的不断上升,天气系统已经成为游戏的标配。而在天气系统中,雨雪天气又是一个重要的情景,怎么真实且高效地表现雨雪效果,对于提升玩家的视觉体验至关重要。
然而,相关技术提供的方案中,一方面制作效率不够高,每次场景变动可能都要求美术修改遮罩贴图,遮罩贴图没有及时手动更新会导致场景雨雪效果不对,拖缓美术场景迭代的速度,另一方面无法直接用于大世界场景。对于400m*400m的小场景,美术手动制作一张1024*1024的mask贴图可以覆盖全场景。但对于4km*4km的大世界地图,一张mask贴图就不合适了:即便贴图尺寸扩大到4096*4096,精度依然不够,也耗内存。
鉴于此,本申请实施例提供了一种虚拟场景中的雨雪特效的生成方法,能够在大世界场景中高效地生成雨雪特效,大世界场景的虚拟场景被分为多个区域,每次只加载虚拟对象当前预设范围的各个区域的遮罩贴图,并且仅将虚拟对象当前位置所在的区域的遮罩贴图作为参考遮罩贴图,为提升渲染效率奠定了基础,满足移动终端的性能需求。
在一些实施例中,游戏的策划人员可以根据需求在天气系统中选择雨天场景,并设置雨量大小变化的时间轴(Timeline),并配置不同雨量下分别对应的雨雪特效。
请参见图7,其示例性地示出了本申请实施例的雨雪特效的展示效果,从图中可以清楚地看出,图7的视角为第三人称视角,虚拟对象701位于虚拟庭院702中,在该视角下,虚拟庭院702内没有雨雪特效,而外部有雨雪特效。
本申请实施例提供了一种虚拟场景中雨雪特效的生成装置,如图8所示,该虚拟场景中雨雪特效的生成装置可以包括:贴图筛选模块801、纹理坐标模块802、基准高度确定模块803以及渲染模块804,其中,
贴图筛选模块801,用于在渲染阶段,从内存加载的遮罩贴图集合中确定与虚拟对象当前的位置所在区域的遮罩贴图,作为参考遮罩贴图;
纹理坐标模块802,用于确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标;
基准高度确定模块803,用于对各个片元的纹理坐标进行采样,根据采样结果以及目标虚拟相机的高度,获得各个片元对应的基准高度;
渲染模块804,用于对于任意一个片元,若片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染片元对应的冰雪特效;
其中,遮罩贴图集合中包括虚拟场景的各个区域的遮罩贴图,每个遮罩贴图包括相应区域的、经归一化处理的深度信息;
目标虚拟相机为在渲染阶段之前的预处理阶段,采集参考遮罩贴图所在区域的深度信息的虚拟相机;
预设坐标系为虚拟场景对应的三维坐标系。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
作为一种可选的实施方式,装置还包括预处理模块,预处理模块包括:
场景加载模块,用于在预处理阶段加载虚拟场景;
区域深度采集模块,用于将虚拟场景划分为多个区域,采集各个区域的深度信息;
贴图创建模块,用于对每个区域的深度信息进行归一化处理,创建各个区域的遮罩贴图,在每个遮罩贴图中存储相应区域的、经归一化处理的深度信息。
作为一种可选的实施方式,预处理模块还包括:
第一角色创建模块,用于创建各个区域的第一角色,在每个第一角色中存储相应区域的遮罩贴图;
贴图筛选模块,包括:
第一角色加载模块,用于根据虚拟对象当前的位置,在内存中加载角色集合,角色集合包括虚拟对象周围预设范围的各个区域的第一角色;
贴图调用模块,用于从角色集合中,确定虚拟对象当前的位置所在的区域的目标第一角色,将目标第一角色存储的遮罩贴图,作为参考遮罩贴图。
作为一种可选的实施方式,纹理坐标模块包括:
差值计算子模块,用于对于每个片元,根据片元和目标虚拟相机在预设坐标系的水平面的坐标分量的差值;
映射子模块,用于将差值映射至预设范围,获得纹理坐标。
作为一种可选的实施方式,区域深度采集模块包括:
第二角色添加子模块,用于对于每个区域,在区域中添加第二角色,并设置区域的拍摄参数,第二角色包括场景捕捉组件;
第一纹理创建子模块,用于创建区域的第一纹理目标,作为场景捕捉组件的渲染纹理;
执行子模块,用于执行场景捕捉组件,获得区域的深度信息。
作为一种可选的实施方式,贴图创建模块包括:
第二纹理创建子模块,用于对于每个区域,创建区域的第二纹理目标,第二纹理目标的尺寸为第一纹理目标的2-m,m为正整数;
存储子模块,用于将经归一化处理的深度信息存储至第二纹理目标;
贴图存储子模块,用于对于每个区域,生成与第二纹理目标同尺寸的遮罩贴图,在遮罩贴图存储相应区域的、经归一化处理的深度信息。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现虚拟场景中雨雪特效的生成方法的步骤,与相关技术相比可实现:在渲染阶段从内存加载的遮罩贴图集合中确定与虚拟对象当前的位置匹配的遮罩贴图,作为参考遮罩贴图,由于本申请是将虚拟场景按照区域进行划分,并只需要确定虚拟对象当前位置匹配的区域的遮罩贴图,相比现有技术需要加载虚拟场景的全量的遮罩贴图,为提升雨雪特效的渲染效率奠定基础,进一步根据雨雪特效的片元和目标虚拟相机的坐标,确定片元的纹理坐标,通过对纹理坐标进行采用,根据采样结果以及目标虚拟相机的高度,获得各个片元对应的基准高度,利用片元在预设坐标系的高度和基准高度的差值判断是否渲染片元对应的冰雪特效,实现了自动基于虚拟对象所在的位置来显示雨雪特效,无需人工介入,简化了美术(特效、场景)工作流,运行时动态加/卸载所需Mask贴图,内存占用低,带宽占用小,是适用于大世界全场景的雨雪特效方案。
在一个可选实施例中提供了一种电子设备,如图9所示,图9所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种虚拟场景中雨雪特效的生成方法,其特征在于,包括:
在渲染阶段,从内存加载的遮罩贴图集合中确定与所述虚拟对象当前的位置所在区域的遮罩贴图,作为参考遮罩贴图;
确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标;
对各个片元的纹理坐标进行采样,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度;
对于任意一个片元,若所述片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染所述片元对应的冰雪特效;
其中,所述遮罩贴图集合中包括虚拟场景的各个区域的遮罩贴图,每个遮罩贴图包括相应区域的、经归一化处理的深度信息;
所述目标虚拟相机为在所述渲染阶段之前的预处理阶段,采集所述参考遮罩贴图所在区域的深度信息的虚拟相机;
所述预设坐标系为所述虚拟场景对应的三维坐标系。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述预处理阶段加载所述虚拟场景;
将所述虚拟场景划分为多个区域,采集各个区域的深度信息;
对每个区域的深度信息进行归一化处理,创建各个区域的遮罩贴图,在每个遮罩贴图中存储相应区域的、经归一化处理的深度信息。
3.根据权利要求2所述的方法,其特征在于,所述在每个遮罩贴图中存储相应区域的、经归一化处理的深度信息,之后还包括:
创建各个区域的第一角色,在每个第一角色中存储相应区域的遮罩贴图;
所述从内存中加载的遮罩贴图集合中确定与所述虚拟对象当前的位置匹配的遮罩贴图,作为参考遮罩贴图,包括:
根据虚拟对象当前的位置,在内存中加载角色集合,所述角色集合包括所述虚拟对象周围预设范围的各个区域的第一角色;
从所述角色集合中,确定所述虚拟对象当前的位置所在的区域的目标第一角色,将目标第一角色存储的遮罩贴图,作为参考遮罩贴图。
4.根据权利要求1所述的方法,其特征在于,所述根据所述各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标,包括:
对于每个片元,根据所述片元和目标虚拟相机在预设坐标系的水平面的坐标分量的差值;
将所述差值映射至预设范围,获得所述纹理坐标。
5.根据权利要求2所述的方法,其特征在于,所述采集各个区域的深度信息,包括:
对于每个区域,在所述区域中添加第二角色,并设置所述区域的拍摄参数,所述第二角色包括场景捕捉组件;
创建所述区域的第一纹理目标,作为所述场景捕捉组件的渲染纹理;
执行所述场景捕捉组件,获得所述区域的深度信息。
6.根据权利要求5所述的方法,其特征在于,所述创建各个区域的遮罩贴图,在每个遮罩贴图中存储相应区域的、经归一化处理的深度信息,包括:
对于每个区域,创建所述区域的第二纹理目标,所述第二纹理目标的尺寸为第一纹理目标的2-m,m为正整数;
将经归一化处理的深度信息存储至所述第二纹理目标;
对于每个区域,生成与所述第二纹理目标同尺寸的遮罩贴图,在所述遮罩贴图存储相应区域的、经归一化处理的深度信息。
7.一种虚拟场景中雨雪特效的生成装置,其特征在于,包括:
贴图筛选模块,用于在渲染阶段,从内存加载的遮罩贴图集合中确定与所述虚拟对象当前的位置所在区域的遮罩贴图,作为参考遮罩贴图;
纹理坐标模块,用于确定当前各个雨雪特效的片元和目标虚拟相机在预设坐标系的坐标,根据各个片元和目标虚拟相机在预设坐标系的坐标,确定各个片元的纹理坐标;
基准高度确定模块,用于对各个片元的纹理坐标进行采样,根据采样结果以及所述目标虚拟相机的高度,获得各个片元对应的基准高度;
渲染模块,用于对于任意一个片元,若所述片元在预设坐标系的高度与对应的基准高度的差值大于预设阈值,则渲染所述片元对应的冰雪特效;
其中,所述遮罩贴图集合中包括虚拟场景的各个区域的遮罩贴图,每个遮罩贴图包括相应区域的、经归一化处理的深度信息;
所述目标虚拟相机为在所述渲染阶段之前的预处理阶段,采集所述参考遮罩贴图所在区域的深度信息的虚拟相机;
所述预设坐标系为所述虚拟场景对应的三维坐标系。
8.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-6任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311395025.1A CN117351126A (zh) | 2023-10-25 | 2023-10-25 | 虚拟场景中雨雪特效的生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311395025.1A CN117351126A (zh) | 2023-10-25 | 2023-10-25 | 虚拟场景中雨雪特效的生成方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117351126A true CN117351126A (zh) | 2024-01-05 |
Family
ID=89355599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311395025.1A Pending CN117351126A (zh) | 2023-10-25 | 2023-10-25 | 虚拟场景中雨雪特效的生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117351126A (zh) |
-
2023
- 2023-10-25 CN CN202311395025.1A patent/CN117351126A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN109771951B (zh) | 游戏地图生成的方法、装置、存储介质和电子设备 | |
MXPA06012368A (es) | Integracion de jerarquia de escena tridimensional en sistema de composicion bidimensional. | |
CN114677467B (zh) | 地形图像渲染方法、装置、设备及计算机可读存储介质 | |
US9183654B2 (en) | Live editing and integrated control of image-based lighting of 3D models | |
KR20080090671A (ko) | 3d 객체 모델에 텍스쳐를 매핑하는 방법 및 장치 | |
CN111429561A (zh) | 一种虚拟仿真渲染引擎 | |
CN109697748A (zh) | 模型压缩处理方法、模型贴图处理方法装置、存储介质 | |
Liarokapis et al. | Mobile augmented reality techniques for geovisualisation | |
WO2023159595A9 (zh) | 构建和配置三维空间场景的模型的方法、装置及计算机程序产品 | |
US11625900B2 (en) | Broker for instancing | |
Trapp et al. | Colonia 3D communication of virtual 3D reconstructions in public spaces | |
CN116243831B (zh) | 一种虚拟云展厅交互方法及系统 | |
JP2003168130A (ja) | リアルタイムで合成シーンのフォトリアルなレンダリングをプレビューするための方法 | |
CN115526976A (zh) | 虚拟场景渲染方法、装置、存储介质和电子设备 | |
CN117351126A (zh) | 虚拟场景中雨雪特效的生成方法、装置及电子设备 | |
WO2018175299A1 (en) | System and method for rendering shadows for a virtual environment | |
US20210241540A1 (en) | Applying Non-Destructive Edits To Nested Instances For Efficient Rendering | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
Giertsen et al. | An open system for 3D visualisation and animation of geographic information | |
WO2024124370A1 (zh) | 一种模型构建方法及装置、存储介质、电子设备 | |
CN113181642B (zh) | 一种具有混合材质的墙体模型的生成方法及装置 | |
Lu Lu | Large Scale Immersive Holograms with Microsoft Hololens | |
CN117745892A (zh) | 粒子生成表现控制方法、装置、存储介质及电子装置 | |
Timokhin et al. | Real-time Modeling of Dynamic Terrain Shadows based on Multilevel Ray Casting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |