CN111340928A - 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 - Google Patents
一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN111340928A CN111340928A CN202010101444.XA CN202010101444A CN111340928A CN 111340928 A CN111340928 A CN 111340928A CN 202010101444 A CN202010101444 A CN 202010101444A CN 111340928 A CN111340928 A CN 111340928A
- Authority
- CN
- China
- Prior art keywords
- rendering
- ray tracing
- texture
- result
- node
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种结合光线跟踪的Web端实时混合渲染方法、装置以及计算机设备,所述方法包括获取三维场景数据和根据所述三维场景数据转换的纹理;针对收敛速度慢且渲染结果低频的部分,根据所述三维场景数据进行光栅化渲染;针对收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染;根据所述光栅化渲染结果和/或所述光线跟踪渲染结果,混合当前帧和历史帧的渲染结果。解决了Web端渲染真实感低的问题,以比较低的成本在Web端可达到高质量全局光照效果,提升了Web端渲染真实感。
Description
技术领域
本发明属于计算机图形学领域,具体涉及一种结合光线跟踪的Web 端实时混合渲染方法、装置及计算机设备。
背景技术
光线跟踪是一种真实地显示物体的方法,光线跟踪方法沿着到达视点的光线的反方向跟踪,经过屏幕上每一个象素,找出与视线相交的物体表面点P0,并继续跟踪,找出影响P0点光强的所有光源,从而算出P0点上精确的光线强度,在材质编辑中经常用来表现镜面效果。光线跟踪或称光迹追踪是计算机图形学的核心算法之一。在算法中,光线从光源被抛射出来,当他们经过物体表面的时候,对他们应用种种符合物理光学定律的变换。最终,光线进入虚拟的摄像机底片中,图片被生成出来。
光栅化(Rasterization)是把顶点数据转换为片元的过程,具有将图转化为一个个栅格组成的图像的作用,特点是每个元素对应帧缓冲区中的一像素。光栅化其实是一种将几何图元变为二维图像的过程。该过程包含了两部分的工作。第一部分工作:决定窗口坐标中的哪些整型栅格区域被基本图元占用;第二部分工作:分配一个颜色值和一个深度值到各个区域。光栅化过程产生的是片元。
随着互联网技术的发展,各种资源信息得到高度共享,其中,通过互联网提供的万维网服务进行信息共享的方式,俨然成为人们日常生活、工作和娱乐中不可或缺的一部分。WEB(万维网)端的信息是通过浏览器进行展示呈现的,而如何将各种应用程序,如游戏中的各三维模型对象在WEB 端上更好的模拟展现出来是现今互联网络技术的一大热点问题。
近年来,随着WebGL(Web Graphics Library,web图形库)技术的快速发展,Web端三维图形渲染应用已经越来越广泛,三维模型的在线查看交互越来越常见,目前主要是通过PBR渲染(Physicallly-Based-Rendering,基于物理渲染)方式实现最终的渲染结果,但这只是对渲染的一个近似,其真实感方面一直难以达到逼真的程度。OpenGL及OpenGL ESAPI的渲染能力非常有限,通常只能做光栅化渲染,而光栅化渲染的一个弊端是在真实感及全局光照方面一直不尽人意。
另一方面,光线跟踪或路径追踪是一种求解渲染方程的方法,虽然可以达到逼真的光感效果,但它存在的一个问题是计算代价太大,导致光线跟踪方法很难应用到实时渲染端。
发明内容
鉴于上述,本发明提供了一种结合光线跟踪的Web端实时混合渲染方法、一种结合光线跟踪的Web端实时混合渲染装置以及一种计算机设备。
一种结合光线跟踪的Web端实时混合渲染方法,包括步骤:
获取根据三维场景数据转换的纹理;
针对收敛速度慢且渲染结果低频的部分,根据所述纹理进行光栅化渲染;
针对收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染;
根据所述光栅化渲染结果和/或所述光线跟踪渲染结果,混合当前帧和历史帧的渲染结果。
一种结合光线跟踪的Web端实时混合渲染装置,所述装置包括:
获取模块,用于获取根据三维场景数据转换的纹理;
光栅化渲染模块,用于针对收敛速度慢且渲染结果低频的部分,根据所述三维场景数据进行光栅化渲染;
光线跟踪渲染模块,用于针对收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染;
混合模块,用于根据所述光栅化渲染结果和/或所述光线跟踪渲染结果,混合当前帧和历史帧的渲染结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如上所述的结合光线跟踪的Web端实时混合渲染方法。
基于如上所述的实施例中的方案,在获取根据三维场景数据转换的纹理后,针对收敛速度慢且渲染结果低频的部分,根据所述纹理进行光栅化渲染,针对收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染,然后根据所述光栅化渲染结果和/或所述光线跟踪渲染结果,混合当前帧和历史帧的渲染结果。方案根据获得的根据三维场景数据转换的纹理,对于收敛速度慢且渲染结果低频的部分,根据所述纹理进行光栅化渲染,对于收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染,然后再根据所述光栅化渲染结果和/或所述光线跟踪渲染结果混合当前帧和历史帧的渲染结果,解决了Web端渲染真实感低的问题,以比较低的成本在Web端可达到高质量全局光照效果,提升了Web端渲染真实感。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1是一个实施例方案的工作环境的示意图;
图2是一个实施例的终端的组成结构示意图;
图3是一个实施例中结合光线跟踪的Web端实时混合渲染方法的流程图;
图4是一个实施例中根据三维场景数据转换纹理的流程示意图;
图5是一个实施例中结合光线跟踪的Web端实时混合渲染装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中多使用的术语只是为了描述具体地实施例的目的,不是旨在于限定本申请。本文所使用的术语“或/及”包含一个或多个相关的所列项目的任意的和所有的组合。
图1是本申请一个实施例工作环境示意图。如图1所示,结合光线跟踪的Web端实时混合渲染方法的工作环境涉及终端101和服务器102,终端101和服务器102通过网络进行连接,并通过网络进行网络数据的传输。其中,,终端101具体可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑、笔记本电脑等中的一种;服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现;终端101与服务器102可以采用任何可能的网络进行通信,如局域网、互联网。
图2是终端101在一个实施例中的结构示意图。如图2所示,该终端包括通过系统总线连接的处理器、非易失性存储介质、内存、供电模块、通信接口、显示屏幕以及输入设备。其中,终端的非易失性存储介质存储有操作系统和结合光线跟踪的Web端实时混合渲染方法对应的计算机应用程序,也就是图2中的结合光线跟踪的Web端实时混合渲染装置,该方法对应的计算机应用程序被处理器执行时,实现一种结合光线跟踪的 Web端实时混合渲染方法。终端的处理器用于提供计算和控制能力,支撑整个终端的运行。终端的存储器为非易失性存储介质中的程序的运行提供环境,该存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种结合光线跟踪的Web端实时混合渲染方法。终端的网络接口用于与外部设备网络连接和通信,终端的电源接口用于与外部电源连接,外部电源通过该电源接口向终端供电。
本领域技术人员可以理解,图2中示出的结构,仅仅是与实施例方案相关的部分结构的框图,并不构成对本实施例方案所应用于其上的终端的限定,具体地终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图3是一个实施例中结合光线跟踪的Web端实时混合渲染方法的流程图。该实施例中是以进行WEB端的三维模型渲染的终端101的处理过程为例进行说明。参见图3,该实施例中的结合光线跟踪的Web端实时混合渲染方法包括步骤S301至步骤304。
步骤S301:获取根据三维场景数据转换的纹理。
其中,web(World Wide Web,全球广域网)是建立在Internet上的一种网络服务,可以将图形、音频以及视频数据同时进行显示,以为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面。渲染是指对一个三维模型进行几何描述,并且把它转换为二维屏幕上的一幅图像,由显示屏展现出来这里的三维模型是指由三维建模软件生成,表示各种物体的立体结构。本实施例中,三维场景数据是指与web端渲染三维模型相关的数据,是物体的三维模型拼接形成的场景对应的数据,该三维场景数据包括几何结构数据和材质数据,可以对该三维场景数据进行直接渲染,或者对该三维场景数据进行分析处理后再进行渲染。
当Web端基于OpenGL及OpenGL ES API进行渲染时,OpenGL及 OpenGL ES API只能通过定义的纹理(texture)传输数据,因此本实施例中,需要将三维场景数据转换成纹理,具体地,就是将三维场景数据通过某种变换转化纹理矩阵,以被OpenGL及OpenGL ES API获取进行实时渲染。
图4是一个实施例中根据三维场景数据转换纹理的流程示意图。参见图4,根据三维场景数据转换纹理包括:
对三维场景数据进行分析,获得几何结构数据和材质数据;
对所述几何结构数据进行BVH构建,获得BVH树;
序列化所述BVH树和所述材质数据,并将序列化结果转换成纹理。
实施例中,具体的三维场景数据转换纹理过程可以在终端的CPU中进行,也可以在服务器的CPU中进行。对三维场景数据进行解析分析,从中获得几何结构数据和材质数据,其中,几何结构数据包括几何面片的三维顶点坐标、法向数据、UV坐标,几何面片包括三角面片、四边形面片等,根据几何结构数据可以生成物体的三维结构模型。材质数据为几何面片采用的材质构成的数据。由几何结构数据构建的三维结构模型和几何面片采用的材质构成物体的三维模型,对该三维模型进行渲染即可以将三维模型显示在屏幕上。
BVH(Bounding volume hierarchy,包围盒层次)是一种二叉树,可以用于三维场景中物体的管理,就是通过一个简单的包围盒把物体包围起来,将该包围盒作为一个节点来构建二叉树,实现对三维场景数据中几何结构数据和材质信息的管理,即利用BVH树可以管理三维场景中物体的结构信息、材质信息以及与其他物体的连接关系。
一个实施例中,所述对所述几何结构数据进行BVH构建,获得BVH 树包括:
根据三维场景数据中几何面片的包围盒进行空间划分,根据划分空间内的几何面片数与预设阈值的大小关系,设置节点,以此构建BVH树。
BVH树中包含两类节点,一类是叶子节点,该叶子节点处于整个BVH 树的最顶层,用于存储几何面片的相关信息。另一类是非叶子节点,非叶子节点具有左右孩子节点,用于存储左右孩子对应的包围盒相关信息。非叶子节点和叶子节点统称为节点,本申请中提到的节点均为叶子节点和非叶子节点。
实施例中,根据几何面片的包围盒大小对三维场景进行不同划分轴上的空间划分,该划分轴的设定与三维场景所处的坐标系相关,当三维场景处于X,Y,Z三维坐标系时,则划分轴需要与X,Y,Z轴中的任意一个相平行。每生成一个划分空间,即对新生成的划分空间建立相应的节点以记载该划分空间内几何面片的信息。
根据应用时的需求设定预设阈值大小,举例可以设置为2,在确定了预设阈值后,即可以根据划分空间内几何面片数与预设阈值的大小关系,生成节点,并保存节点对应的信息。当划分空间内几何面片数大于预设阈值时,则生成非叶子节点,并将该划分空间内包围所有几何面片的包围盒信息存储到该非叶子节点,当划分空间内几何面片数不大于预设阈值时,则生成叶子节点,并将该划分空间内几何面片的属性信息存储到该叶子节点。
具体地,构建对所述几何结构数据进行BVH构建的过程为:遍历几何结构数据中的几何面片,并根据几何面片包围盒的大小对场景进行不同划分轴的空间划分,当划分空间内剩下的面片数量大于预设阈值时,则建立非叶子节点,存储划分空间内包围所有几何面片的包围盒信息到该非叶子节点,并递归对划分空间进行重新划分和生成新节点;当空间划分后剩下的面片数量不大于预设阈值时,则建立叶子节点,存储划分空间内几何面片的属性信息到该叶子节点。
其中,几何面片的属性信息包括几何面片的几何结构信息以及所采用的材质信息,其中几何结构信息包括几何面片的三维顶点坐标、法向数据、 UV坐标。材质信息通常以下标的形式索引对应的材质数据,以表示该几何面片具体采用哪种材质数据。
为了在GLSL(OpenGL Shading Language,OpenGL着色语言)中能够正确地访问到整个场景的几何结构信息及材质信息,需要对三维场景数据进行序列化。
一个实施例中,所述序列化所述BVH树和所述材质数据包括:
计算BVH树每个节点的字节数,根据所述字节数序列化节点的节点信息,获得节点序列化结果;其中,针对非叶子节点,节点信息包括节点位置信息和几何面片的包围盒信息,针对叶子节点,节点信息包括节点位置信息和几何面片的属性信息;
序列化所述材质数据,获得材质序列化结果;
节点序列化结果和材质序列化结果组成序列化结果。
其中,所述计算BVH树每个节点的字节数包括:
针对非叶子节点,根据非叶子节点的左右孩子节点位置信息及左右孩子节点存储的包围盒信息计算非叶子节点的字节数;
针对叶子节点,根据叶子节点位置信息和存储的几何面片的属性信息计算叶子节点的字节数。
对BVH树进行序列化时,计算每个字节数,然后再根据每个节点的字节数对节点信息进行序列化。节点序列化结果中,记载了每个节点的位置偏移量,也就是节点位置信息,该偏移量在序列化结果中以下标位置的形式进行表示。该位置偏移量包括每个节点相对于根节点的总计偏移量,还包括每个孩子节点相对于父节点的相对偏移量。也就是在序列化时,既要序列化每节点相对根节点的位置偏移量,也要序列化每个孩子节点相对于父节点的相对偏移量。
除此之外,针对非叶子节点,还需要对节点存储的几何面片的包围盒信息进行序列化,针对叶子节点,还需要对节点存储的几何面片的属性信息进行序列化。
具体地,对BVH树的序列化过程为:递归地遍历BVH树的节点,即计算出每个节点在序列化后结果中的下标位置,也就是记载每个节点相对于根节点的总计偏移量;然后,再重新递归遍历每个节点,对非叶子节点,记载每一个非叶子节点的左右孩子节点下标及其关联的包围盒数据,也就是记载左右孩子节点相对于父节点的相对偏移量和包围盒信息,对叶子节点,序列化叶子节点存储的几何面片的属性信息,获得节点序列化结果。
对于材质数据,同样需要进行序列化,即遍历所有材质数据,获得材质序列化结果,将该材质序列化结果导出到节点序列化结果之后,共同组成序列化结果,存储到缓冲寄存器(buffer)中。
在一个实施例中,所述序列化结果转换成纹理包括:
截取序列化结果中的一段字节作为元素值,以此构建纹理矩阵。
Web端采用图形处理器,且根据OpenGL及OpenGL ES API进行三维模型的渲染,因此,Web端采用图形处理器(GPU)只能通过纹理进行数据传输,也就是只能接收纹理,因此,需要将缓冲寄存器中的序列化结果转换成图形处理器可接收的纹理。具体地,截取缓冲寄存器中的一段字节流作为一个元素值,按照顺序排列成一个矩阵,即构建了纹理矩阵,实现了以字节流表示的序列化结果到纹理矩阵的转换。
当然,也可以调用OpenGL及OpenGL ES API自带的转换命令,如 glTexImage2D命令,将缓冲寄存器的序列化结果同步到图形处理器,并在 GLSL中通过texture2D访问一段字节流作为像素信息,以生成纹理矩阵。
步骤S302:针对收敛速度慢且渲染结果低频的部分,根据所述纹理进行光栅化渲染。
基于物理真实的光线跟踪能够收敛得到真实感很强的渲染结果,若均采用光线跟踪渲染会造成计算开销巨大。由于不同的材质、光照模型收敛速度不尽相同,针对部分材质、光照模型的效果通过光栅化渲染也会得到真实感不错的渲染效果。因此,可以根据材质、灯光模型的本质特性分类采用光线跟踪渲染和光栅化渲染混合的渲染方法既能够获得真实感很强的渲染结果,还能降低计算开销。
实施例中,漫反射、微表面等材质模型,环境光、面光源灯光照模型,它们在渲染过程中,收敛速度慢,低频就是指函数变换比较缓慢,具体到渲染就是最终收敛的无噪点渲染图,在二维图形空间,可以看做一个二维函数,这个函数变化缓慢,因此为收敛速度慢且渲染结果低频的部分,收敛速度慢表现为渲染图像中噪声点消除的时间慢,直接影响渲染图的呈现质量。针对这部分收敛速度慢且渲染结果低频的部分,利用光栅化渲染即可以在节省开销的前提下,获得真实感很强的渲染结果。
在一个实施例中,所述根据所述纹理进行光栅化渲染包括:
将所述纹理反序列化成BVH树,根据BVH数获得所述三维场景数据,根据所述三维场景数据进行光栅化渲染。
对于光栅化渲染,只要有三维场景数据就可以直接进行光栅化渲染,因此,需要将纹理反序列化成BVH树,再根据BVH树映射得到原始的三维场景数据,最后直接根据三维场景数据进行光栅化渲染。
步骤S303:针对收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染。
实施例中,镜面反射、镜面折射等材质模型,它们在渲染过程中,收敛速度快,高频就是指函数变换比较较快,具体到渲染就是最终收敛的无噪点渲染图,在二维图形空间,可以看做一个二维函数,这个函数变化较快,因此为收敛速度快且渲染结果高频的部分。针对这部分收敛速度快且渲染结果高频的部分,利用光线跟踪渲染即可以获得真实感很强的渲染结果。
光线追踪渲染的计算开销非常大,为了加速光线追踪渲染,利用构建的BVH树进行场景求交,BVH树中通过一个简单的包围盒把物体包围起来,在场景求交时,射线和场景中的几何面片求交之前,会先和这个包围盒进行求交,如果该射线没有碰到该包围盒,表明该射线一定不会和包围盒里的几何面片相交;如果该射线碰到该包围盒,那么再来计算射线是否和包围盒中的几何面片相交。
在一个实施例中,所述根据所述纹理进行光线跟踪渲染包括:
将所述纹理反序列化成BVH树,采用stack-less求交方法对BVH树进行场景求交,以确定求交结果,根据求交结果进行光线跟踪渲染。
借助stack-less的求交方法在GLSL中实现了非递归的BVH场景求交过程。常规递归形式的函数调用使用的是系统堆栈,可能会出现堆栈溢出的问题,stack-less的方法在程序中显式的维护一个栈,模拟实现递归,避免了系统堆栈溢出的问题。
具体的,显式地维护了一个BVH节点栈以记录在BVH的求交过程中的信息,模拟递归求交。从下标0(BVH根节点)开始,从纹理矩阵中获取节点的包围盒信息,并进行Ray-Box(射线-包围盒)求交,在有交点的情况下记录对应的距离及节点下标,直至遍历所有交点的节点,并计算最小的距离及节点下标。如果求交的是BVH的叶子节点,即单独三角形,则需要求射线到这个三角形的距离。BVH求交的目的是找到距离射线最近的三角形。
将光栅化渲染和光线跟踪渲染高效的结合,并且将各自的渲染结果合并输出,能够极大的提升了收敛速度同时保证了高质量的渲染结果。
步骤S304:根据所述光栅化渲染结果和/或所述光线跟踪渲染结果,混合当前帧和历史帧的渲染结果。
在混合渲染的基础上,为了提升渲染效率,需要渲染结果在时序上的收敛,可以采用指数移动平均(Exponential Moving Average)方法混合当前帧和历史帧的渲染结果。结合上述混合渲染的方法,能够在时序上做到快速收敛。
本实施例的结合光线跟踪的Web端实时混合渲染方法根据获得的根据三维场景数据转换的纹理,对于收敛速度慢且渲染结果低频的部分,根据所述纹理进行光栅化渲染,对于收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染,然后再根据所述光栅化渲染结果和/或所述光线跟踪渲染结果混合当前帧和历史帧的渲染结果,解决了Web端渲染真实感低的问题,以比较低的成本在Web端可达到高质量全局光照效果,提升了Web端渲染真实感。
图5是一个实施例中结合光线跟踪的Web端实时混合渲染装置的结构示意图。参见图5,实施例的结合光线跟踪的Web端实时混合渲染装置包括:
获取模块501,用于获取三维场景数据转换的纹理;
光栅化渲染模块502,用于针对收敛速度慢且渲染结果低频的部分,根据所述三维场景数据进行光栅化渲染;
光线跟踪渲染模块503,用于针对收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染;
混合模块504,用于根据所述光栅化渲染结果和/或所述光线跟踪渲染结果,混合当前帧和历史帧的渲染结果。
本实施例的结合光线跟踪的Web端实时混合渲染装置根据获得的根据三维场景数据转换的纹理,对于收敛速度慢且渲染结果低频的部分,根据所述纹理进行光栅化渲染,对于收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染,然后再根据所述光栅化渲染结果和/或所述光线跟踪渲染结果混合当前帧和历史帧的渲染结果,解决了Web端渲染真实感低的问题,以比较低的成本在Web端可达到高质量全局光照效果,提升了Web端渲染真实感。
基于如上所述的实施例,在一个实施例中还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述各实施例中的任意一种结合光线跟踪的Web端实时混合渲染方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程 ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM) 或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM (DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路 (Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态 RAM(RDRAM)等。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种结合光线跟踪的Web端实时混合渲染方法,其特征在于,包括步骤:
获取三维场景数据转换的纹理;
针对收敛速度慢且渲染结果低频的部分,根据所述纹理进行光栅化渲染;
针对收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染;
根据所述光栅化渲染结果和/或所述光线跟踪渲染结果,混合当前帧和历史帧的渲染结果。
2.如权利要求1所述的结合光线跟踪的Web端实时混合渲染方法,其特征在于,根据三维场景数据转换纹理包括:
对三维场景数据进行分析,获得几何结构数据和材质数据;
对所述几何结构数据进行BVH构建,获得BVH树;
序列化所述BVH树和所述材质数据,并将序列化结果转换成纹理。
3.如权利要求2所述的结合光线跟踪的Web端实时混合渲染方法,其特征在于,所述对所述几何结构数据进行BVH构建,获得BVH树包括:
根据三维场景数据中几何面片的包围盒进行空间划分,根据划分空间内的几何面片数与预设阈值的大小关系,设置节点,以此构建BVH树。
4.如权利要求2所述的结合光线跟踪的Web端实时混合渲染方法,其特征在于,所述序列化所述BVH树和所述材质数据包括:
计算BVH树每个节点的字节数,根据所述字节数序列化节点的节点信息,获得节点序列化结果;其中,针对非叶子节点,节点信息包括节点位置信息和几何面片的包围盒信息,针对叶子节点,节点信息包括节点位置信息和几何面片的属性信息;
序列化所述材质数据,获得材质序列化结果;
节点序列化结果和材质序列化结果组成序列化结果。
5.如权利要求4所述的结合光线跟踪的Web端实时混合渲染方法,其特征在于,所述计算BVH树每个节点的字节数包括:
针对非叶子节点,根据非叶子节点的左右孩子节点位置信息及左右孩子节点存储的包围盒信息计算非叶子节点的字节数;
针对叶子节点,根据叶子节点位置信息和存储的几何面片的属性信息计算叶子节点的字节数。
6.如权利要求2所述的结合光线跟踪的Web端实时混合渲染方法,其特征在于,所述序列化结果转换成纹理包括:
截取序列化结果中的一段字节作为元素值,以此构建纹理矩阵。
7.如权利要求2所述的结合光线跟踪的Web端实时混合渲染方法,其特征在于,所述根据所述纹理进行光线跟踪渲染包括:
将所述纹理反序列化成BVH树,采用stack-less求交方法对BVH树进行场景求交,以确定求交结果,根据求交结果进行光线跟踪渲染。
8.如权利要求1所述的结合光线跟踪的Web端实时混合渲染方法,其特征在于,所述根据所述纹理进行光栅化渲染包括:
将所述纹理反序列化成BVH树,根据BVH数获得所述三维场景数据,根据所述三维场景数据进行光栅化渲染。
9.一种结合光线跟踪的Web端实时混合渲染装置,其特征在于,所述装置包括:
获取模块,用于获取三维场景数据转换的纹理;
光栅化渲染模块,用于针对收敛速度慢且渲染结果低频的部分,根据所述三维场景数据进行光栅化渲染;
光线跟踪渲染模块,用于针对收敛速度快且渲染结果高频的部分,根据所述纹理进行光线跟踪渲染;
混合模块,用于根据所述光栅化渲染结果和/或所述光线跟踪渲染结果,混合当前帧和历史帧的渲染结果。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1~8任一项所述的结合光线跟踪的Web端实时混合渲染方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010101444.XA CN111340928B (zh) | 2020-02-19 | 2020-02-19 | 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 |
PCT/CN2020/094756 WO2021164150A1 (zh) | 2020-02-19 | 2020-06-05 | 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 |
US17/630,480 US11954790B2 (en) | 2020-02-19 | 2020-06-05 | Web-side real-time hybrid rendering method, device and computer equipment combined with ray tracing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010101444.XA CN111340928B (zh) | 2020-02-19 | 2020-02-19 | 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111340928A true CN111340928A (zh) | 2020-06-26 |
CN111340928B CN111340928B (zh) | 2022-05-03 |
Family
ID=71186975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010101444.XA Active CN111340928B (zh) | 2020-02-19 | 2020-02-19 | 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11954790B2 (zh) |
CN (1) | CN111340928B (zh) |
WO (1) | WO2021164150A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111784816A (zh) * | 2020-06-28 | 2020-10-16 | 山东大学 | 基于微表面理论的高频材质渲染方法及系统 |
CN112348955A (zh) * | 2020-11-30 | 2021-02-09 | 久瓴(江苏)数字智能科技有限公司 | 一种物体渲染方法 |
CN112634446A (zh) * | 2020-12-11 | 2021-04-09 | 北方信息控制研究院集团有限公司 | 一种基于时空一致性的多引擎三维场景数据转换方法 |
CN113178014A (zh) * | 2021-05-27 | 2021-07-27 | 网易(杭州)网络有限公司 | 场景模型渲染方法、装置、电子设备和存储介质 |
CN113255251A (zh) * | 2021-07-14 | 2021-08-13 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种真实感冰型的渲染方法 |
CN113648655A (zh) * | 2021-07-21 | 2021-11-16 | 网易(杭州)网络有限公司 | 虚拟模型的渲染方法、装置、存储介质和电子设备 |
CN113674389A (zh) * | 2021-10-25 | 2021-11-19 | 深圳须弥云图空间科技有限公司 | 场景渲染方法、装置、电子设备及存储介质 |
WO2022063260A1 (zh) * | 2020-09-25 | 2022-03-31 | 华为云计算技术有限公司 | 一种渲染方法、装置及设备 |
WO2022143367A1 (zh) * | 2020-12-28 | 2022-07-07 | 华为技术有限公司 | 一种图像渲染方法及其相关设备 |
CN115115766A (zh) * | 2022-05-17 | 2022-09-27 | 清华大学 | 多光谱场景数据生成方法及装置 |
CN115393499A (zh) * | 2022-08-11 | 2022-11-25 | 广州极点三维信息科技有限公司 | 一种3d实时渲染方法、系统及介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578505A (zh) * | 2022-09-28 | 2023-01-06 | 无锡梦途数字科技有限公司 | 一种基于物联网的三维场景渲染方法以及装置 |
CN117333598B (zh) * | 2023-10-23 | 2024-03-26 | 上海臻图信息技术有限公司 | 一种基于数字场景的3d模型渲染系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105551075A (zh) * | 2014-10-22 | 2016-05-04 | 三星电子株式会社 | 混合渲染设备和方法 |
CN107256574A (zh) * | 2017-05-31 | 2017-10-17 | 宝珑珠宝设计(北京)有限公司 | 一种真实3d实时混合渲染方法 |
CN107833268A (zh) * | 2012-11-02 | 2018-03-23 | 想象技术有限公司 | 用于图形渲染的几何图形处理方法和图形渲染系统 |
CN110717963A (zh) * | 2019-08-30 | 2020-01-21 | 杭州群核信息技术有限公司 | 一种基于WebGL的可替换模型的混合渲染展示方法、系统及存储介质 |
US20200051313A1 (en) * | 2018-08-10 | 2020-02-13 | Electronic Arts Inc. | Systems and methods for rendering reflections |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7973790B2 (en) * | 2005-08-11 | 2011-07-05 | Realtime Technology Ag | Method for hybrid rasterization and raytracing with consistent programmable shading |
US8379022B2 (en) * | 2008-09-26 | 2013-02-19 | Nvidia Corporation | Fragment shader for a hybrid raytracing system and method of operation |
CN102509332B (zh) * | 2011-10-19 | 2014-05-07 | 清华大学 | 流体模拟渲染方法及装置 |
US9984492B2 (en) * | 2015-04-02 | 2018-05-29 | Qualcomm Incorporated | Efficient hierarchy traversal in ray tracing applications |
US10559125B2 (en) * | 2015-12-02 | 2020-02-11 | Samsung Electronics Co., Ltd. | System and method of constructing bounding volume hierarchy tree |
US11157414B2 (en) * | 2018-08-10 | 2021-10-26 | Nvidia Corporation | Method for efficient grouping of cache requests for datapath scheduling |
US10867429B2 (en) * | 2018-08-10 | 2020-12-15 | Nvidia Corporation | Query-specific behavioral modification of tree traversal |
US10825230B2 (en) * | 2018-08-10 | 2020-11-03 | Nvidia Corporation | Watertight ray triangle intersection |
US11004252B2 (en) * | 2018-12-28 | 2021-05-11 | Intel Corporation | Real time ray tracing (RTRT)-based adaptive multi-frequency shading (AMFS) |
CN110414148B (zh) | 2019-07-30 | 2023-03-24 | 中北大学 | 基于WebGL的开放式BIM跨平台在线可视化方法 |
-
2020
- 2020-02-19 CN CN202010101444.XA patent/CN111340928B/zh active Active
- 2020-06-05 WO PCT/CN2020/094756 patent/WO2021164150A1/zh active Application Filing
- 2020-06-05 US US17/630,480 patent/US11954790B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107833268A (zh) * | 2012-11-02 | 2018-03-23 | 想象技术有限公司 | 用于图形渲染的几何图形处理方法和图形渲染系统 |
CN105551075A (zh) * | 2014-10-22 | 2016-05-04 | 三星电子株式会社 | 混合渲染设备和方法 |
CN107256574A (zh) * | 2017-05-31 | 2017-10-17 | 宝珑珠宝设计(北京)有限公司 | 一种真实3d实时混合渲染方法 |
US20200051313A1 (en) * | 2018-08-10 | 2020-02-13 | Electronic Arts Inc. | Systems and methods for rendering reflections |
CN110717963A (zh) * | 2019-08-30 | 2020-01-21 | 杭州群核信息技术有限公司 | 一种基于WebGL的可替换模型的混合渲染展示方法、系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
THALES LUIS SABINO 等: "A Hybrid GPU Rasterized and Ray Traced Rendering Pipeline for Real Time Rendering of Per Pixel Effects", 《INTERNATIONAL CONFERENCE ON ENTERTAINMENT COMPUTING 2012》 * |
谢智歌 等: "基于混合数据结构的实时GPU光线跟踪算法", 《计算机仿真》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111784816B (zh) * | 2020-06-28 | 2023-03-10 | 山东大学 | 基于微表面理论的高频材质渲染方法及系统 |
CN111784816A (zh) * | 2020-06-28 | 2020-10-16 | 山东大学 | 基于微表面理论的高频材质渲染方法及系统 |
WO2022063260A1 (zh) * | 2020-09-25 | 2022-03-31 | 华为云计算技术有限公司 | 一种渲染方法、装置及设备 |
CN112348955A (zh) * | 2020-11-30 | 2021-02-09 | 久瓴(江苏)数字智能科技有限公司 | 一种物体渲染方法 |
CN112348955B (zh) * | 2020-11-30 | 2022-06-17 | 久瓴(江苏)数字智能科技有限公司 | 一种物体渲染方法 |
CN112634446A (zh) * | 2020-12-11 | 2021-04-09 | 北方信息控制研究院集团有限公司 | 一种基于时空一致性的多引擎三维场景数据转换方法 |
CN112634446B (zh) * | 2020-12-11 | 2023-09-26 | 北方信息控制研究院集团有限公司 | 一种基于时空一致性的多引擎三维场景数据转换方法 |
WO2022143367A1 (zh) * | 2020-12-28 | 2022-07-07 | 华为技术有限公司 | 一种图像渲染方法及其相关设备 |
CN113178014A (zh) * | 2021-05-27 | 2021-07-27 | 网易(杭州)网络有限公司 | 场景模型渲染方法、装置、电子设备和存储介质 |
CN113255251A (zh) * | 2021-07-14 | 2021-08-13 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种真实感冰型的渲染方法 |
CN113255251B (zh) * | 2021-07-14 | 2021-09-17 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种真实感冰型的渲染方法 |
CN113648655A (zh) * | 2021-07-21 | 2021-11-16 | 网易(杭州)网络有限公司 | 虚拟模型的渲染方法、装置、存储介质和电子设备 |
CN113674389B (zh) * | 2021-10-25 | 2022-03-01 | 深圳须弥云图空间科技有限公司 | 场景渲染方法、装置、电子设备及存储介质 |
CN113674389A (zh) * | 2021-10-25 | 2021-11-19 | 深圳须弥云图空间科技有限公司 | 场景渲染方法、装置、电子设备及存储介质 |
CN115115766A (zh) * | 2022-05-17 | 2022-09-27 | 清华大学 | 多光谱场景数据生成方法及装置 |
CN115115766B (zh) * | 2022-05-17 | 2023-03-24 | 清华大学 | 多光谱场景数据生成方法及装置 |
CN115393499A (zh) * | 2022-08-11 | 2022-11-25 | 广州极点三维信息科技有限公司 | 一种3d实时渲染方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021164150A1 (zh) | 2021-08-26 |
US11954790B2 (en) | 2024-04-09 |
CN111340928B (zh) | 2022-05-03 |
US20220254093A1 (en) | 2022-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111340928B (zh) | 一种结合光线跟踪的Web端实时混合渲染方法、装置及计算机设备 | |
CN112270756B (zh) | 一种应用于bim模型文件的数据渲染方法 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US11024077B2 (en) | Global illumination calculation method and apparatus | |
US8115767B2 (en) | Computer graphics shadow volumes using hierarchical occlusion culling | |
US7940265B2 (en) | Multiple spacial indexes for dynamic scene management in graphics rendering | |
US7773087B2 (en) | Dynamically configuring and selecting multiple ray tracing intersection methods | |
EP1594091B1 (en) | System and method for providing an enhanced graphics pipeline | |
US11302056B2 (en) | Techniques for traversing data employed in ray tracing | |
CN113674389B (zh) | 场景渲染方法、装置、电子设备及存储介质 | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
KR20240001021A (ko) | 이미지 렌더링 방법, 장치, 전자 설비 및 저장 매체 | |
KR20080018404A (ko) | 게임 제작을 위한 배경 제작 프로그램을 저장한 컴퓨터에서읽을 수 있는 기록매체 | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
CN113034657B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
US10846908B2 (en) | Graphics processing apparatus based on hybrid GPU architecture | |
CN113034656A (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
US11270494B2 (en) | Shadow culling | |
CN115496845A (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN109960887B (zh) | 基于lod的模型制作方法及装置、存储介质及电子设备 | |
US11341708B2 (en) | Graphics processing | |
CN114155337A (zh) | 一种基于Unity平台大规模数字车间渲染系统及方法 | |
CN116993894B (zh) | 虚拟画面的生成方法、装置、设备、存储介质及程序产品 | |
WO2022135050A1 (zh) | 渲染方法、设备以及系统 | |
WO2023184139A1 (en) | Methods and systems for rendering three-dimensional scenes |
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 |