CN116993894B - 虚拟画面的生成方法、装置、设备、存储介质及程序产品 - Google Patents

虚拟画面的生成方法、装置、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN116993894B
CN116993894B CN202311164963.0A CN202311164963A CN116993894B CN 116993894 B CN116993894 B CN 116993894B CN 202311164963 A CN202311164963 A CN 202311164963A CN 116993894 B CN116993894 B CN 116993894B
Authority
CN
China
Prior art keywords
target
scene
voxel
virtual
picture
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
Application number
CN202311164963.0A
Other languages
English (en)
Other versions
CN116993894A (zh
Inventor
王贺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311164963.0A priority Critical patent/CN116993894B/zh
Publication of CN116993894A publication Critical patent/CN116993894A/zh
Application granted granted Critical
Publication of CN116993894B publication Critical patent/CN116993894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • G06T15/83Phong shading
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请提供了一种虚拟画面的生成方法、装置、设备、存储介质及程序产品;方法包括:获取目标虚拟场景,目标虚拟场景中包括多个场景体素,场景体素包括多个不同法线方向的体素面;针对各场景体素,从场景体素的各法线方向上,分别对场景体素进行光栅化,得到场景体素的各体素面分别对应的体素面元,体素面元,用于描述场景体素在相应法线方向上的虚拟场景信息;从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元;基于目标体素面元,对目标虚拟场景进行画面着色,得到目标虚拟画面。通过本申请,能够有效提高虚拟画面的生成效率。

Description

虚拟画面的生成方法、装置、设备、存储介质及程序产品
技术领域
本申请涉及计算机技术领域,尤其涉及一种虚拟画面的生成方法、装置、设备、存储介质及程序产品。
背景技术
近年来,随着计算机技术的发展,游戏、影视及虚拟现实等产业呈现出蓬勃发展的趋势,在虚拟场景中布置有虚拟物体、虚拟光源和虚拟相机。虚拟光源用于向位于虚拟场景中的虚拟物体提供照明光,虚拟相机用于按照在虚拟场景中所处的角度采集场景画面,应用程序会根据虚拟光源所提供的照明光,以及虚拟相机所处的角度,对虚拟物体的表面反射光进行计算,从而渲染得到场景画面。
在相关技术中,对于虚拟画面的生成,通常是针对每一帧虚拟画面,单独进行相应场景体素的光栅化,以得到相应的虚拟画面,这样,由于不同的虚拟画面之间可能存在场景体素的重叠,因此,单独针对每帧虚拟画面进行场景体素的光栅化,导致不同帧之间重复的场景体素反复执行相同的处理,造成处理资源的浪费,导致虚拟画面的生成效率较低。
发明内容
本申请实施例提供一种虚拟画面的生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够有效提高虚拟画面的生成效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟画面的生成方法,包括:
获取目标虚拟场景,所述目标虚拟场景中包括多个场景体素,所述场景体素包括多个不同法线方向的体素面;
针对各所述场景体素,从所述场景体素的各所述法线方向上,分别对所述场景体素进行光栅化,得到所述场景体素的各所述体素面分别对应的体素面元,所述体素面元,用于描述所述场景体素在相应所述法线方向上的虚拟场景信息;
从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元;
基于所述目标体素面元,对所述目标虚拟场景进行画面着色,得到所述目标虚拟画面。
本申请实施例提供一种虚拟画面的生成装置,包括:
获取模块,用于获取目标虚拟场景,所述目标虚拟场景中包括多个场景体素,所述场景体素包括多个不同法线方向的体素面;
光栅化模块,用于针对各所述场景体素,从所述场景体素的各所述法线方向上,分别对所述场景体素进行光栅化,得到所述场景体素的各所述体素面分别对应的体素面元,所述体素面元,用于描述所述场景体素在相应所述法线方向上的虚拟场景信息;
选取模块,用于从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元;
画面着色模块,用于基于所述目标体素面元,对所述目标虚拟场景进行画面着色,得到所述目标虚拟画面。
上述方案中,上述获取模块,还用于获取初始虚拟场景,并对所述初始虚拟场景进行体素化处理,得到包括目标数量的初始场景体素的参考虚拟场景;获取所述参考虚拟场景中的初始虚拟相机的初始相机位置,及各所述初始场景体素在所述参考虚拟场景中的体素位置;确定所述初始相机位置分别与参考虚拟场景中各所述体素位置之间的距离,并基于所述距离,对所述参考虚拟场景中各所述初始场景体素的尺寸进行调整,得到所述目标虚拟场景。
上述方案中,上述获取模块,还用于获取所述初始相机位置与参考虚拟场景中各所述体素位置之间的距离,与所述目标虚拟场景中各场景体素的尺寸之间的映射关系;针对所述参考虚拟场景中的各所述初始场景体素分别执行以下处理,以得到所述目标虚拟场景:基于所述初始相机位置与所述初始场景体素对应的所述体素位置之间的距离、所述映射关系,确定所述初始场景体素的目标尺寸;将所述参考虚拟场景中所述初始场景体素的尺寸,调整为所述目标尺寸,得到所述初始场景体素对应的所述场景体素。
上述方案中,上述目标虚拟场景中包括多个虚拟物体,所述虚拟物体包括多个物体点,上述光栅化模块,还用于从所述目标虚拟场景的多个所述物体点中,确定位于所述场景体素内的至少一个候选物体点;在所述目标虚拟场景中,针对所述场景体素的各所述体素面分别执行以下处理:从所述至少一个候选物体点中,选取至少一个目标物体点,所述目标物体点与所述体素面上各点的连线均不经过其他的所述候选物体点;基于所述目标物体点,对所述场景体素进行光栅化,得到所述体素面对应的体素面元。
上述方案中,上述光栅化模块,还用于当位于所述场景体素内的候选物体点的数量为一个时,将所述候选物体点,确定为所述目标物体点;当位于所述场景体素内的候选物体点的数量为多个时,针对各所述候选物体点分别执行以下处理:当所述候选物体点与所述体素面上各点的连线均不经过其他的所述候选物体点时,将所述候选物体点确定为参考物体点;将距离所述体素面最近的参考物体点,确定为所述目标物体点。
上述方案中,上述选取模块,还用于获取所述目标虚拟场景中的目标虚拟相机的目标相机位置,所述目标虚拟相机,用于在所述目标虚拟场景中采集所述目标虚拟画面的画面信息;在所述目标虚拟场景中,以各所述体素面的中心位置为起点,以所述目标相机位置为终点,生成各所述体素面对应的虚拟检测线;基于所述虚拟检测线,从各所述体素面分别对应的体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
上述方案中,上述选取模块,还用于针对各所述体素面分别对应的体素面元分别执行以下处理:在所述目标虚拟场景中,确定所述体素面对应的虚拟检测线的检测信息;当所述检测信息指示所述体素面对应的虚拟检测线不经过所述目标虚拟场景中的其他体素面时,将所述体素面元确定为所述目标体素面元。
上述方案中,上述虚拟画面的生成装置,还包括:信息获取模块,用于获取所述目标虚拟画面的画面信息,所述画面信息,用于指示所述目标虚拟画面是否为所述目标虚拟场景所对应视频中的首个视频帧;上述选取模块,还用于响应于所述画面信息指示所述目标虚拟画面为所述首个视频帧,从多个所述体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
上述方案中,上述虚拟画面的生成装置,还包括:位置获取模块,用于响应于所述画面信息指示所述目标虚拟画面不是所述首个视频帧,获取所述视频中的参考虚拟画面,所述参考虚拟画面为所述视频中所述目标虚拟画面的前一帧虚拟画面;获取所述目标虚拟场景中的参考虚拟相机的参考相机位置,以及所述目标虚拟场景中的目标虚拟相机的目标相机位置;其中,所述参考虚拟相机,用于在所述目标虚拟场景中采集所述参考虚拟画面的画面信息,所述目标虚拟相机,用于在所述目标虚拟场景中采集所述目标虚拟画面的画面信息;上述选取模块,还用于响应于所述参考相机位置与所述目标相机位置之间的距离大于或等于距离阈值,从多个所述体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
上述方案中,上述虚拟画面的生成装置,还包括:确定模块,用于响应于所述参考相机位置与所述目标相机位置之间的距离小于所述距离阈值,将所述参考虚拟画面确定为所述目标虚拟画面。
上述方案中,上述画面着色模块,还用于通过目标虚拟相机,在所述目标虚拟场景中,采集所述目标虚拟画面的画面信息,并基于所述画面信息,生成所述目标虚拟场景的初始虚拟画面,所述初始虚拟画面的像素点与所述目标虚拟画面的像素点一一对应;针对所述初始虚拟画面中的各像素点分别执行以下处理,以得到所述目标虚拟画面:从目标体素面元的多个所述面元点中,选取与所述像素点相关联的目标面元点,并获取所述目标面元点的光照强度;当所述光照强度的数值不等于零时,获取所述目标面元点的面元颜色值,并基于所述面元颜色值,对所述像素点进行着色处理,得到着色像素点;当所述光照强度的数值等于零时,获取目标颜色值,并将所述像素点的颜色值,设置为所述目标颜色值,得到所述着色像素点,所述目标颜色值与所述面元颜色值不同。
上述方案中,上述画面着色模块,还用于获取所述目标虚拟相机在所述目标虚拟场景中的目标相机位置,并在所述目标虚拟场景中,以所述像素点为起点,以所述目标相机位置为终点,生成所述像素点对应的虚拟检测线;针对各所述面元点,当所述像素点对应的虚拟检测线经过所述面元点时,将所述面元点确定为所述目标面元点。
上述方案中,上述画面着色模块,还用于获取多个光照强度-调整系数索引条目,并从所述多个光照强度-调整系数索引条目中,确定包含所述目标面元点的光照强度的目标索引条目;将所述目标索引条目中的调整系数,确定为所述像素点的目标调整系数;将所述面元颜色值与所述目标调整系数的乘积,确定为参考颜色值,并将所述像素点的颜色值,设置为所述参考颜色值,得到所述着色像素点。
本申请实施例提供一种电子设备,包括:
存储器,用于存储计算机可执行指令或者计算机程序;
处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现本申请实施例提供的虚拟画面的生成方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于引起处理器执行时,实现本申请实施例提供的虚拟画面的生成方法。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的虚拟画面的生成方法。
本申请实施例具有以下有益效果:
通过获取目标虚拟场景,并针对目标虚拟场景中的各场景体素进行光栅化,得到场景体素对应的体素面元,从而得到了目标虚拟场景的全量体素面元,在针对目标虚拟场景的任意一帧目标虚拟画面时,直接从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,以得到目标虚拟画面。如此,即便不同的虚拟画面之间可能存在场景体素的重叠,由于已经确定了目标虚拟场景的全量体素面元,直接从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元即可实现目标虚拟画面的生成,不同画面帧之间重复的场景体素不会反复执行相同的处理过程,从而有效提高了虚拟画面的生成效率。
附图说明
图1是本申请实施例提供的虚拟画面的生成系统的架构示意图;
图2是本申请实施例提供的用于生成虚拟画面的电子设备的结构示意图;
图3是本申请实施例提供的虚拟画面的生成方法的步骤101至步骤104的流程示意图;
图4是本申请实施例提供的虚拟画面的生成方法的步骤1011至步骤1013的流程示意图;
图5是本申请实施例提供的虚拟画面的生成方法的初始场景体素的原理示意图;
图6是本申请实施例提供的虚拟画面的生成方法的步骤1021至步骤1024的流程示意图;
图7是本申请实施例提供的虚拟画面的生成方法的候选物体点的原理示意图;
图8是本申请实施例提供的虚拟画面的生成方法的步骤1031A至步骤1033A的流程示意图;
图9是本申请实施例提供的虚拟画面的生成方法的步骤1031B的流程示意图;
图10是本申请实施例提供的虚拟画面的生成方法的步骤1031C的流程示意图;
图11是本申请实施例提供的虚拟画面的生成方法的步骤1041至步骤1045的流程示意图;
图12是本申请实施例提供的虚拟画面的生成方法的场景体素的原理示意图;
图13是本申请实施例提供的虚拟画面的生成方法的体素化处理的原理示意图;
图14是本申请实施例提供的虚拟画面的生成方法的面元的原理示意图;
图15是相关技术中的虚拟画面的效果示意图;
图16是本申请实施例提供的第一虚拟画面的效果示意图;
图17是本申请实施例提供的第二虚拟画面的效果示意图;
图18是相关技术中的面元光照缓存的效果示意图;
图19是本申请实施例提供的面元光照缓存的效果示意图。
实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)顶点着色器(Vertex Shader):是计算机图形学中的一个程序,用于对输入的顶点数据进行处理和变换。顶点着色器通常是在GPU上执行的,它可以对每个输入的顶点进行计算,并输出变换后的顶点数据。在渲染三维图形时,顶点着色器通常是渲染管线中的第一个阶段。它的主要作用是将输入的顶点数据进行变换,以便将其投影到屏幕上。顶点着色器可以执行各种变换操作,例如平移、旋转、缩放、投影等,以便将顶点从模型空间转换到世界空间、相机空间和屏幕空间。除了变换操作,顶点着色器还可以执行其他的计算操作,例如法线计算、纹理坐标计算、光照计算等。这些计算可以在顶点着色器中进行,以便在后续的渲染阶段中使用。
2)渲染(Render):是最终使图像符合的3D场景的阶段,也有的把它称为着色,但一般把Shade称为着色,把Render称为渲染,因为Render和Shade这两个词在三维软件中是截然不同的两个概念,虽然它们的功能很相似,但却有不同。Shade是一种显示方案,一般出现在三维软件的主要窗口中,和三维模型的线框图一样起到辅助观察模型的作用。很明显,着色模式比线框模式更容易让理解模型的结构,但它只是简单的显示而已,数字图像中把它称为明暗着色法。在像Maya这样的高级三维软件中,还可以用Shade显示出简单的灯光效果、阴影效果和表面纹理效果,当然,高质量的着色效果是需要专业三维图形显示卡来支持的,它可以加速和优化三维图形的显示。但无论怎样优化,它都无法把显示出来的三维图形变成高质量的图像,这是因为Shade采用的是一种实时显示技术,硬件的速度限制它无法实时地反馈出场景中的反射、折射等光线效果。而现实工作中往往要把模型或者场景输出成图像文件、视频信号或者电影胶片,这就必须经过Render程序。图形学中的渲染过程基本上可以分解为两个主要任务:可见性和着色处理。光栅化可以说是一种解决可见性问题的方法。可见性包括能够分辨三维物体的哪些部分对摄像机是可见的。这些物体的某些部分可以被禁止,因为它们要么在摄像机的可见区域之外,要么被其他物体隐藏。
3)像素:像素是指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。可以将像素视为整个图像中不可分割的单位或者是元素。不可分割的意思是它不能够再切割成更小单位抑或是元素,它是以一个单一颜色的小格存在。每一个点阵图像包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。
4)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
5)虚拟场景:是应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。
6)体素:体素是体积元素(Volume Pixel)的简称,包含体素的立体可以通过立体渲染或者提取给定阈值轮廓的多边形等值面表现出来。一如其名,是数字数据于三维空间分割上的最小单位,体素用于三维成像、科学数据与医学影像等领域。概念上类似二维空间的最小单位——像素,像素用在二维计算机图像的影像数据上。
7)相机模型:用来描述将三维世界坐标系中的坐标点映射到二维图像平面的过程,是实现三维空间点和二维平面点连接的纽带。相机模型至少包括:针孔相机模型、鱼眼相机模型。以针孔相机模型为例进行说明,针孔相机模型中存在四个坐标系:三维世界坐标系、三维相机坐标系、二维图像物理坐标系及二维图像像素坐标系。
8)虚拟物体:是指在虚拟场景中运动或者静止的物体,运动的虚拟物体包括虚拟场景中的动物、车辆以及人物等。静止的虚拟物体包括虚拟场景中的墙壁、石块以及地面等。
9)虚拟光线:是指由用于照亮虚拟场景的虚拟光源发出的虚拟场景中的光线,虚拟光线包括直接光线和间接光线,其中,直接光线是由虚拟光源发出,经虚拟光照点被反射至虚拟相机的虚拟光线,间接光线是由虚拟光源发出,经至少一次反射后,至虚拟光照点,最后经虚拟光照点被反射至虚拟相机的虚拟光线。
10)虚拟相机:是计算机动画软件或虚拟引擎中架设的“摄影机”,虚拟相机在动画制时对于表现视点的作用,相当于传统意义上的摄影机,虚拟相机与拍摄的物理相机的拍摄对象完全不同,但是功能却极其相似,物理相机所拍摄的是实景人物或实际搭建好的场景,虚拟相机拍摄的是建立在三维软件中的模型,可以实现无限的可能性,虚拟相机在虚拟引擎中通过图标的形式呈现,同样具有镜头、焦距、焦点、光圈、景深这些参数,可以实现“推、拉、摇、移、跟、甩、升、降、综合运动”等相机动作,可以实现物理相机难于实现甚至无法实现的拍摄效果,比如:穿墙而过、穿越钥匙孔、穿过物体等,物理相机需要调节的参数在分布在物理相机的机身上,需要人工操作。虚拟相机的相机参数是集成在面板上的按钮或数值输入栏,只需操作者输入参数或拖动鼠标,有时候几个关键帧就可以确定虚拟相机的运动路径,物理相机在实际拍摄中,往往需要有稳定器或运动控制系统,即便这样画面的晃动仍然存在。
11)虚拟引擎:虚拟引擎是指一些已经编写好的可编辑计算机虚拟系统或者一些交互式实时图像应用程序的核心组件,这些系统为虚拟场景的设计者提供编写虚拟场景所需的各种工具,其目的在于让设计者能够容易和快速地编写出程序,虚拟引擎包括渲染引擎(渲染引擎包括二维渲染引擎和三维渲染引擎)、物理引擎、碰撞检测引擎、音效引擎、脚本引擎、动画引擎、人工智能引擎、网络引擎和场景管理引擎等。
12)虚拟光源:是计算机动画软件或虚拟引擎中架设的“光源”,虚拟光源在动画制作时对于表现视点的作用,相当于传统意义上的物理光源,虚拟光源与物理光源的照射对象完全不同,但是功能却极其相似,物理光源所照射的是实景人物或实际搭建好的场景,虚拟光源所照射的是建立在三维软件中的模型,可以实现无限的可能性。
13)光栅化(Rasterization):是把顶点数据转换为片元的过程,具有将图转化为一个个栅格组成的图像的作用,特点是每个元素对应帧缓冲区中的一像素。光栅化就是把顶点数据转换为片元的过程。片元中的每一个元素对应于帧缓冲区中的一个像素。光栅化其实是一种将几何图元变为二维图像的过程。该过程包含了两部分的工作。第一部分工作:决定窗口坐标中的哪些整型栅格区域被基本图元占用;第二部分工作:分配一个颜色值和一个深度值到各个区域。光栅化过程产生的是片元。把物体的数学描述以及与物体相关的颜色信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色,这个过程称为光栅化。
14)面元:是用于描述物体表面的小平面,即用于描述物体表面的最小单位,其具有一定面积,且对应存储有物体表面的信息,所存储的表面信息也可以称为面元参数,面元参数具体可包括面元的位置、半径、法线和反照率等。
15)像素着色器:像素着色器(Pixel Shader)是计算机图形学中的一个程序,用于对渲染管线中的每个像素进行处理和着色。像素着色器通常是在GPU上执行的,它可以对每个像素进行计算,并输出最终的颜色值。在渲染三维图形时,像素着色器通常是渲染管线中的最后一个阶段。它的主要作用是根据输入的纹理、光照、材质等信息,计算出每个像素的最终颜色值。像素着色器可以执行各种计算操作,例如纹理采样、光照计算、阴影计算、透明度计算等,以便生成最终的图像。
16)体素化处理(Scene Voxelization):是一种用于实现高效的场景渲染和光照计算的技术。它通过将场景中的物体和几何形状转换为体素(Voxel)表示,以便在体素空间中进行渲染和计算。体素化处理的基本思想是将场景中的物体和几何形状转换为体素表示,以便在体素空间中进行渲染和计算。在体素空间中,可以使用体素网格(Voxel Grid)来表示场景中的物体和几何形状。体素网格是一个三维网格,每个网格单元表示一个体素,可以存储物体的位置、颜色、法线等信息。
在本申请实施例的实施过程中,申请人发现相关技术存在以下问题:
在相关技术中,对于虚拟画面的生成,通常是针对每一帧虚拟画面,单独进行相应场景体素的光栅化,以得到相应的虚拟画面,这样,由于不同的虚拟画面之间可能存在场景体素的重叠,因此,单独针对每帧虚拟画面进行场景体素的光栅化,导致不同帧之间重复的场景体素反复执行相同的处理,造成处理资源的浪费,导致虚拟画面的生成效率较低。
本申请实施例提供一种虚拟画面的生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够有效提高虚拟画面的生成效率,下面说明本申请实施例提供的虚拟画面的生成系统的示例性应用。
参见图1,图1是本申请实施例提供的虚拟画面的生成系统100的架构示意图,终端(示例性示出了终端400)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400用于供用户使用客户端410,在图形界面410-1(示例性示出了图形界面410-1)显示目标虚拟画面。终端400和服务器200通过有线或者无线网络相互连接。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表、车载终端等,但并不局限于此。本申请实施例提供的电子设备可以实施为终端,也可以实施为服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在一些实施例中,服务器200获取目标虚拟场景,并针对各场景体素,从场景体素的各法线方向上,分别对场景体素进行光栅化,得到场景体素的各体素面分别对应的体素面元,从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,并将目标体素面元发送至终端400,终端400基于目标体素面元,对目标虚拟场景进行画面着色,得到目标虚拟画面。
在另一些实施例中,服务器200获取目标虚拟场景,并针对各场景体素,从场景体素的各法线方向上,分别对场景体素进行光栅化,得到场景体素的各体素面分别对应的体素面元,从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,基于目标体素面元,对目标虚拟场景进行画面着色,得到目标虚拟画面,并将目标虚拟画面发送至终端400。
在另一些实施例中,本申请实施例可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
参见图2,图2是本申请实施例提供的用于生成虚拟画面的电子设备500的结构示意图,其中,图2所示出的电子设备500可以是图1中的服务器200或者终端400,图2所示的电子设备500包括:至少一个处理器430、存储器450、至少一个网络接口420。电子设备500中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器430可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器430的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi,Wireless Fidelity)、和通用串行总线(USB,Universal Serial Bus)等。
在一些实施例中,本申请实施例提供的虚拟画面的生成装置可以采用软件方式实现,图2示出了存储在存储器450中的虚拟画面的生成装置455,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4551、光栅化模块4552、选取模块4553、画面着色模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的虚拟画面的生成装置可以采用硬件方式实现,作为示例,本申请实施例提供的虚拟画面的生成装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟画面的生成方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,ApplicationSpecific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable LogicDevice)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在一些实施例中,终端或服务器可以通过运行计算机程序或计算机可执行指令来实现本申请实施例提供的虚拟画面的生成方法。举例来说,计算机程序可以是操作系统中的原生程序(例如,专用的画面生成程序)或软件模块,例如,可以嵌入到任意程序(如即时通信客户端、相册程序、电子地图客户端、导航客户端)中的画面生成模块;例如可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
将结合本申请实施例提供的服务器或终端的示例性应用和实施,说明本申请实施例提供的虚拟画面的生成方法。
参见图3,图3是本申请实施例提供的虚拟画面的生成方法的步骤101至步骤104的流程示意图,将结合图3示出的步骤101至步骤104进行说明,本申请实施例提供的虚拟画面的生成方法可以由服务器或终端单独实施,或者由服务器及终端协同实施,下面将以服务器单独实施为例进行说明。
在步骤101中,获取目标虚拟场景。
在一些实施例中,目标虚拟场景中包括多个场景体素,场景体素包括多个不同法线方向的体素面。
在一些实施例中,场景体素是目标虚拟场景在三维空间分割上的最小单位,场景体素是目标虚拟场景的体积元素,场景体素是由多个体素面包围而成的体积元素,体素面是指场景体素的表面上具有相同法线方向的体素点组成的区域,场景体素包括多个不同法线方向的体素面。
在一些实施例中,虚拟场景是应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。
作为示例,目标虚拟场景中包括多个正方体形状的场景体素,正方体形状的场景体素包括六个不同法线方向的体素面,在正方体形状的场景体素中相邻的两个体素面对应的法线方向垂直。
在一些实施例中,参见图4,图4是本申请实施例提供的虚拟画面的生成方法的步骤1011至步骤1013的流程示意图,图3所示出的步骤101可以通过图4所示出的步骤1011至步骤1013实现。
在步骤1011中,获取初始虚拟场景,并对初始虚拟场景进行体素化处理,得到包括目标数量的初始场景体素的参考虚拟场景。
在一些实施例中,体素化处理是一种用于实现高效的场景渲染和光照计算的技术。它通过将场景中的物体和几何形状转换为体素(Voxel)表示,以便在体素空间中进行渲染和计算。体素化处理的基本思想是将场景中的物体和几何形状转换为体素表示,以便在体素空间中进行渲染和计算。在体素空间中,可以使用体素网格(Voxel Grid)来表示场景中的物体和几何形状。体素网格是一个三维网格,每个网格单元表示一个体素,可以存储物体的位置、颜色、法线等信息。
在一些实施例中,初始场景体素是参考虚拟场景在场景空间分割上的最小单位,初始场景体素是参考虚拟场景的体积元素,初始场景体素是由多个体素面包围而成的体积元素,体素面是指初始场景体素的表面上具有相同法线方向的体素点组成的区域,初始场景体素包括多个不同法线方向的体素面。
在一些实施例中,参考虚拟场景是包括目标数量的初始场景体素的初始虚拟场景,参考虚拟场景是体素划分后的初始虚拟场景,初始虚拟场景和参考虚拟场景中的场景内容完全相同,参考虚拟场景中包括目标数量的初始场景体素,初始虚拟场景和参考虚拟场景的区别在于,参考虚拟场景中存在目标数量的初始场景体素,初始虚拟场景中不存在目标数量的初始场景体素,例如,当初始虚拟场景为虚拟场景R时,将初始虚拟场景划分为初始场景体素R1和初始场景体素R2,得到包括初始场景体素R1和初始场景体素R2的参考场景体素。
在一些实施例中,上述对初始虚拟场景进行体素化处理,得到包括目标数量的初始场景体素的参考虚拟场景,可以通过如下方式实现:获取预设的目标数量,将初始虚拟场景划分为目标数量的初始场景体素,得到包括目标数量的初始场景体素的参考虚拟场景。
在一些实施例中,上述将初始虚拟场景划分为目标数量的初始场景体素,得到包括目标数量的初始场景体素的参考虚拟场景,可以通过如下方式实现:获取初始虚拟场景的场景尺寸,将场景尺寸除以目标数量,得到初始场景体素的尺寸,将初始虚拟场景划分为目标数量的,且具有相应尺寸的初始场景体素,得到包括目标数量的初始场景体素的参考虚拟场景,参考虚拟场景中各初始场景体素的尺寸相同。
作为示例,参考虚拟场景中包括多个初始场景体素,例如,初始场景体素A、初始场景体素B及初始场景体素C,那么初始场景体素A、初始场景体素B及初始场景体素C构成整个参考虚拟场景。
在一些实施例中,参考虚拟场景中的各初始场景体素的初始尺寸可以相同也可以不同,各初始场景体素分别在参考虚拟场景中对应的场景空间不同,且各初始场景体素分别在参考虚拟场景中对应的场景空间之间不重叠,从而使得不同的初始场景体素之间不会对参考虚拟场景的相同场景内容进行重复表达,在后续针对每个初始场景体素进行处理之后,就可以实现对整个参考虚拟场景进行处理的目的,不会造成对相同场景内容的重复处理,从而可以有效提高参考虚拟场景的处理性能。
在一些实施例中,上述场景空间是指三维的虚拟场景在虚拟引擎的世界空间中的三维空间,上述世界空间中可以容纳至少一个虚拟场景的场景空间,也即世界空间包括至少一个场景空间,由于参考虚拟场景中包括多个初始场景体素,那个参考虚拟场景的场景空间包括各初始场景体素分别在参考虚拟场景中对应的场景空间。
在步骤1012中,获取参考虚拟场景中的初始虚拟相机的初始相机位置,及各初始场景体素在参考虚拟场景中的体素位置;确定初始相机位置分别与参考虚拟场景中各体素位置之间的距离。
在一些实施例中,参考虚拟场景中的初始虚拟相机,用于在参考虚拟场景中的初始相机位置处对参考虚拟场景进行画面信息采集,初始相机位置是指参考虚拟场景中的初始虚拟相机在参考虚拟场景中的场景位置。
作为示例,上述初始相机位置和体素位置之间的距离的表达式可以为:
(1)
其中,用于指示初始相机位置和体素位置之间的距离,/>用于指示初始相机位置的横坐标,/>用于指示初始相机位置的纵坐标,/>用于指示初始相机位置的竖坐标,用于指示体素位置的横坐标,/>用于指示体素位置的纵坐标,/>用于指示体素位置的竖坐标。
作为示例,参见图5,图5是本申请实施例提供的虚拟画面的生成方法的初始场景体素的原理示意图,如图5所示出的参考虚拟场景中包括多个初始场景体素51(图5中示意性的示出12个),虚拟相机在参考虚拟场景中的相机行驶轨迹上进行运动,以从不同的角度对参考虚拟场景进行虚拟场景的拍摄,相机行驶轨迹上的各轨迹点距离参考虚拟场景的中心位置的距离相等,获取初始虚拟相机在参考虚拟场景中的初始相机位置52,及各初始场景体素51在参考虚拟场景中的体素位置;确定初始相机位置52分别与各体素位置51之间的距离。
在步骤1013中,基于距离,对参考虚拟场景中各初始场景体素的尺寸进行调整,得到目标虚拟场景。
在一些实施例中,调整后的初始场景体素的尺寸与相应的距离正相关,也即,距离越大,对应的调整后的初始场景体素的尺寸越大,距离越小,对应的调整后的初始场景体素的尺寸越小。
在一些实施例中,上述步骤1013可以通过如下方式实现:获取初始相机位置与参考虚拟场景中各体素位置之间的距离,与目标虚拟场景中各场景体素的尺寸之间的映射关系;针对参考虚拟场景中的各初始场景体素分别执行以下处理,以得到目标虚拟场景:基于初始相机位置与初始场景体素对应的各体素位置之间的距离、映射关系,确定初始场景体素的目标尺寸;将参考虚拟场景中初始场景体素的尺寸,调整为目标尺寸,得到初始场景体素对应的场景体素。
在一些实施例中,映射关系中的初始相机位置与参考虚拟场景中各体素位置之间的距离,与各场景体素的尺寸正相关。
在一些实施例中,上述映射关系包括多条索引条目,上述基于初始相机位置与各体素位置之间的距离、映射关系,分别确定目标虚拟场景中各场景体素的尺寸,可以通过如下方式实现:针对各体素位置对应的距离,从映射关系的多条索引条目中,将包括体素位置对应的距离的索引条目,确定为目标索引条目,将目标索引条目中的尺寸,确定为相应的场景体素的尺寸。
如此,通过获取初始虚拟相机在参考虚拟场景中的初始相机位置,及各初始场景体素在参考虚拟场景中的体素位置,确定初始相机位置分别与各体素位置之间的距离,并基于距离,对参考虚拟场景中各初始场景体素的尺寸进行调整,得到目标虚拟场景,由于调整后的初始场景体素的尺寸与相应的距离正相关,从而使得距离初始虚拟相机较远的初始场景体素的尺寸较大,距离初始虚拟相机较近的初始场景体素的尺寸较小,从而使得目标虚拟场景中距离初始虚拟相机越近的场景体素能够更多的涵盖初始虚拟场景的场景信息,使得目标虚拟场景中距离初始虚拟相机越近的场景体素场景精度更高,距离初始虚拟相机越远的场景体素场景精度更低,有效降低了目标虚拟场景的资源占用,使得所得到的目标虚拟场景能够更加符合真实的视觉效果,同时有效提升了目标虚拟场景的资源利用率。
在步骤102中,针对各场景体素,从场景体素的各法线方向上,分别对场景体素进行光栅化,得到场景体素的各体素面分别对应的体素面元。
在一些实施例中,体素面元,用于描述场景体素在相应法线方向上的虚拟场景信息,虚拟场景信息包括场景体素场景面坐标、场景面颜色、场景面法线、场景面转换矩阵等。
作为示例,当场景体素为正方体形状的场景体素时,场景体素包括体素面A、体素面B、体素面C、体素面D、体素面E和体素面F,从场景体素的各法线方向上,分别对场景体素进行光栅化,得到体素面A、体素面B、体素面C、体素面D、体素面E和体素面F分别对应的体素面元。
在一些实施例中,目标虚拟场景中包括多个虚拟物体,虚拟物体包括多个物体点,物体点是指目标虚拟场景中位于虚拟物体上的虚拟场景点。虚拟物体是指在虚拟场景中运动或者静止的物体,运动的虚拟物体包括虚拟场景中的动物、车辆以及人物等。静止的虚拟物体包括虚拟场景中的墙壁、石块以及地面等。
在一些实施例中,参见图6,图6是本申请实施例提供的虚拟画面的生成方法的步骤1021至步骤1024的流程示意图,图3所示出的步骤102可以通过图6所示出的步骤1021至步骤1024实现。
在步骤1021中,从目标虚拟场景的多个物体点中,确定位于场景体素内的至少一个候选物体点。
在一些实施例中,目标虚拟场景中包括多个虚拟物体,虚拟物体包括多个物体点,物体点是指目标虚拟场景中位于虚拟物体上的虚拟场景点,虚拟物体由多个物体点构成。
在一些实施例中,上述步骤1021可以通过如下方式实现:针对目标虚拟场景中的各物体点分别执行以下处理:将物体点的位置和场景体素的位置范围进行比较,得到比较结果,当比较结果指示物体点的位置在场景体素的位置范围内时,将物体点确定为候选物体点。
如此,通过将目标虚拟场景中的各物体点的位置,分别和场景体素的位置范围进行比较,比较结果指示物体点的位置在场景体素的位置范围内时,将物体点确定为位于场景体素内候选物体点,由于位于场景体素内的候选物体点能够指示场景体素内的场景特征,通过确定出位于场景体素内候选物体点,通过候选物体点能够准确反映相应场景体素的场景特征,使得在后续通过候选物体点确定出场景体素的体素面元更加准确。
在一些实施例中,目标虚拟场景中的每个场景体素内均包括至少一个物体点。
在步骤1022中,在目标虚拟场景中,针对场景体素的各体素面分别执行以下步骤1023至步骤1024。
作为示例,当场景体素为正方体形状的场景体素时,场景体素包括体素面A、体素面B、体素面C、体素面D、体素面E和体素面F,针对场景体素的体素面A、体素面B、体素面C、体素面D、体素面E和体素面F分别执行以下步骤1023和步骤1024。
在步骤1023中,从至少一个候选物体点中,选取至少一个目标物体点,目标物体点与体素面上各点的连线均不经过其他的候选物体点。
承接上例,当位于场景体素内的候选物体点包括候选物体点Q1、候选物体点Q2时,针对场景体素的体素面A,从候选物体点Q1、候选物体点Q2中,选取体素面A对应的至少一个目标物体点,在体素面A对应的目标物体点为候选物体点Q1时,候选物体点Q1与体素面上各点的连线均不经过候选物体点Q2,在体素面A对应的目标物体点为候选物体点Q2时,候选物体点Q2与体素面上各点的连线均不经过候选物体点Q1。
在一些实施例中,上述步骤1023可以通过如下方式实现:当位于场景体素内的候选物体点的数量为一个时,将候选物体点,确定为目标物体点;当位于场景体素内的候选物体点的数量为多个时,针对各候选物体点分别执行以下处理:当候选物体点与体素面上各点的连线均不经过其他的候选物体点时,将候选物体点确定为参考物体点;将距离体素面最近的参考物体点,确定为目标物体点。
在一些实施例中,当候选物体点与体素面上各点的连线均不经过其他的候选物体点时,说明场景体素中不存在其他的候选物体点在候选物体点与体素面之间形成遮挡,也即说明参考物体点与体素面之间,不存在其他的候选物体点对参考物体点形成任何角度的遮挡。
在一些实施例中,上述将距离体素面最近的参考物体点,确定为目标物体点,可以通过如下方式实现:当参考物体点的数量为一个时,将参考物体点确定为目标物体点,当参考物体点的数量为多个时,将距离体素面最近的参考物体点,确定为目标物体点。
作为示例,参见图7,图7是本申请实施例提供的虚拟画面的生成方法的候选物体点的原理示意图,位于场景体素内的候选物体点包括候选物体点71、候选物体点72、候选物体点73、候选物体点74以及候选物体点75,当位于场景体素内的候选物体点的数量为多个时,针对各候选物体点分别执行以下处理:当候选物体点71与体素面ABCD上各点的连线均不经过其他的候选物体点时,将候选物体点确定为参考物体点;当候选物体点72与体素面ABCD上各点的连线均不经过其他的候选物体点时,将候选物体点72确定为参考物体点;当候选物体点73与体素面ABCD上各点的连线均不经过其他的候选物体点时,将候选物体点73确定为参考物体点;当候选物体点74与体素面ABCD上各点的连线均不经过其他的候选物体点时,将候选物体点74确定为参考物体点,当候选物体点75与体素面ABCD上各点的连线均不经过其他的候选物体点时,将候选物体点75确定为参考物体点,将距离体素面最近的参考物体点,确定为目标物体点。
如此,在位于场景体素内的候选物体点的数量为多个时,当候选物体点与体素面上各点的连线均不经过其他的候选物体点时,将候选物体点确定为参考物体点,并将距离体素面最近的参考物体点,确定为目标物体点,从而使得所确定的目标物体点为场景体素内距离体素面最近,且无其他的候选物体点遮挡的物体点,从而使得所确定的目标物体点能够准确反映相应体素面的场景特征,使得所确定的体素面元更加准确。
在另一些实施例中,上述步骤1023还可以通过如下方式实现:当位于场景体素内的候选物体点的数量为一个时,将候选物体点,确定为目标物体点;当位于场景体素内的候选物体点的数量为多个时,将距离体素面最近的候选物体点,确定为目标体素点。
如此,在位于场景体素内的候选物体点的数量为多个时,直接将距离体素面最近的物体点,确定为目标物体点,从而使得所确定的目标物体点为场景体素内距离体素面最近,从而效率更高的确定出能够准确反映相应体素面的场景特征的目标物体点,使得所确定的体素面元更加准确。
在步骤1024中,基于目标物体点,对场景体素进行光栅化,得到体素面对应的体素面元。
在一些实施例中,上述步骤1024可以通过如下方式实现:获取目标物体点的顶点数据,顶点数据用于指示目标物体点在目标虚拟场景中的几何图元,对场景体素中目标物体点的顶点数据进行光栅化,得到体素面对应的体素面元。
在一些实施例中,光栅化是把顶点数据转换为片元的过程,具有将图转化为一个个栅格组成的图像的作用,特点是每个元素对应帧缓冲区中的一像素。光栅化就是把顶点数据转换为片元的过程。片元中的每一个元素对应于帧缓冲区中的一个像素。光栅化其实是一种将几何图元变为二维图像的过程。该过程包含了两部分的工作。第一部分工作:决定窗口坐标中的哪些整型栅格区域被基本图元占用;第二部分工作:分配一个颜色值和一个深度值到各个区域。光栅化过程产生的是片元。把物体的数学描述以及与物体相关的颜色信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色,这个过程称为光栅化。
如此,在位于场景体素内的候选物体点的数量为多个时,当候选物体点与体素面上各点的连线均不经过其他的候选物体点时,将候选物体点确定为参考物体点,并将距离体素面最近的参考物体点,确定为目标物体点,从而使得所确定的目标物体点为场景体素内距离体素面最近,且无其他的候选物体点遮挡的物体点,从而使得所确定的目标物体点能够准确反映相应体素面的场景特征,使得所确定的体素面元更加准确。
在步骤103中,从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元。
在一些实施例中,上述与目标虚拟画面相关联的目标体素面元,是指目标虚拟场景中,目标虚拟画面对应的目标虚拟相机能够采集到的体素面元,也即目标体素面元是在目标虚拟相机中可视的体素面元。
在一些实施例中,参见图8,图8是本申请实施例提供的虚拟画面的生成方法的步骤1031A至步骤1033A的流程示意图,图3所示出的步骤103可以通过图8所示出的步骤1031A至步骤1033A实现。
在步骤1031A中,获取目标虚拟场景中的目标虚拟相机的目标相机位置。
在一些实施例中,目标虚拟相机,用于在目标虚拟场景中采集目标虚拟画面的画面信息。
在一些实施例中,目标虚拟相机和初始虚拟相机是指目标虚拟场景中在不同的时间点上可能位于不同虚拟场景位置的虚拟相机。
作为示例,参见图5,获取目标虚拟场景中的目标虚拟相机的目标相机位置54。
在步骤1032A中,在目标虚拟场景中,以各体素面的中心位置为起点,以目标相机位置为终点,生成各体素面对应的虚拟检测线。
在一些实施例中,虚拟检测线的检测信息用于指示体素面对应的虚拟检测线是否经过目标虚拟场景中的其他体素面。
作为示例,参见图5,以体素面55为例,在目标虚拟场景中,以体素面55的中心位置为起点,以目标相机位置54为终点,生成体素面55对应的虚拟检测线。
在步骤1033A中,基于虚拟检测线,从各体素面分别对应的体素面元中,选取与目标虚拟画面相关联的目标体素面元。
在一些实施例中,上述步骤1033A可以针对各体素面分别对应的体素面元分别执行以下处理实现:在目标虚拟场景中,确定体素面对应的虚拟检测线的检测信息;当检测信息指示体素面对应的虚拟检测线不经过目标虚拟场景中的其他体素面时,将体素面元确定为目标体素面元。
在一些实施例中,当检测信息指示体素面对应的虚拟检测线经过目标虚拟场景中的其他体素面时,不将体素面元确定为目标体素面元。
作为示例,参见图5,以体素面55为例,在目标虚拟场景中,确定体素面55对应的虚拟检测线56的检测信息;当检测信息指示体素面55对应的虚拟检测线56不经过目标虚拟场景中的其他体素面时,将体素面元确定为目标体素面元。
如此,在虚拟检测线的检测信息指示体素面对应的虚拟检测线不经过目标虚拟场景中的其他体素面时,说明在目标虚拟场景中目标虚拟相机和体素面之间不存在遮挡物,也即目标虚拟场景中,目标虚拟画面对应的目标虚拟相机能够采集到的体素面元,此时将此体素面元确定为目标体素面元,以便后续基于目标体素面元,对目标虚拟场景进行画面着色,得到目标虚拟画面,从而避免了除目标体素面元以外的体素面元,参与画面着色计算过程,有效提高了画面着色效率。
在一些实施例中,在执行上述步骤103之前,可以执行如下处理:获取目标虚拟画面的画面信息。
在一些实施例中,画面信息,用于指示目标虚拟画面是否为目标虚拟场景所对应视频中的首个视频帧,上述首个视频帧是指目标虚拟场景所对应视频中播放时间最早的视频帧。
在一些实施例中,参见图9,图9是本申请实施例提供的虚拟画面的生成方法的步骤1031B的流程示意图,图3所示出的步骤103可以通过图9所示出的步骤1031B实现。
在步骤1031B中,响应于画面信息指示目标虚拟画面为首个视频帧,从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元。
在一些实施例中,在画面信息指示目标虚拟画面为首个视频帧时,此时由于没有比目标虚拟画面的播放时间更早的视频帧,无法借助于播放时间更早的视频帧进行目标虚拟画面的生成,从而从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,以通过目标体素面元生成目标虚拟画面。
在一些实施例中,在获取目标虚拟画面的画面信息之后,可以执行如下处理:响应于画面信息指示目标虚拟画面不是首个视频帧,获取视频中的参考虚拟画面。获取目标虚拟场景中的参考虚拟相机的参考相机位置,以及目标虚拟场景中的目标虚拟相机的目标相机位置。
在一些实施例中,参考虚拟相机,用于在目标虚拟场景中采集参考虚拟画面的画面信息,目标虚拟相机,用于在目标虚拟场景中采集目标虚拟画面的画面信息。
在一些实施例中,上述目标虚拟相机、初始虚拟相机和参考虚拟相机是指目标虚拟场景中在不同的时间点上位于可能位于不同虚拟场景位置的虚拟相机。
作为示例,参见图5,获取目标虚拟场景中的参考虚拟相机的参考相机位置57,以及目标虚拟场景中的目标虚拟相机的目标相机位置54。
在一些实施例中,参考虚拟画面为视频中目标虚拟画面的前一帧虚拟画面。
作为示例,视频中包括播放时间从早到晚的视频帧A、视频帧B和视频帧C,那么在目标虚拟画面为视频帧B时,对应的参考虚拟画面为视频帧A。
在一些实施例中,参见图10,图10是本申请实施例提供的虚拟画面的生成方法的步骤1031C的流程示意图,图3所示出的步骤103可以通过图10所示出的步骤1031C实现。
在步骤1031C中,响应于参考相机位置与目标相机位置之间的距离大于或等于距离阈值,从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元。
在一些实施例中,在参考相机位置与目标相机位置之间的距离大于或等于距离阈值时,说明参考相机位置和目标相机位置分别对目标虚拟场景的拍摄角度,存在较大偏差,也即参考虚拟相机和目标虚拟相机分别所采集的目标虚拟场景的画面存在较大出入,此时目标虚拟画面无法复用参考虚拟画面,从而可以从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,从而目标体素面元确定相应的目标虚拟画面。
在一些实施例中,在获取参考虚拟相机在目标虚拟场景中的参考相机位置,以及目标虚拟相机在目标虚拟场景中的目标相机位置之后,响应于参考相机位置与目标相机位置之间的距离小于距离阈值,将参考虚拟画面确定为目标虚拟画面。
在一些实施例中,在参考相机位置与目标相机位置之间的距离小于距离阈值时,说明参考相机位置和目标相机位置分别对目标虚拟场景的拍摄角度,存在较小偏差,也即参考虚拟相机和目标虚拟相机分别所采集的目标虚拟场景的画面存在较小的出入,此时目标虚拟画面可以复用参考虚拟画面,从而直接将参考虚拟画面确定为目标虚拟画面。
如此,在画面信息指示目标虚拟画面不是视频的首个视频帧,且参考相机位置与目标相机位置之间的距离小于距离阈值时,此时说明参考相机位置和目标相机位置分别对目标虚拟场景的拍摄角度,存在较小偏差,直接将参考虚拟画面确定为目标虚拟画面,从而实现目标虚拟画面的复用,从而有效节省了生成目标虚拟画面的时长,有效提高了目标虚拟画面的生成效率。
在步骤104中,基于目标体素面元,对目标虚拟场景进行画面着色,得到目标虚拟画面。
在一些实施例中,目标体素面元包括多个面元点,面元点是构成目标体素面元的基本单位。
在一些实施例中,参见图11,图11是本申请实施例提供的虚拟画面的生成方法的步骤1041至步骤1045的流程示意图,图3所示出的步骤104可以通过图11所示出的步骤1041至步骤1045实现。
在步骤1041中,通过目标虚拟相机,在目标虚拟场景中,采集目标虚拟画面的画面信息,并基于画面信息,生成目标虚拟场景的初始虚拟画面。
在一些实施例中,初始虚拟画面的像素点与目标虚拟画面的像素点一一对应。
在一些实施例中,画面信息,用于指示目标虚拟场景中能够被目标虚拟相机所采集的虚拟场景信息,虚拟场景信息包括相应虚拟场景元素的颜色、纹理等。
在一些实施例中,上述画面信息包括与初始虚拟画面的像素点一一对应的子画面信息,上述基于画面信息,生成目标虚拟场景的初始虚拟画面,可以通过如下方式实现:针对各子画面信息,将子画面信息确定为相应像素点的像素信息,将像素点的像素信息进行像素拼接,得到目标虚拟场景的初始虚拟画面。
在一些实施例中,上述像素拼接是指将像素点按照目标虚拟场景中相应的排布规则进行拼接,得到虚拟画面的处理过程,虚拟画面中像素点的排布规则满足目标虚拟场景中相应的排布规则。
在步骤1042中,针对初始虚拟画面中的各像素点分别执行以下步骤1043至步骤1044,以得到目标虚拟画面。
作为示例,初始虚拟画面中包括像素点A、像素点B和像素点C,针对初始虚拟画面中的像素点A、像素点B以及像素点C分别执行以下步骤1043至步骤1044,以得到目标虚拟画面。
在步骤1043中,从目标体素面元的多个面元点中,选取与像素点相关联的目标面元点,并获取目标面元点的光照强度。
在一些实施例中,上述与像素点相关联的目标面元点是指,经过像素点和目标相机位置的连线的面元点,也即目标面元点经目标相机位置的目标虚拟相机的采集,在对象的像素点上成像。
在一些实施例中,上述步骤1043中从目标体素面元的多个面元点中,选取与像素点相关联的目标面元点,可以通过如下方式实现:获取目标虚拟场景中的目标虚拟相机的目标相机位置,并在目标虚拟场景中,以像素点为起点,以目标相机位置为终点,生成像素点对应的虚拟检测线;针对各面元点,当像素点对应的虚拟检测线经过面元点时,将面元点确定为目标面元点。
在一些实施例中,当像素点对应的虚拟检测线不经过面元点时,不将面元点确定为目标面元点。
在一些实施例中,上述虚拟检测线也可以是以像素点为起点,以目标相机位置为终点的线段的延长线。
在步骤1044中,当光照强度的数值不等于零时,获取目标面元点的面元颜色值,并基于面元颜色值,对像素点进行着色处理,得到着色像素点。
在一些实施例中,在光照强度不等于零时,此时说明目标面元点能够在相应像素点上成像,此时可以基于目标面元点的面元颜色值,对像素点进行着色处理,得到着色像素点。
在一些实施例中,上述步骤1044中的基于面元颜色值,对像素点进行着色处理,得到着色像素点,可以通过如下方式实现:获取多个光照强度-调整系数索引条目,并从多个光照强度-调整系数索引条目中,确定包含目标面元点的光照强度的目标索引条目;将目标索引条目中的调整系数,确定为像素点的目标调整系数;将面元颜色值与目标调整系数的乘积,确定为参考颜色值,并将像素点的颜色值,设置为参考颜色值,得到着色像素点。
在一些实施例中,光照强度与调整系数负相关,也即光照强度越大,对应的调整系数越小,从而面元颜色值与目标调整系数的乘积值对应的参考颜色值越小,使得参考颜色值更加明亮,光照强度越小,对应的调整系数越大,从而面元颜色值与目标调整系数的乘积值对应的参考颜色值越大,使得参考颜色值更加灰暗。
如此,通过目标面元点的光照强度和目标调整系数,对面元颜色值进行调整,利用所得到的参考颜色值对像素点进行着色,使得着色像素点所呈现的颜色能够更加准确的反映目标虚拟场景中目标面元点的颜色,有效提高了目标虚拟画面的呈现效果。
在步骤1045中,当光照强度的数值等于零时,获取目标颜色值,并将像素点的颜色值,设置为目标颜色值,得到着色像素点。
在一些实施例中,目标颜色值与面元颜色值不同,目标颜色值,用于指示像素点在目标虚拟画面中不可视。
作为示例,当颜色值通过RGB值表示时,目标颜色值可以为(0,0,0),在常规视觉效果中,在光照强度等于零时,通常颜色呈现出黑色,以指示在画面中的不可视效果。
如此,通过获取目标虚拟场景,并针对目标虚拟场景中的各场景体素进行光栅化,得到场景体素对应的体素面元,从而得到了目标虚拟场景的全量体素面元,在针对目标虚拟场景的任意一帧目标虚拟画面时,直接从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,以得到目标虚拟画面。如此,即便不同的虚拟画面之间可能存在场景体素的重叠,由于已经提前确定了目标虚拟场景的全量体素面元,直接从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元即可实现目标虚拟画面的生成,不同画面帧之间重复的场景体素不会反复执行相同的处理过程,从而有效提高了虚拟画面的生成效率。
下面,将说明本申请实施例在一个实际的虚拟场景渲染的应用场景中的示例性应用。
全局光照技术一直是计算机图形学领域的重点和难点,目前在PC端有一些技术应用落地,但是由于性能限制,在移动端全局光照领域还没有一种成熟的解决方案。本申请实施例基于PC端的一种表面有限元全局光照算法,进行了大量改动,优化了性能,在移动端可以达到稳定的实时全局光照要求。
在面元生成方面,采用场景体素化和光栅化相结合的方式。在顶点着色过程中从XYZ三个轴共三个方向遍历场景中的每个网格顶点,找到距离当前平面最近的顶点,将世界空间坐标、法线、颜色等关键信息存储下来。在面元生成的过程中就可以直接读取这些信息一次性生成全局范围内的面元,避免了传统方案中每帧从屏幕空间内生成所带来的性能开销大、场景收敛慢、无法通过物体几何信息控制生成密度等问题,并且各向异性好。在体素化的过程中,通过距离相机越远,生成的面元越稀疏,进一步减少了性能开销。在最终的光照采集的过程中,对于屏幕空间内的光照采集点,本申请实施例复用了上一帧的场景渲染结果,减少遍历面元缓存的次数,增加了信息,进一步提升性能。
本申请实施例首先对场景进行体素化,建立网格坐标系(网格分辨率能覆盖整个场景即可)。具体来说,3D离散空间Z3可以表示为3D空间中的一组网格点,离散空间中任意点P都可以用其笛卡尔坐标P(x,y,z)来表示,网格空间即为其中一种。本申请实施例用一个覆盖整个场景的包围盒建立网格空间N3,根据一定的分辨率N将整个空间分为长宽高的网格,在x方向上每个网格的长度cellx,y方向上每个网格的长度celly,z方向上每个网格的长度cellz可按照如下公式计算,其中L代表该方向上整个包围盒的长度。
(2)
有了网格坐标系的概念,本申请实施例可以将世界空间中任意一点坐标映射到网格坐标系中,如任意一点坐标为(X0,Y0,Z0),若只在第一象限建立网格坐标系,其对应的网格坐标系(X,Y,Z)可简化表示为:
(3)
深度遮挡剔除是传统光栅化管线的加速结构,只对当前视角可见的网格进行光栅化,默认开启。由于本申请实施例要遍历场景中所有的网格顶点,我们在配置文件中设置r.AllowOcclusionQueries=True来关闭剔除。
在光栅化管线内,从网格坐标系的三个方向:X,Y,Z分别进行处理,即在三个方向上进行三次光栅化,投影表面和分辨率为此方向的网格坐标系。同时由于体素是立方体有六个平面,本申请实施例开启六张纹理贴图,分别记录X,Y,Z,-X,-Y,-Z六个方向的信息。例如在X轴正方向,YZ平面为投影面进行光栅化,本申请实施例可以根据选中网格顶点的正反面信息将其存储到X方向或者-X方向的纹理中,因此每个方向需要正反两张纹理,共六张。
在一些实施例中,参见图12,图12是本申请实施例提供的虚拟画面的生成方法的场景体素的原理示意图,图12以x轴正方向指向屏幕外为例进行说明,图12所示出的是某一个体素在x轴正方向指向屏幕外方向上的光栅化情况。在光栅化流程中,首先顶点着色器中会遍历每个网格的顶点(例如,如图12所示出的顶点1、顶点2、顶点3、顶点4和顶点5),将网格顶点的数据(例如坐标、颜色、法线、转换矩阵等)传给像素着色器。图12显示出顶点着色器传递给像素着色器5个顶点(顶点1、顶点2、顶点3、顶点4和顶点5),说明该方向有五个顶点落在了这个体素的范围内。本申请实施例通过流水线式遍历这五个顶点的位置,从顶点1开始至顶点5,以顶点1为例,本申请实施例同时在顶点着色器中获取顶点1的正反面属性,如果顶点1在正面,将顶点1的顶点坐标除以体素边长,得到相除结果,对相除结果进行取小数,得到顶点1在体素内的相对偏移,并将相对偏移的x分量与1之间的差值,确定为顶点1相对于x正面的目标距离。如果顶点1在反面,将顶点1的顶点坐标除以体素边长,得到相除结果,对相除结果进行取小数,得到顶点1在体素内的相对偏移,并将相对偏移的x分量确定为顶点1相对于x反面的目标距离。获取当前存储的最小距离,将最小距离与顶点1对应的目标距离进行比较,得到比较结果。当比较结果指示目标距离小于最小距离,将顶点1的属性写入相应方向的贴图中,并更新最小距离。本申请实施例将顶点1的位置、法线、abedo、primID、Emissive等信息存储到X相应方向的贴图中,如果顶点1在反面,将这些信息存储在X负方向的贴图中,如果顶点1在正面,将这些信息存储在X正方向的贴图中。这样经过三个方向的光栅化,六个方向的贴图中均会存储每个体素内距离各体素面最近的那个顶点的信息。在面元生成过程中我们直接从贴图中一次性获取数据即可。
在一些实施例中,参见图13,图13是本申请实施例提供的虚拟画面的生成方法的体素化处理的原理示意图,由于网格坐标系中每个网格的长宽高可以自由设定,本申请实施例采用多级网格的方式来进行体素化,本申请实施例设置距离相机50m内为第一级网格,精度最高,每个网格的大小为,距离相机50m—250m为第二级网格,每个网格大小为-250m—网格坐标系边界为第三级网格,每个网格大小为/>距离相机越近的体素半径更小,距离相机越远的体素半径更大。这样会实现近处较高精度,远处较低精度的效果。参见图13,第一级网格、第二级网格和第三级网格均包括64个体素,第四级网格可以包括8个体素,第五级网格可以包括1个体素。且第一级网格中体素的尺寸小于第二级网格,第二级网格中体素的尺寸小于第三级网格,第四级网格中体素的尺寸小于第五级网格。
在一些实施例中,参见图14,图14是本申请实施例提供的虚拟画面的生成方法的面元的原理示意图,本申请实施例通过将复用上一帧的渲染结果引入有限元GI中,软件光线跟随会返回一个光线击中点的位置坐标,传统的方案是遍历这个位置周围的面元,将光照信息加权平均作为该点的颜色。这种颜色信息全部从面元中获取的方案具有局限性。由于场景的表达是离散化的,可能有一些高精度的场景信息无法获取,例如上文提到的四种颜色的平面(参见图14,具有颜色A的平面41、具有颜色B的平面42、具有颜色C的平面43和具有颜色D的平面44),由于只能获取到一种颜色作为最终颜色,对于光线击中点在屏幕内的光线,本申请实施例通过设置一个0~1之间的值x,光线有x的概率按照传统方案平均面元,有(1-x)的概率复用上一帧的渲染结果,读取该像素在上一帧的最终颜色作为光线返回的颜色。由于光线每帧都会投射,且数量很多,方向随机。有很多光线投射到该平面上,有一些光线就会直接使用该点的颜色作为返回值,这样就极大缓解了场景离散化带来的信息丢失问题。
在一些实施例中,参见图15,图15是相关技术中的第一虚拟画面的效果示意图,如图15所示出的虚拟画面的屏幕空间的面元61的分布,呈现出杂乱无章的分布情况,参见图16,图16是本申请实施例提供的虚拟画面的效果示意图,距离虚拟相机较近的面元62尺寸较大,距离虚拟相机较远的面元63尺寸较小,呈现出面元尺寸与虚拟相机之间的距离负相关。
在一些实施例中,参见图17,图17是本申请实施例提供的第二虚拟画面的效果示意图,距离虚拟相机较近的面元65尺寸较大,距离虚拟相机较远的面元64尺寸较小,呈现出面元尺寸与虚拟相机之间的距离负相关,同时面元64和面元65分布有序,较之于图16的面元分布,分布有序性更高。
在一些实施例中,参见图18至图19,图18是相关技术中的面元光照缓存的效果示意图,图19是本申请实施例提供的面元光照缓存的效果示意图,可以观察到本申请实施例提供的面元光照缓存的效果较之于相关技术,细节信息更多,黑斑很少,收敛更快,参见图18,相关技术中的面元光照缓存在虚拟场景位置67处存在黑斑,参见图19,本申请实施例提供的面元光照缓存的效果在相应的虚拟场景位置68处不存在黑斑。
如此,通过获取目标虚拟场景,并针对目标虚拟场景中的各场景体素进行光栅化,得到场景体素对应的体素面元,从而得到了目标虚拟场景的全量体素面元,在针对目标虚拟场景的任意一帧目标虚拟画面时,直接从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,以得到目标虚拟画面。如此,即便不同的虚拟画面之间可能存在场景体素的重叠,由于已经提前确定了目标虚拟场景的全量体素面元,直接从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元即可实现目标虚拟画面的生成,不同画面帧之间重复的场景体素不会反复执行相同的处理过程,从而有效提高了虚拟画面的生成效率。
可以理解的是,在本申请实施例中,涉及到目标虚拟场景等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的虚拟画面的生成装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的虚拟画面的生成装置455中的软件模块可以包括:获取模块4551,用于获取目标虚拟场景,所述目标虚拟场景中包括多个场景体素,所述场景体素包括多个不同法线方向的体素面;光栅化模块4552,用于针对各所述场景体素,从所述场景体素的各所述法线方向上,分别对所述场景体素进行光栅化,得到所述场景体素的各所述体素面分别对应的体素面元,所述体素面元,用于描述所述场景体素在相应所述法线方向上的虚拟场景信息;选取模块4553,用于从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元;画面着色模块4554,用于基于所述目标体素面元,对所述目标虚拟场景进行画面着色,得到所述目标虚拟画面。
在一些实施例中,上述获取模块,还用于获取初始虚拟场景,并对所述初始虚拟场景进行体素化处理,得到包括目标数量的初始场景体素的参考虚拟场景;获取所述参考虚拟场景中的初始虚拟相机的初始相机位置,及各所述初始场景体素在所述参考虚拟场景中的体素位置;确定所述初始相机位置分别与参考虚拟场景中各所述体素位置之间的距离,并基于所述距离,对所述参考虚拟场景中各所述初始场景体素的尺寸进行调整,得到所述目标虚拟场景。
在一些实施例中,上述获取模块,还用于获取所述初始相机位置与参考虚拟场景中各所述体素位置之间的距离,与所述目标虚拟场景中各场景体素的尺寸之间的映射关系,所述映射关系中的所述初始相机位置与参考虚拟场景中各所述体素位置之间的距离,与各所述场景体素的尺寸正相关;针对所述参考虚拟场景中的各所述初始场景体素分别执行以下处理,以得到所述目标虚拟场景:基于所述初始相机位置与所述初始场景体素对应的所述体素位置之间的距离、所述映射关系,确定所述初始虚拟体素的目标尺寸;将所述参考虚拟场景中初始场景体素的尺寸,调整为目标尺寸,得到初始场景体素对应的所述场景体素。
在一些实施例中,上述目标虚拟场景中包括多个虚拟物体,所述虚拟物体包括多个物体点,上述光栅化模块,还用于从所述目标虚拟场景的多个所述物体点中,确定位于所述场景体素内的至少一个候选物体点;在所述目标虚拟场景中,针对所述场景体素的各所述体素面分别执行以下处理:从所述至少一个候选物体点中,选取至少一个目标物体点,所述目标物体点与所述体素面上各点的连线均不经过其他的所述候选物体点;基于所述目标物体点,对所述场景体素进行光栅化,得到所述体素面对应的体素面元。
在一些实施例中,上述光栅化模块,还用于当位于所述场景体素内的候选物体点的数量为一个时,将所述候选物体点,确定为所述目标物体点;当位于所述场景体素内的候选物体点的数量为多个时,针对各所述候选物体点分别执行以下处理:当所述候选物体点与所述体素面上各点的连线均不经过其他的所述候选物体点时,将所述候选物体点确定为参考物体点;将距离所述体素面最近的参考物体点,确定为所述目标物体点。
在一些实施例中,上述选取模块,还用于获取所述目标虚拟场景中的目标虚拟相机的目标相机位置,所述目标虚拟相机,用于在所述目标虚拟场景中采集所述目标虚拟画面的画面信息;在所述目标虚拟场景中,以各所述体素面的中心位置为起点,以所述目标相机位置为终点,生成各所述体素面对应的虚拟检测线;基于所述虚拟检测线,从各所述体素面分别对应的体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
在一些实施例中,上述选取模块,还用于针对各所述体素面分别对应的体素面元分别执行以下处理:在所述目标虚拟场景中,确定所述体素面对应的虚拟检测线的检测信息;当所述检测信息指示所述体素面对应的虚拟检测线不经过所述目标虚拟场景中的其他体素面时,将所述体素面元确定为所述目标体素面元。
在一些实施例中,上述虚拟画面的生成装置,还包括:信息获取模块,用于获取所述目标虚拟画面的画面信息,所述画面信息,用于指示所述目标虚拟画面是否为所述目标虚拟场景所对应视频中的首个视频帧;上述选取模块,还用于响应于所述画面信息指示所述目标虚拟画面为所述首个视频帧,从多个所述体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
在一些实施例中,上述虚拟画面的生成装置,还包括:位置获取模块,用于响应于所述画面信息指示所述目标虚拟画面不是所述首个视频帧,获取所述视频中的参考虚拟画面,所述参考虚拟画面为所述视频中所述目标虚拟画面的前一帧虚拟画面;获取所述目标虚拟场景中的参考虚拟相机的参考相机位置,以及所述目标虚拟场景中的目标虚拟相机的目标相机位置;其中,所述参考虚拟相机,用于在所述目标虚拟场景中采集所述参考虚拟画面的画面信息,所述目标虚拟相机,用于在所述目标虚拟场景中采集所述目标虚拟画面的画面信息;上述选取模块,还用于响应于所述参考相机位置与所述目标相机位置之间的距离大于或等于距离阈值,从多个所述体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
在一些实施例中,上述虚拟画面的生成装置,还包括:确定模块,用于响应于所述参考相机位置与所述目标相机位置之间的距离小于所述距离阈值,将所述参考虚拟画面确定为所述目标虚拟画面。
在一些实施例中,上述画面着色模块,还用于通过目标虚拟相机,在所述目标虚拟场景中,采集所述目标虚拟画面的画面信息,并基于所述画面信息,生成所述目标虚拟场景的初始虚拟画面,所述初始虚拟画面的像素点与所述目标虚拟画面的像素点一一对应;针对所述初始虚拟画面中的各像素点分别执行以下处理,以得到所述目标虚拟画面:从目标体素面元的多个所述面元点中,选取与所述像素点相关联的目标面元点,并获取所述目标面元点的光照强度;当所述光照强度的数值不等于零时,获取所述目标面元点的面元颜色值,并基于所述面元颜色值,对所述像素点进行着色处理,得到着色像素点;当所述光照强度的数值等于零时,获取目标颜色值,并将所述像素点的颜色值,设置为所述目标颜色值,得到所述着色像素点,所述目标颜色值与所述面元颜色值不同。
在一些实施例中,上述画面着色模块,还用于获取所述目标虚拟相机在所述目标虚拟场景中的目标相机位置,并在所述目标虚拟场景中,以所述像素点为起点,以所述目标相机位置为终点,生成所述像素点对应的虚拟检测线;针对各所述面元点,当所述像素点对应的虚拟检测线经过所述面元点时,将所述面元点确定为所述目标面元点。
在一些实施例中,上述画面着色模块,还用于获取多个光照强度-调整系数索引条目,并从所述多个光照强度-调整系数索引条目中,确定包含所述目标面元点的光照强度的目标索引条目;将所述目标索引条目中的调整系数,确定为所述像素点的目标调整系数;将所述面元颜色值与所述目标调整系数的乘积,确定为参考颜色值,并将所述像素点的颜色值,设置为所述参考颜色值,得到所述着色像素点。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的虚拟画面的生成方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的虚拟画面的生成方法,例如,如图3示出的虚拟画面的生成方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上,本申请实施例具有如下有益效果:
(1)通过获取目标虚拟场景,并针对目标虚拟场景中的各场景体素进行光栅化,得到场景体素对应的体素面元,从而得到了目标虚拟场景的全量体素面元,在针对目标虚拟场景的任意一帧目标虚拟画面时,直接从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,以得到目标虚拟画面。如此,即便不同的虚拟画面之间可能存在场景体素的重叠,由于已经提前确定了目标虚拟场景的全量体素面元,直接从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元即可实现目标虚拟画面的生成,不同画面帧之间重复的场景体素不会反复执行相同的处理过程,从而有效提高了虚拟画面的生成效率。
(2)通过获取初始虚拟相机在参考虚拟场景中的初始相机位置,及各初始场景体素在参考虚拟场景中的体素位置,确定初始相机位置分别与各体素位置之间的距离,并基于距离,对参考虚拟场景中各初始场景体素的尺寸进行调整,得到目标虚拟场景,由于调整后的初始场景体素的尺寸与相应的距离正相关,从而使得距离初始虚拟相机较远的初始场景体素的尺寸较大,距离初始虚拟相机较近的初始场景体素的尺寸较小,从而使得目标虚拟场景中距离初始虚拟相机越近的场景体素能够更多的涵盖初始虚拟场景的场景信息,使得目标虚拟场景中距离初始虚拟相机越近的场景体素场景精度更高,距离初始虚拟相机越远的场景体素场景精度更低,有效降低了目标虚拟场景的资源占用,使得所得到的目标虚拟场景能够更加符合真实的视觉效果,同时有效提升了目标虚拟场景的资源利用率。
(3)在位于场景体素内的候选物体点的数量为多个时,当候选物体点与体素面上各点的连线均不经过其他的候选物体点时,将候选物体点确定为参考物体点,并将距离体素面最近的参考物体点,确定为目标物体点,从而使得所确定的目标物体点为场景体素内距离体素面最近,且无其他的候选物体点遮挡的物体点,从而使得所确定的目标物体点能够准确反映相应体素面的场景特征,使得所确定的体素面元更加准确。
(4)在位于场景体素内的候选物体点的数量为多个时,直接将距离体素面最近的物体点,确定为目标物体点,从而使得所确定的目标物体点为场景体素内距离体素面最近,从而效率更高的确定出能够准确反映相应体素面的场景特征的目标物体点,使得所确定的体素面元更加准确。
(5)在虚拟检测线的检测信息指示体素面对应的虚拟检测线不经过目标虚拟场景中的其他体素面时,说明在目标虚拟场景中目标虚拟相机和体素面之间不存在遮挡物,也即目标虚拟场景中,目标虚拟画面对应的目标虚拟相机能够采集到的体素面元,此时将此体素面元确定为目标体素面元,以便后续基于目标体素面元,对目标虚拟场景进行画面着色,得到目标虚拟画面,从而避免了除目标体素面元以外的体素面元,参与画面着色计算过程,有效提高了画面着色效率。
(6)在画面信息指示目标虚拟画面不是视频的首个视频帧,且参考相机位置与目标相机位置之间的距离小于距离阈值时,此时说明参考相机位置和目标相机位置分别对目标虚拟场景的拍摄角度,存在较小偏差,直接将参考虚拟画面确定为目标虚拟画面,从而实现目标虚拟画面的复用,从而有效节省了生成目标虚拟画面的时长,有效提高了目标虚拟画面的生成效率。
(7)通过目标面元点的光照强度和目标调整系数,对面元颜色值进行调整,利用所得到的参考颜色值对像素点进行着色,使得着色像素点所呈现的颜色能够更加准确的反映目标虚拟场景中目标面元点的颜色,有效提高了目标虚拟画面的呈现效果。
(8)光照强度与调整系数负相关,也即光照强度越大,对应的调整系数越小,从而面元颜色值与目标调整系数的乘积值对应的参考颜色值越小,使得参考颜色值更加明亮,光照强度越小,对应的调整系数越大,从而面元颜色值与目标调整系数的乘积值对应的参考颜色值越大,使得参考颜色值更加灰暗。
(9)在参考相机位置与目标相机位置之间的距离大于或等于距离阈值时,说明参考相机位置和目标相机位置分别对目标虚拟场景的拍摄角度,存在较大偏差,也即参考虚拟相机和目标虚拟相机分别所采集的目标虚拟场景的画面存在较大出入,此时目标虚拟画面无法复用参考虚拟画面,从而可以从多个体素面元中,选取与目标虚拟画面相关联的目标体素面元,从而目标体素面元确定相应的目标虚拟画面,从而有效提高了目标虚拟画面的展示准确性。
(10)本申请实施例通过将复用上一帧的渲染结果引入有限元GI中,软件光线跟随会返回一个光线击中点的位置坐标,传统的方案是遍历这个位置周围的面元,将光照信息加权平均作为该点的颜色。这种颜色信息全部从面元中获取的方案具有局限性。由于场景的表达是离散化的,可能有一些高精度的场景信息无法获取,例如上文提到的四种颜色的平面,只能获取到一种颜色,对于光线击中点在屏幕内的光线,本申请实施例通过设置一个0~1之间的值x,光线有x的概率按照传统方案平均面元,有(1-x)的概率复用上一帧的渲染结果,读取该像素在上一帧的最终颜色作为光线返回的颜色。由于光线每帧都会投射,且数量很多,方向随机。有很多光线投射到该平面上,有一些光线就会直接使用该点的颜色作为返回值,这样就极大缓解了场景离散化带来的信息丢失问题。
(11)在面元生成方面,采用场景体素化和光栅化相结合的方式。在顶点着色过程中从XYZ三个轴共三个方向遍历场景中的每个网格顶点,找到距离当前平面最近的顶点,将世界空间坐标、法线、颜色等关键信息存储下来。在面元生成的过程中就可以直接读取这些信息一次性生成全局范围内的面元,避免了传统方案中每帧从屏幕空间内生成所带来的性能开销大、场景收敛慢、无法通过物体几何信息控制生成密度等问题,并且各向异性好。在体素化的过程中,通过距离相机越远,生成的面元越稀疏,进一步减少了性能开销。在最终的光照采集的过程中,对于屏幕空间内的光照采集点,本申请实施例复用了上一帧的场景渲染结果,减少遍历面元缓存的次数,增加了信息,进一步提升性能。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种虚拟画面的生成方法,其特征在于,所述方法包括:
获取目标虚拟场景,所述目标虚拟场景中包括多个场景体素和多个虚拟物体,所述场景体素包括多个不同法线方向的体素面,所述虚拟物体包括多个物体点;
针对各所述场景体素,从所述目标虚拟场景的多个所述物体点中,确定位于所述场景体素内的至少一个候选物体点;在所述目标虚拟场景中,针对所述场景体素的各所述体素面,当位于所述场景体素内的候选物体点的数量为多个时,针对各所述候选物体点,当所述候选物体点与所述体素面上各点的连线均不经过其他的所述候选物体点时,将所述候选物体点确定为参考物体点;将距离所述体素面最近的参考物体点,确定为目标物体点;基于所述目标物体点,对所述场景体素进行光栅化,得到所述体素面对应的体素面元;
其中,所述体素面元,用于描述所述场景体素在相应所述法线方向上的虚拟场景信息;
从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元;
基于所述目标体素面元,对所述目标虚拟场景进行画面着色,得到所述目标虚拟画面。
2.根据权利要求1所述的方法,其特征在于,所述获取目标虚拟场景,包括:
获取初始虚拟场景,并对所述初始虚拟场景进行体素化处理,得到包括目标数量的初始场景体素的参考虚拟场景;
获取所述参考虚拟场景中的初始虚拟相机的初始相机位置,及各所述初始场景体素在所述参考虚拟场景中的体素位置;
确定所述初始相机位置分别与所述参考虚拟场景中各所述体素位置之间的距离,并基于所述距离,对所述参考虚拟场景中各所述初始场景体素的尺寸进行调整,得到所述目标虚拟场景。
3.根据权利要求2所述的方法,其特征在于,所述基于所述距离,对所述参考虚拟场景中各所述初始场景体素的尺寸进行调整,得到所述目标虚拟场景,包括:
获取所述初始相机位置与所述参考虚拟场景中各所述体素位置之间的距离,与所述目标虚拟场景中各场景体素的尺寸之间的映射关系;
针对所述参考虚拟场景中的各所述初始场景体素分别执行以下处理,以得到所述目标虚拟场景:
基于所述初始相机位置与所述初始场景体素对应的所述体素位置之间的距离、所述映射关系,确定所述初始场景体素的目标尺寸;
将所述参考虚拟场景中所述初始场景体素的尺寸,调整为所述目标尺寸,得到所述初始场景体素对应的所述场景体素。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当位于所述场景体素内的候选物体点的数量为一个时,将所述候选物体点,确定为所述目标物体点。
5.根据权利要求1所述的方法,其特征在于,所述从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元,包括:
获取所述目标虚拟场景中的目标虚拟相机的目标相机位置,所述目标虚拟相机,用于在所述目标虚拟场景中采集所述目标虚拟画面的画面信息;
在所述目标虚拟场景中,以各所述体素面的中心位置为起点,以所述目标相机位置为终点,生成各所述体素面对应的虚拟检测线;
基于所述虚拟检测线,从各所述体素面分别对应的体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
6.根据权利要求5所述的方法,其特征在于,所述基于所述虚拟检测线,从各所述体素面分别对应的体素面元中,选取与所述目标虚拟画面相关联的目标体素面元,包括:
针对各所述体素面分别对应的体素面元分别执行以下处理:
在所述目标虚拟场景中,确定所述体素面对应的虚拟检测线的检测信息;
当所述检测信息指示所述体素面对应的虚拟检测线不经过所述目标虚拟场景中的其他体素面时,将所述体素面元确定为所述目标体素面元。
7.根据权利要求1所述的方法,其特征在于,所述从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元之前,所述方法还包括:
获取所述目标虚拟画面的画面信息,所述画面信息,用于指示所述目标虚拟画面是否为所述目标虚拟场景所对应视频中的首个视频帧;
所述从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元,包括:
响应于所述画面信息指示所述目标虚拟画面为所述首个视频帧,从多个所述体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
8.根据权利要求7所述的方法,其特征在于,所述获取所述目标虚拟画面的画面信息之后,所述方法还包括:
响应于所述画面信息指示所述目标虚拟画面不是所述首个视频帧,获取所述视频中的参考虚拟画面,所述参考虚拟画面为所述视频中所述目标虚拟画面的前一帧虚拟画面;
获取所述目标虚拟场景中的参考虚拟相机的参考相机位置,以及所述目标虚拟场景中的目标虚拟相机的目标相机位置;
其中,所述参考虚拟相机,用于在所述目标虚拟场景中采集所述参考虚拟画面的画面信息,所述目标虚拟相机,用于在所述目标虚拟场景中采集所述目标虚拟画面的画面信息;
所述从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元,包括:
响应于所述参考相机位置与所述目标相机位置之间的距离大于或等于距离阈值,从多个所述体素面元中,选取与所述目标虚拟画面相关联的目标体素面元。
9.根据权利要求8所述的方法,其特征在于,所述获取所述目标虚拟场景中的参考虚拟相机的参考相机位置,以及所述目标虚拟场景中的目标虚拟相机的目标相机位置之后,所述方法还包括:
响应于所述参考相机位置与所述目标相机位置之间的距离小于所述距离阈值,将所述参考虚拟画面确定为所述目标虚拟画面。
10.根据权利要求1所述的方法,其特征在于,所述目标体素面元包括多个面元点,所述基于所述目标体素面元,对所述目标虚拟场景进行画面着色,得到所述目标虚拟画面,包括:
通过目标虚拟相机,在所述目标虚拟场景中,采集所述目标虚拟画面的画面信息,并基于所述画面信息,生成所述目标虚拟场景的初始虚拟画面,所述初始虚拟画面的像素点与所述目标虚拟画面的像素点一一对应;
针对所述初始虚拟画面中的各像素点分别执行以下处理,以得到所述目标虚拟画面:
从目标体素面元的多个所述面元点中,选取与所述像素点相关联的目标面元点,并获取所述目标面元点的光照强度;
当所述光照强度的数值不等于零时,获取所述目标面元点的面元颜色值,并基于所述面元颜色值,对所述像素点进行着色处理,得到着色像素点;
当所述光照强度的数值等于零时,获取目标颜色值,并将所述像素点的颜色值,设置为所述目标颜色值,得到所述着色像素点,所述目标颜色值与所述面元颜色值不同。
11.根据权利要求10所述的方法,其特征在于,所述从目标体素面元的多个所述面元点中,选取与所述像素点相关联的目标面元点,包括:
获取所述目标虚拟场景中的目标虚拟相机的目标相机位置,并在所述目标虚拟场景中,以所述像素点为起点,以所述目标相机位置为终点,生成所述像素点对应的虚拟检测线;
针对各所述面元点,当所述像素点对应的虚拟检测线经过所述面元点时,将所述面元点确定为所述目标面元点。
12.根据权利要求10所述的方法,其特征在于,所述基于所述面元颜色值,对所述像素点进行着色处理,得到着色像素点,包括:
获取多个光照强度-调整系数索引条目,并从所述多个光照强度-调整系数索引条目中,确定包含所述目标面元点的光照强度的目标索引条目;
将所述目标索引条目中的调整系数,确定为所述像素点的目标调整系数;
将所述面元颜色值与所述目标调整系数的乘积,确定为参考颜色值,并将所述像素点的颜色值,设置为所述参考颜色值,得到所述着色像素点。
13.一种虚拟画面的生成装置,其特征在于,所述装置包括:
获取模块,用于获取目标虚拟场景,所述目标虚拟场景中包括多个场景体素和多个虚拟物体,所述场景体素包括多个不同法线方向的体素面,所述虚拟物体包括多个物体点;
光栅化模块,用于针对各所述场景体素,从所述目标虚拟场景的多个所述物体点中,确定位于所述场景体素内的至少一个候选物体点;在所述目标虚拟场景中,针对所述场景体素的各所述体素面,当位于所述场景体素内的候选物体点的数量为多个时,针对各所述候选物体点,当所述候选物体点与所述体素面上各点的连线均不经过其他的所述候选物体点时,将所述候选物体点确定为参考物体点;将距离所述体素面最近的参考物体点,确定为目标物体点;基于所述目标物体点,对所述场景体素进行光栅化,得到所述体素面对应的体素面元;其中,所述体素面元,用于描述所述场景体素在相应所述法线方向上的虚拟场景信息;
选取模块,用于从多个所述体素面元中,选取与目标虚拟画面相关联的目标体素面元;
画面着色模块,用于基于所述目标体素面元,对所述目标虚拟场景进行画面着色,得到所述目标虚拟画面。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令或者计算机程序;
处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现权利要求1至12任一项所述的虚拟画面的生成方法。
15.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时实现权利要求1至12任一项所述的虚拟画面的生成方法。
CN202311164963.0A 2023-09-11 2023-09-11 虚拟画面的生成方法、装置、设备、存储介质及程序产品 Active CN116993894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311164963.0A CN116993894B (zh) 2023-09-11 2023-09-11 虚拟画面的生成方法、装置、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311164963.0A CN116993894B (zh) 2023-09-11 2023-09-11 虚拟画面的生成方法、装置、设备、存储介质及程序产品

Publications (2)

Publication Number Publication Date
CN116993894A CN116993894A (zh) 2023-11-03
CN116993894B true CN116993894B (zh) 2023-12-22

Family

ID=88521553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311164963.0A Active CN116993894B (zh) 2023-09-11 2023-09-11 虚拟画面的生成方法、装置、设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN116993894B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017029279A2 (en) * 2015-08-17 2017-02-23 Lego A/S Method of creating a virtual game environment and interactive game system employing the method
CN115830208A (zh) * 2023-01-09 2023-03-21 腾讯科技(深圳)有限公司 全局光照渲染方法、装置、计算机设备和存储介质
CN116109803A (zh) * 2023-04-13 2023-05-12 腾讯科技(深圳)有限公司 信息构建方法、装置、设备及存储介质
CN116485969A (zh) * 2023-02-22 2023-07-25 腾讯科技(深圳)有限公司 体素对象生成方法、装置和计算机可读存储介质
CN116672706A (zh) * 2023-08-03 2023-09-01 腾讯科技(深圳)有限公司 光照渲染方法、装置、终端和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017029279A2 (en) * 2015-08-17 2017-02-23 Lego A/S Method of creating a virtual game environment and interactive game system employing the method
CN115830208A (zh) * 2023-01-09 2023-03-21 腾讯科技(深圳)有限公司 全局光照渲染方法、装置、计算机设备和存储介质
CN116485969A (zh) * 2023-02-22 2023-07-25 腾讯科技(深圳)有限公司 体素对象生成方法、装置和计算机可读存储介质
CN116109803A (zh) * 2023-04-13 2023-05-12 腾讯科技(深圳)有限公司 信息构建方法、装置、设备及存储介质
CN116672706A (zh) * 2023-08-03 2023-09-01 腾讯科技(深圳)有限公司 光照渲染方法、装置、终端和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于级联体素纹理的VCT全局光照算法;张菁 等;计算机应用研究;第37卷(第2期);第578-583页 *

Also Published As

Publication number Publication date
CN116993894A (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
US11704863B2 (en) Watertight ray triangle intersection
CN109509138B (zh) 针对射线跟踪系统的减小的加速结构
CN112270756B (zh) 一种应用于bim模型文件的数据渲染方法
US20230053462A1 (en) Image rendering method and apparatus, device, medium, and computer program product
US11138782B2 (en) Systems and methods for rendering optical distortion effects
US20200160587A1 (en) Systems and methods for reducing rendering latency
US11804002B2 (en) Techniques for traversing data employed in ray tracing
US7948487B2 (en) Occlusion culling method and rendering processing apparatus
US10553012B2 (en) Systems and methods for rendering foveated effects
US7812837B2 (en) Reduced Z-buffer generating method, hidden surface removal method and occlusion culling method
US10699467B2 (en) Computer-graphics based on hierarchical ray casting
JP2009525526A (ja) ビーム放出によって仮想画像を合成するための方法
US11450057B2 (en) Hardware acceleration for ray tracing primitives that share vertices
CN107392990B (zh) 渲染3d场景的全局照明
KR102151443B1 (ko) 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치
US20230230311A1 (en) Rendering Method and Apparatus, and Device
CN110706325A (zh) 一种三维海底环境实时动态渲染方法和渲染系统
KR101090660B1 (ko) 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법
US10347034B2 (en) Out-of-core point rendering with dynamic shapes
CN116993894B (zh) 虚拟画面的生成方法、装置、设备、存储介质及程序产品
KR20230013099A (ko) 실시간 깊이 맵을 사용한 지오메트리 인식 증강 현실 효과
US20240095996A1 (en) Efficiency of ray-box tests
WO2023169002A1 (zh) 软光栅化的方法、装置、设备、介质及程序产品
US20240009226A1 (en) Techniques for traversing data employed in ray tracing
Masood et al. Efficient adaptive rendering of planetary-scale terrains

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