CN114494550B - 基于WebGPU的渲染方法、电子设备及存储介质 - Google Patents

基于WebGPU的渲染方法、电子设备及存储介质 Download PDF

Info

Publication number
CN114494550B
CN114494550B CN202111659104.XA CN202111659104A CN114494550B CN 114494550 B CN114494550 B CN 114494550B CN 202111659104 A CN202111659104 A CN 202111659104A CN 114494550 B CN114494550 B CN 114494550B
Authority
CN
China
Prior art keywords
model
depth values
roaming
space
object model
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
CN202111659104.XA
Other languages
English (en)
Other versions
CN114494550A (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.)
Beijing Chengshi Wanglin Information Technology Co Ltd
Original Assignee
Beijing Chengshi Wanglin Information Technology 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 Beijing Chengshi Wanglin Information Technology Co Ltd filed Critical Beijing Chengshi Wanglin Information Technology Co Ltd
Priority to CN202111659104.XA priority Critical patent/CN114494550B/zh
Publication of CN114494550A publication Critical patent/CN114494550A/zh
Application granted granted Critical
Publication of CN114494550B publication Critical patent/CN114494550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/04Architectural design, interior design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/61Scene description

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种基于WebGPU的渲染方法、电子终端及存储介质。本申请实施例提供的技术方案,在透视投影渲染过程中,针对当前视角可视范围内待渲染的至少一个物体模型,按照物体模型上各三角面和当前漫游点位之间的相对距离由远及近的顺序,为物体模型上各三角面分配深度值,由此可使近处和远处的三角面都能够分配到合理的深度值,避免因为分配不到合适的深度值而引起的z‑fighting现象,之后根据物体模型上各三角面的纹理数据和深度值,利用WebGPU可以高效、清晰地将物体模型渲染至图形用户界面上,提高模型渲染质量。

Description

基于WebGPU的渲染方法、电子设备及存储介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于WebGPU的渲染方法、电子终端及存储介质。
背景技术
目前,透视投影技术已应用于基于房屋三维空间的家装模拟场景中,通过透视投影技术可以将家装模拟场景中的墙面、家具、家电等物体的三维视图坐标变换为可以在屏幕上描绘出来的二维屏幕坐标,得到透视投影矩阵,进而由OpenGL或WebGL基于透视投影矩阵将这些物体渲染至家装界面中。在OpenGL或WebGL基于透视投影矩阵渲染一些距离视点较远的物体时,可能会出现深度冲突(z-fighting)现象,z-fighting现象是指同一物体或不同物体之间的两个三角面比较接近,因为无法得到足以区分这两个三角面的深度值而引起这两个三角面不断地切换前后顺序导致在界面上产生闪烁或抖动的现象,z-fighting现象会严重降低渲染质量。
发明内容
为解决或改善现有技术中存在的问题,本发明各实施例提供了一种基于WebGPU的渲染方法、电子终端及存储介质,用以在透视投影渲染过程避免出现z-fighting现象,提高基于透视投影的渲染质量。
在本申请的一个实施例中,提供了一种基于WebGPU的渲染方法,通过电子终端提供图形用户界面,图形用户界面上显示有与目标物理空间对应的三维实景空间。该方法包括:
根据用户在三维实景空间中漫游和/或扫视的视角变化信息,获取当前视角可视范围内待渲染的至少一个物体模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种,物体模型包括多个三角面,每个三角面具有纹理数据;
根据当前视角对应的当前漫游点位和至少一个物体模型在三维实景空间中的位姿信息,计算至少一个物体模型上各三角面和当前漫游点位之间的相对距离;
按照相对距离由远及近的顺序,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值;
根据至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将至少一个物体模型渲染至图形用户界面上。
在本申请的另一个实施例中,提供了另一种基于WebGPU的渲染方法,通过电子终端提供图形用户界面。该方法包括:
基于目标物理空间对应的点云数据,生成目标物理空间对应的实景空间模型,实景空间模型包括多个三角面;
根据实景空间模型中多个三角面的纹理数据,对实景空间模型进行分割,得到多个子模型;
根据用户在实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种;
根据目标子模型上各三角面的纹理数据,利用WebGPU将目标子模型渲染至图形用户界面上。
在本申请的又一个实施例中,提供了一种电子终端。该电子终端包括:存储器、处理器和显示屏;显示屏,用于提供图形用户界面,图形用户界面上显示有与目标物理空间对应的三维实景空间;存储器用于存储计算机程序,处理器与存储器耦合,用于执行计算机程序,以用于:
根据用户在三维实景空间中漫游和/或扫视的视角变化信息,获取当前视角可视范围内待渲染的至少一个物体模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种,物体模型包括多个三角面,每个三角面具有纹理数据;
根据当前视角对应的当前漫游点位和至少一个物体模型在三维实景空间中的位姿信息,计算至少一个物体模型上各三角面和当前漫游点位之间的相对距离;
按照相对距离由远及近的顺序,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值;
根据至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将至少一个物体模型渲染至图形用户界面上。
在本申请的再一个实施例中,提供了另一种电子终端。该电子终端包括:存储器、处理器和显示屏;显示屏,用于提供图形用户界面;
存储器用于存储计算机程序,处理器与存储器耦合,用于执行计算机程序,以用于:
基于目标物理空间对应的点云数据,生成目标物理空间对应的实景空间模型,实景空间模型包括多个三角面;
根据实景空间模型中多个三角面的纹理数据,对实景空间模型进行分割,得到多个子模型;
根据用户在实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种;
根据目标子模型上各三角面的纹理数据,利用WebGPU将目标子模型渲染至图形用户界面上。
在本申请的又一个实施例中,提供了一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现以上所述的基于WebGPU的渲染方法中的步骤。
本申请各实施例提供的技术方案,在透视投影渲染过程中,针对当前视角可视范围内待渲染的至少一个物体模型,按照物体模型上各三角面和当前漫游点位之间的相对距离由远及近的顺序,为物体模型上各三角面分配深度值,由此可使近处和远处的三角面都能够分配到合理的深度值,避免因为分配不到合适的深度值而引起的z-fighting现象,之后根据物体模型上各三角面的纹理数据和深度值,利用WebGPU可以高效、清晰地将物体模型渲染至图形用户界面上,提高模型渲染质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a示出了本申请一实施例提供的基于WebGPU的渲染方法的流程示意图;
图1b示出了本申请另一实施例提供的基于WebGPU的渲染方法的流程示意图;
图2示出了本申请再一实施例提供的基于WebGPU的渲染方法的流程示意图;
图3a示出了本申请一实施例提供的渲染装置的结构示意图;
图3b示出了本申请一实施例提供的电子终端的结构示意图;
图4a示出了本申请另一实施例提供的渲染装置的结构示意图
图4b示出了本申请另一实施例提供的电子终端的结构示意图。
具体实施方式
本申请提供了如下各实施例以解决或部分解决上述各方案存在的问题。为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。此外,下文描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1a示出了本申请一实施例提供的基于WebGPU的渲染方法的流程示意图。本申请实施例提供的基于WebGPU的渲染方法可以运行于电子终端,电子终端可以提供图形用户界面,且可以在图形用户界面上显示与目标物理空间对应的三维实景空间。其中,目标物理空间可以是任何能够提供基于其三维实景空间的线上服务的物理空间,例如可以是物理房屋空间、物理会展空间、共享办公空间等。以物理房屋空间为例,可以基于其三维实景空间提供在线看房服务、在线装修服务等;以物理会展空间为例,可以基于其三维实景空间提供在线浏览展品服务;以共享办公空间为例,可以基于其三维实景空间提供在线查看、预约或租用办公空间的服务等。
无论是哪种目标物理空间,用户都可以在其对应的三维实景空间进行漫游和/或扫视,以便用户使用基于该三维实景空间的在线服务。在用户在三维实景空间中漫游和/或扫视的过程中,需要能够跟随用户的视角变化实时将三维实景空间中的物体模型渲染至图形用户界面上。其中,目标物理空间及其应用场景的不同,三维实景空间中的物体模型会有所不同。以物理房屋空间通过其三维实景空间向用户提供在线装修服务为例,三维实景空间中的物体模型可以是房屋的墙体、窗户、天花板、地板、隔断、门等各种房屋结构模型,也可以是房屋内的床、桌子、椅子、电视、绿植等各种家具或家电模型。在本实施例中,采用基于透视投影的方式对物体模型进行渲染,并利用GPU硬件资源面向Web(浏览器)开放的应用程序接口(API),即WebGPU实现对物体模型的渲染,以充分借助于GPU硬件资源的优势,提高物体模型渲染的效率。
具体地,如图1a所示,本申请实施例提供的基于WebGPU的渲染方法包括:
101、根据用户在三维实景空间中漫游和/或扫视的视角变化信息,获取当前视角可视范围内待渲染的至少一个物体模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种,物体模型包括多个三角面,每个三角面具有纹理数据;
102、根据当前视角对应的当前漫游点位和至少一个物体模型在三维实景空间中的位姿信息,计算至少一个物体模型上各三角面和当前漫游点位之间的相对距离;
103、按照相对距离由远及近的顺序,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值;
104、根据至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将至少一个物体模型渲染至图形用户界面上。
在本实施例中,电子终端上展示有目标物理空间对应的三维实景空间,用户可以在三维实景空间中漫游和/或扫视。例如,用户可以触发三维实景空间上的漫游控件,发起对三维实景空间的漫游和/或扫视,该漫游和/或扫视的轨迹可以是默认的漫游轨迹,或者,也可以由用户触发漫游轨迹的设置操作,向用户展示漫游轨迹设置界面,响应用户在漫游轨迹设置界面上的设置操作,获取用户设置的漫游轨迹,并按照用户设置的漫游轨迹在三维实景空间中自动漫游。当然,在电子终端带有触控屏幕的情况下,用户也可以在触控屏幕上发起拖动或移动等触控操作,根据用户在触控屏幕上的触控操作的轨迹作为漫游轨迹,在三维实景空间中进行漫游。
在漫游和/或扫视的过程中,用户的视角会发生变化,电子终端可以实时获取用户的视角变化信息。具体地,在本实施例中,在生成三维实景空间中还会生成与该三维实景空间适配的虚拟相机,在本申请实施例中,将该虚拟相机称为漫游相机。在展示三维实景空间时,会同步加载该漫游相机,该漫游相机可以模拟用户在三维实景空间中进行漫游和/或扫视时的视角变化信息。其中,加载漫游相机是指加载漫游相机对应的运行文件,以启动漫游相机使之模拟用户在三维实景空间中进行漫游和/或扫视时的视角变化信息。其中,所述视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种。在本实施例中,漫游视角角度是指视角在漫游视线方向上能够覆盖到的空间范围,可简称为漫游视角覆盖范围,包括在水平方向上的覆盖范围和在垂直方向的覆盖范围。漫游视线方向变化信息主要是指在漫游过程中漫游视线方向发生的变化,其中,在不同漫游点位上的漫游视线方向可以发生变化,在同一漫游点位上漫游视线方向也可以发生变化;漫游视角角度变化信息是指在漫游过程中漫游视角角度发生的变化,其中,在不同漫游点位上的漫游视角角度可以发生变化,在同一漫游点位上漫游视角角度也可以发生变化。其中,不同漫游点位可以是相邻的漫游点位,也可以指非相邻的漫游点位。
在一可选实施例中,用户在三维实景空间中可能朝同一方向漫游,即漫游点位不断变化,但漫游视线方向和漫游视角角度不变。在另一可选实施例中,用户可在三维实景空间中同一漫游点位上扫视周围场景,即漫游视线方向和漫游视角角度不断变化,但漫游点位不变。在又一可选实施例中,用户在三维实景空间中在不同漫游点位之间漫游,同时在每个漫游点位上还会扫视周围场景,即漫游点位、漫游视线方向、漫游视角角度都变化。
在得到用户在三维实景空间中漫游和/或扫视的视角变化信息后,可以根据用户在三维实景空间中漫游和/或扫视的视角变化信息,确定三维实景空间中进入当前视角可视范围内的物体模型,即为待渲染至图形用户界面上的物体模型。其中,进入当前视角可视范围内的物体模型可能是一个或多个,即至少一个。然后对获取到的至少一个物体模型进行渲染。在对物体模型进行渲染时需要依据物体模型对应的模型数据,模型数据用于描述物体模型,是渲染出物体模型的基础数据。待渲染的物体模型通常包括多个顶点和多个三角面,多个三角面是由多个顶点形成的;另外,物体模型中的每个三角面需要使用相应纹理数据进行渲染,纹理数据为物体模型的三角面在渲染时所需赋予的材质和纹理贴图等。
在本实施例中,在获取到当前视角可视范围内待渲染的至少一个物体模型后,将至少一个物体模型渲染至图形用户界面上的方式包括:根据当前视角对应的当前漫游点位和至少一个物体模型在三维实景空间中的位姿信息,计算至少一个物体模型上各三角面和当前漫游点位之间的相对距离。需要说明的是,在构建三维实景空间时,除了要确定三维实景空间中包含的物体模型之外,还会确定各物体模型在三维实景空间中的位姿信息,本实施例中的位姿信息至少包括各物体模型在三维实景空间中的位置和姿态。不同物体模型在三维实景空间中的位置和姿态不完全相同,可产生不同的深度效果。在将物体模型渲染至图形用户界面的过程中,为了针对三维实景空间中的各物体模型渲染出与之适配的深度效果,在本实施例中,以物体模型上的三角面为粒度,可以为物体模型上各三角面分配不同的深度值,也简称为z值,通过该深度值模拟物体模型上各三角面在3D世界中距离用户当前视角的距离。在本实施例中,当前漫游点位一定程度上表示用户的当前视角。进一步,在本实施例中,为了给待渲染的物体模型上各三角面分配深度值,结合物体模型在三维实景空间中的位姿信息,计算物体模型上各三角面和当前视角对应的当前漫游点位之间的相对距离,该相对距离可以反映各三角面距离当前视角的距离远近。其中,三角面与当前漫游点位之间的相对距离越大,为该三角面分配到的深度值越大,反之,三角面与当前漫游点位之间的相对距离越小,为该三角面分配到的深度值越小。
进一步,在计算得到至少一个物体模型上各三角面和当前漫游点位之间的相对距离后,可以按照至少一个物体模型上各三角面和当前漫游点位之间的相对距离,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值。在本申请实施例中,电子终端的渲染器对深度值的划分是根据相机的近(near)和远(far)两个参数确定的,且所划分出的深度值的个数是有限的,一个深度值代表一个深度等级,本实施例对相机的近(near)和远(far)这两个参数以及基于这两个参数划分出深度值的过程不做限定,在本实施例中,以已经基于相机的近(near)和远(far)这两个参数划分出有限数量的深度值为基础。在传统方案中,会按照一个类似于1/x的下凸函数为当前视角内的各三角面分配深度值,x表示三角面距离当前漫游点的相对距离,该分配方式会优先保证靠近当前视角的地方的显示精度更高,而让远离当前视角的地方的显示精度较低,也就是说,靠近当前视角的地方可能一个三角面就被划分为一个深度值,从而让近处的三角面占用较多的深度值,但是因为电子终端支持的深度值的数量是有限的,所以会出现远处三角面没有足够深度值可用的情况,导致远离当前视角的地方可能是两个或两个以上的三角面之间共享同一深度值,但这会产生Z-fighting现象,会严重降低渲染效果。
针对上述问题,在本申请实施例中,具体是按照相对距离由远及近的顺序为至少一个物体模型上各三角面分配深度值,而不是像传统方案那样优先保证较近三角面的深度值精度,由此可以优先给距离当前视角较远的三角面分配深度值,能够保证距离当前视角较远处的三角面能够分配到精度上足以区分各三角面的深度值,从而避免由于远处三角面无法分配到足够精度的深度值(即深度值不足致使不同三角面共用相同深度值等)而产生的Z-fighting现象,解决Z-fighting现象导致的画面闪烁或抖动的问题。另外,本申请实施例提供的深度值分配方法也可以保证近处三角面能分配到合理的深度值,保证各三角面的深度效果。
在本申请实施例中,并不限定上述按照至少一个物体模型上各三角面和当前漫游点位之间的相对距离由远及近的顺序,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值的具体实施方式。在一可选实施例中,在按照相对距离由远及近的顺序,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值时,可以通过以下方式实现:按照相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值。其中,深度值均匀或近似均匀分配是指让分配给当前视角范围内由远及近的各三角面之间分配的深度值在当前视角范围内呈线性分布或近似线性分布的特点。近似均匀是指在均匀分配的基础上允许存在一定范围内的波动,例如波动范围可以是-D-+D之间,D是允许的波动范围。由此,在本申请实施例中,无论三角面距离当前视角是远还是近,各三角面分配到的深度值的精度是相同或相近的,而不再是近处三角面分配到的深度值的精度远高于远处三角面分配到的深度值的精度。
进一步,为了实现在当前视角可视范围内的三角面之间均匀分配或近似均匀分配深度值,在本申请一可选实施例中,按照相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值,可以通过以下方式实现:获取一上凸函数,利用上凸函数对已有用于深度值分配的下凸函数进行平衡处理,得到平衡后的深度值分配函数,平衡后的深度值分配函数是以相对距离为输入且以输出电子终端所支持的任一深度值为目标的函数;然后根据相对距离由远及近的顺序,依次将相对距离输入平衡后的深度值分配函数,以在当前视角可视范围内的各物体模型上各三角面之间均匀或近似均匀分配深度值,避免距离较远的物体出现闪烁或抖动的问题,以使渲染出的物体能够清晰、准确。需要说明的是,平衡后的深度值分配函数一方面能够按照相对距离由远及近的顺序为各三角面分配深度值,另一方面可以让深度值在各三角面之间的分布状态呈线性或近似线性。例如,可以把上凸函数表示为g(x),可选地,g(x)=lnx,假设下凸函数表示为f(x),可选地,f(x)=1/x,则可以利用g(x)对f(x)进行平衡处理得到平衡后的深度值分配函数表示为1/(lnx)。在此说明,这里给出的函数以及平衡处理方式均仅为示例,并不限于此。
在本实施例中,在为视角范围内的至少一个物体模型上各三角面分配好适配的深度值后,可以根据至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将视角范围内的至少一个物体模型渲染至图形用户界面上。WebGPU是基于Vulkan、Metal和Direct3D的GPU功能的抽象,是GPU硬件(显卡)向Web(浏览器)开放的低级应用程序API(接口),其包括图形和计算两方面的接口,设计方面更好的反映了GPU硬件技术的优势,能提供更好的处理性能,且支持多线程。通过WebGPU可借助GPU硬件资源的优势,采用多线程将视角范围内的至少一个物体模型渲染至图形用户界面上,可提高渲染效率。
在一可选实施例中,根据至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将视角范围内的至少一个物体模型渲染至图形用户界面上,可以通过以下方式实现:根据至少一个物体模型上各三角面的纹理数据和深度值,构建与每个物体模型适配的可计算着色器(compute shader),并确定每个可计算着色器的网格大小(grids)和线程组数量(numberthreads);根据网格大小和线程组数量,调用WebGPU运行与每个物体模型适配的可计算着色器,以按照至少一个物体模型之间的相对位置关系将至少一个物体模型渲染至图形用户界面上。
可计算着色器(Compute Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序,其主要有顶点着色器(Vertex Shader)和像素着色器(Pixel Shader)两种,顶点着色器主要负责顶点的几何关系等的运算,像素着色器主要负责片源颜色等的计算。由此可知,可计算着色器包括描述顶点的着色部分和描述三角面的着色部分,那么在得到至少一个物体模型的多个顶点和由多个顶点构成的三角面的纹理数据和深度值后,就可以构建与每个物体模型适配的可计算着色器。其中,网格大小和线程组数量与GPU计算能力有关,本申请实施例对此不做限定。
在本申请一可选实施例中,三维实景空间可以是对目标物理空间进行建模得到的三维空间模型,且目标物理空间是需要进行在线家装的房屋空间,在该情况下,至少一个物体模型可以是当前视角可视范围内待渲染的家具模型、家电模型和/或目标物理空间的局部结构模型,目标物理空间的局部结构模型可以是目标物理空间中的墙面模型、地面模型、窗户模型、门体模型、或吊顶模型等,本实施例对三维实景空间的种类、至少一个物体模型的种类及目标物理空间的局部结构模型的种类不作限定。
进一步,在一可选实施例中,三维实景空间是与目标物理空间对应的实景空间模型,该实景空间模型是基于目标物理空间的点云数据和实景图像构建而成的。相应地,如图1b所示,基于WebGPU的渲染方法在步骤101之前,还包括:
10a、利用激光雷达采集目标物理空间的点云数据,并利用摄像头拍摄目标物理空间的实景图像;在本实施例中,可以采用实景相机对目标物理空间进行实景拍摄得到实景图像,也可以采用普通相机对目标物理空间拍摄多张照片,然后对多张照片进行拼接得到实景图像。
10b、根据点云数据构建与目标物理空间对应的中间态模型,并利用实景图像对中间态模型进行贴图处理,得到实景空间模型;
10c、响应用户发起的展示操作,将实景空间模型渲染至图形用户界面上,得到三维实景空间。
上述步骤10a中,点云数据可以是利用激光雷达对目标物理空间进行扫描得到的,每个点云数据是RGBD数据(即融合RGB数据和深度(Depth)数据的图像数据),目标物理空间中的每一个点会被描述成一个RGBD数据,这些RGBD数据可用于构建目标物理空间的中间态模型,中间态模型是处于点云数据形态和实景空间模型形态之间的一个中间态的空间模型;实景图像可以是采用实景相机对目标物理空间进行实景拍摄得到,或者也可以采用普通相机拍摄多张照片,然后对多张照片进行拼接得到实景图像。
在一可选的实施例中,在得到目标物理空间的点云数据和目标物理空间的实景图像后,根据点云数据构建与目标物理空间对应的中间态模型,并利用实景空间对中间态模型进行贴图处理,可以得到实景空间模型。在用户发起空间模型展示操作时,响应用户发起的展示操作,将实景空间模型渲染至图形用户界面上,得到三维实景空间。该三维实景空间中包含多个漫游点位,用户可以在该三维实景空间中进行漫游和/或扫视,在漫游和/或扫视过程中,可将当前视角可视范围内的物体模型按照相应的深度效果渲染至图形用户界面上,以让用户产生身临其境般的漫游和/或扫视效果。关于漫游和/或扫视过程中渲染物体模型的详细实施方式可参见前述实施例,在此不再赘述。
在本申请实施例中,目标物理空间对应的实景空间模型是根据点云数据构建的,考虑到点云数据较多,如果直接以实景空间模型为粒度进行模型渲染,其计算量较大,渲染难度较大,在本申请实施例中,通过对实景空间模型进行分割,以分割出的子模型为粒度进行模型渲染,随着用户在实景空间模型中漫游和/或扫视的视角变化,动态渲染出现在当前视角可视范围内的子模型,可减少每次渲染的计算量,达到优化实景空间模型的渲染效果。具体地,在一可选实施例中,将实景空间模型渲染至图形用户界面上,可以通过以下方式实现:根据实景空间模型上各三角面的纹理数据,对实景空间模型进行分割,得到多个子模型,每个子模型包括多个三角面,每个三角面具有纹理数据;根据用户在实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型;根据目标子模型上各三角面的纹理数据,利用WebGPU将目标子模型渲染至图形用户界面上。
需要说明的是,激光雷达扫描的房屋数据是房屋外围轮廓的数据,考虑轮廓数据具有相同深度值,因此,在渲染各个目标子模型时,可以不用关注深度值的分配问题。在一可选实施例中,可以采用传统方案利用下凸函数对出现在当前视角可视范围内的各物体模型上的三角面进行深度值分配,进而结合目标子模型上各三角面的纹理数据和深度值,利用WebGPU将目标子模型渲染至图形用户界面上,但并不限于此。当然,也可以按照本申请上述实施例中提供的按照由三角面相对当前漫游点位的相对距离由远及近的顺序对物体模型上各三角面进行深度值分配的方式,对目标子模型上各三角面进行深度值的分配。
具体地,在一可选实施例中,根据目标子模型上各三角面的纹理数据,利用WebGPU将目标子模型渲染至图形用户界面上,可以通过以下方式实现:按照目标子模型上各三角面与当前视角对应的当前漫游点位的相对距离由远及近的顺序,从电子终端所支持的固定数量的深度值中为目标子模型上各三角面分配深度值;然后根据目标子模型上各三角面的纹理数据和深度值,构建与目标子模型上适配的可计算着色器,并确定可计算着色器的网格大小和线程组数量;根据网格大小和线程组数量,调用WebGPU运行与目标子模型适配的可计算着色器,将目标子模型渲染至图形用户界面上。
本申请各实施例提供的技术方案,在透视投影渲染过程中,针对当前视角可视范围内待渲染的至少一个物体模型,按照物体模型上各三角面和当前漫游点位之间的相对距离由远及近的顺序,为物体模型上各三角面分配深度值,由此可使近处和远处的三角面都能够分配到合理的深度值,避免因为分配不到合适的深度值而引起的z-fighting现象,之后根据物体模型上各三角面的纹理数据和深度值,利用WebGPU可以高效、清晰地将物体模型渲染至图形用户界面上,提高模型渲染质量。
除上述实施例之外,本申请实施例还单独提供一种针对基于点云数据构建的实景空间模型的渲染方法。图2示出了本申请一实施例提供的WebGPU的渲染方法的流程示意图。如图2所示,该方法包括:
201、基于目标物理空间对应的点云数据,生成目标物理空间对应的实景空间模型,实景空间模型包括多个三角面;
202、根据实景空间模型中多个三角面的纹理数据,对实景空间模型进行分割,得到多个子模型;
203、根据用户在实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种;
204、根据目标子模型上各三角面的纹理数据,利用WebGPU将目标子模型渲染至图形用户界面上。
进一步地,根据目标子模型上各三角面的纹理数据,利用WebGPU将目标子模型渲染至图形用户界面上,包括:
按照目标子模型上各三角面与当前视角对应的当前漫游点位由近及远的顺序,从电子终端所支持的固定数量的深度值中为目标子模型上各三角面分配深度值;
根据目标子模型上各三角面的纹理数据和深度值,构建与目标子模型上适配的可计算着色器,并确定可计算着色器的网格大小和线程组数量;
根据网格大小和线程组数量,调用WebGPU运行与目标子模型适配的可计算着色器,将目标子模型渲染至图形用户界面上。
关于本申请实施例中各步骤的详细实施方式可参见上文中相同或相应步骤的描述,在此不再赘述。
本申请实施例提供的技术方案,针对基于点云数据生成的实景空间模型,对实景空间模型进行分割,得到多个子模型,以子模型为粒度,跟随用户在实景空间模型中漫游和/或扫视的视角变化,动态实时地对出现在当前视角可见范围内的子模型进行模型渲染,可降低每次模型渲染的计算量,提高了实景空间模型的渲染效率。
图3a为本申请一实施例提供的渲染装置的结构示意图。该渲染装置可提供图形用户界面,且在图形用户界面上显示有与目标物理空间对应的三维实景空间,如图3a所示,该装置包括:获取模块31a、计算模块32a、分配模块33a和渲染模块34a。
获取模块31a,用于根据用户在所述三维实景空间中漫游和/或扫视的视角变化信息,获取当前视角可视范围内待渲染的至少一个物体模型,所述视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种,所述物体模型包括多个三角面,每个三角面具有纹理数据;
计算模块32a,用于根据当前视角对应的当前漫游点位和所述至少一个物体模型在所述三维实景空间中的位姿信息,计算所述至少一个物体模型上各三角面和所述当前漫游点位之间的相对距离;
分配模块33a,用于按照所述相对距离由远及近的顺序,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值;
渲染模块34a,用于根据所述至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将所述至少一个物体模型渲染至所述图形用户界面上。
进一步地,分配模块33a,在用于按照所述相对距离由远及近的顺序,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值时,具体用于:按照所述相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值。
进一步地,分配模块33a,在用于按照所述相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值时,具体用于:获取一上凸函数,利用所述上凸函数对已有用于深度值分配的下凸函数进行平衡处理,得到平衡后的深度值分配函数,所述平衡后的深度值分配函数是以所述相对距离为输入且以输出所述电子终端所支持的任一深度值为目标的函数;根据所述相对距离由远及近的顺序,依次将所述相对距离输入所述平衡后的深度值分配函数,以为所述至少一个物体模型上各三角面分配深度值。
进一步地,渲染模块34a,在用于根据所述至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将所述至少一个物体模型渲染至所述图形用户界面上时,具体用于:根据所述至少一个物体模型上各三角面的纹理数据和深度值,构建与每个物体模型适配的可计算着色器,并确定每个所述可计算着色器的网格大小和线程组数量;根据所述网格大小和线程组数量,调用WebGPU运行与每个物体模型适配的可计算着色器,以按照所述至少一个物体模型之间的相对位置关系将所述至少一个物体模型渲染至所述图形用户界面上。
进一步地,所述三维实景空间是对所述目标物理空间进行建模得到的三维空间模型,所述至少一个物体模型包括当前视角可视范围内待渲染的家具模型和/或所述目标物理空间的局部结构模型,所述目标物理空间的局部结构模型包括所述目标物理空间中的墙面模型、地面模型或吊顶模型。
进一步地,所述三维实景空间是与所述目标物理空间对应的实景空间模型,该装置还包括:获取模块,用于利用激光雷达采集目标物理空间的点云数据,并利用摄像头拍摄所述目标物理空间的实景图像;构建模块,用于根据所述点云数据构建与所述目标物理空间对应的中间态模型,并利用所述实景图像对所述中间态模型进行贴图处理,得到所述实景空间模型;相应地,渲染模块,还用于响应用户发起的展示操作,将所述实景空间模型渲染至所述图形用户界面上,得到所述三维实景空间。
进一步地,渲染模块,在用于将所述实景空间模型渲染至所述图形用户界面上时,具体用于:根据所述实景空间模型上各三角面的纹理数据,对所述实景空间模型进行分割,得到多个子模型,每个子模型包括多个三角面,每个三角面具有纹理数据;根据用户在所述实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型;根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上。
进一步地,渲染模块34a,在用于根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上时,具体用于:
按照所述目标子模型上各三角面与当前视角对应的当前漫游点位的相对距离由近及远的顺序,从所述电子终端所支持的固定数量的深度值中为所述目标子模型上各三角面分配深度值;根据所述目标子模型上各三角面的纹理数据和深度值,构建与所述目标子模型上适配的可计算着色器,并确定所述可计算着色器的网格大小和线程组数量;根据所述网格大小和线程组数量,调用WebGPU运行与所述目标子模型适配的可计算着色器,将所述目标子模型渲染至所述图形用户界面上。
关于本申请实施例中上述各模块或单元具体实现的原理以及各步骤的详细实施方式可参见上文中相同或相应步骤的描述,在此不再赘述。
图3b示出了本申请一实施例提供的电子终端的结构示意图。如图3b所示,该电子终端包括:存储器30a、处理器30b和显示屏30c;
显示屏30c,用于提供图形用户界面,图形用户界面上显示有与目标物理空间对应的三维实景空间;
存储器30a用于存储计算机程序,处理器30b与存储器30a耦合,用于执行计算机程序,以用于:
根据用户在三维实景空间中漫游和/或扫视的视角变化信息,获取当前视角可视范围内待渲染的至少一个物体模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种,物体模型包括多个三角面,每个三角面具有纹理数据;
根据当前视角对应的当前漫游点位和至少一个物体模型在三维实景空间中的位姿信息,计算至少一个物体模型上各三角面和当前漫游点位之间的相对距离;
按照相对距离由远及近的顺序,依次从电子终端所支持的固定数量的深度值中为至少一个物体模型上各三角面分配深度值;
根据至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将至少一个物体模型渲染至图形用户界面上。
进一步地,处理器30b在按照所述相对距离由远及近的顺序,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值时,具体用于:按照所述相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值。
进一步地,处理器30b在按照所述相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值时,具体用于:获取一上凸函数,利用所述上凸函数对已有用于深度值分配的下凸函数进行平衡处理,得到平衡后的深度值分配函数,所述平衡后的深度值分配函数是以所述相对距离为输入且以输出所述电子终端所支持的任一深度值为目标的函数;根据所述相对距离由远及近的顺序,依次将所述相对距离输入所述平衡后的深度值分配函数,以为所述至少一个物体模型上各三角面分配深度值。
进一步地,处理器30b在根据所述至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将所述至少一个物体模型渲染至所述图形用户界面上时,具体用于:根据所述至少一个物体模型上各三角面的纹理数据和深度值,构建与每个物体模型适配的可计算着色器,并确定每个所述可计算着色器的网格大小和线程组数量;根据所述网格大小和线程组数量,调用WebGPU运行与每个物体模型适配的可计算着色器,以按照所述至少一个物体模型之间的相对位置关系将所述至少一个物体模型渲染至所述图形用户界面上。
进一步地,所述三维实景空间是对所述目标物理空间进行建模得到的三维空间模型,所述至少一个物体模型包括当前视角可视范围内待渲染的家具模型和/或所述目标物理空间的局部结构模型,所述目标物理空间的局部结构模型包括所述目标物理空间中的墙面模型、地面模型或吊顶模型。
进一步地,处理器30b在所述三维实景空间是与所述目标物理空间对应的实景空间模型时,还用于:利用激光雷达采集目标物理空间的点云数据,并利用摄像头拍摄所述目标物理空间的实景图像;根据所述点云数据构建与所述目标物理空间对应的中间态模型,并利用所述实景图像对所述中间态模型进行贴图处理,得到所述实景空间模型;以及响应用户发起的展示操作,将所述实景空间模型渲染至所述图形用户界面上,得到所述三维实景空间。
进一步地,处理器30b在将所述实景空间模型渲染至所述图形用户界面上时,具体用于:根据所述实景空间模型上各三角面的纹理数据,对所述实景空间模型进行分割,得到多个子模型,每个子模型包括多个三角面,每个三角面具有纹理数据;根据用户在所述实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型;根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上。
进一步地,处理器30b在根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上时,具体用于:按照所述目标子模型上各三角面与当前视角对应的当前漫游点位的相对距离由近及远的顺序,从所述电子终端所支持的固定数量的深度值中为所述目标子模型上各三角面分配深度值;根据所述目标子模型上各三角面的纹理数据和深度值,构建与所述目标子模型上适配的可计算着色器,并确定所述可计算着色器的网格大小和线程组数量;根据所述网格大小和线程组数量,调用WebGPU运行与所述目标子模型适配的可计算着色器,将所述目标子模型渲染至所述图形用户界面上。
进一步,如图3b所示,该电子终端还包括:通信组件30d、电源组件30e、音频组件30f等其它组件。图3b中仅示意性给出部分组件,并不意味着电子终端只包括图3b所示组件。本实施例的电子终端可以实现为台式电脑、笔记本电脑、智能手机或IOT设备等终端设备。
关于本申请实施例中上述各模块或单元具体实现的原理以及各步骤的详细实施方式可参见上文中相同或相应步骤的描述,在此不再赘述。
图4a为本申请一实施例提供的另一种渲染装置的结构示意图。该渲染装置可提供图形用户界面,如图4a所示,该装置包括:生成模块41a、分割模块42a、获取模块43a和渲染模块44a。
生成模块41a,用于基于目标物理空间对应的点云数据,生成目标物理空间对应的实景空间模型,实景空间模型包括多个三角面;
分割模块42a,用于根据实景空间模型中多个三角面的纹理数据,对实景空间模型进行分割,得到多个子模型;
获取模块43a,用于根据用户在实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种;
渲染模块44a,用于根据目标子模型上各三角面的纹理数据,利用WebGPU将目标子模型渲染至图形用户界面上。
关于本申请实施例中上述各模块或单元具体实现的原理以及各步骤的详细实施方式可参见上文中相同或相应步骤的描述,在此不再赘述。
图4b示出了本申请一实施例提供的电子终端的结构示意图。如图4b所示,该电子终端包括:存储器40a、处理器40b和显示屏40c;
显示屏40c,用于提供图形用户界面;
存储器40a用于存储计算机程序,处理器40b与存储器40c耦合,用于执行计算机程序,以用于:
基于目标物理空间对应的点云数据,生成目标物理空间对应的实景空间模型,实景空间模型包括多个三角面;
根据实景空间模型中多个三角面的纹理数据,对实景空间模型进行分割,得到多个子模型;
根据用户在实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型,视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种;
根据目标子模型上各三角面的纹理数据,利用WebGPU将目标子模型渲染至图形用户界面上。
进一步,如图4b所示,该电子终端还包括:通信组件40d、电源组件40e、音频组件40f等其它组件。图4b中仅示意性给出部分组件,并不意味着电子终端只包括图4b所示组件。本实施例的电子终端可以实现为台式电脑、笔记本电脑、智能手机或IOT设备等终端设备。
关于本申请实施例中上述各模块或单元具体实现的原理以及各步骤的详细实施方式可参见上文中相同或相应步骤的描述,在此不再赘述。
本申请一实施例还提供了存储有计算机程序的计算机可读存储介质,其特征在于,当计算机程序被处理器执行时,致使处理器实现以上所述方法中的步骤,此处不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程坐标确定设备的处理器以产生一个机器,使得通过计算机或其他可编程坐标确定设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程坐标确定设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程坐标确定设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种基于WebGPU的渲染方法,通过电子终端提供图形用户界面,所述图形用户界面上显示有与目标物理空间对应的三维实景空间,其特征在于,所述方法包括:
根据用户在所述三维实景空间中漫游和/或扫视的视角变化信息,获取当前视角可视范围内待渲染的至少一个物体模型,所述视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种,所述物体模型包括多个三角面,每个三角面具有纹理数据;
根据当前视角对应的当前漫游点位和所述至少一个物体模型在所述三维实景空间中的位姿信息,计算所述至少一个物体模型上各三角面和所述当前漫游点位之间的相对距离;
按照所述相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值;
根据所述至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将所述至少一个物体模型渲染至所述图形用户界面上;
其中,按照所述相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值,包括:
获取一上凸函数,利用所述上凸函数对已有用于深度值分配的下凸函数进行平衡处理,得到平衡后的深度值分配函数,所述平衡后的深度值分配函数是以所述相对距离为输入且以输出所述电子终端所支持的任一深度值为目标的函数;
根据所述相对距离由远及近的顺序,依次将所述相对距离输入所述平衡后的深度值分配函数,以为所述至少一个物体模型上各三角面分配深度值。
2.根据权利要求1所述的方法,其特征在于,根据所述至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将所述至少一个物体模型渲染至所述图形用户界面上,包括:
根据所述至少一个物体模型上各三角面的纹理数据和深度值,构建与每个物体模型适配的可计算着色器,并确定每个所述可计算着色器的网格大小和线程组数量;
根据所述网格大小和线程组数量,调用WebGPU运行与每个物体模型适配的可计算着色器,以按照所述至少一个物体模型之间的相对位置关系将所述至少一个物体模型渲染至所述图形用户界面上。
3.根据权利要求1所述的方法,其特征在于,所述三维实景空间是对所述目标物理空间进行建模得到的三维空间模型,所述至少一个物体模型包括当前视角可视范围内待渲染的家具模型和/或所述目标物理空间的局部结构模型,所述目标物理空间的局部结构模型包括所述目标物理空间中的墙面模型、地面模型或吊顶模型。
4.根据权利要求1所述的方法,其特征在于,所述三维实景空间是与所述目标物理空间对应的实景空间模型,所述方法还包括:
利用激光雷达采集目标物理空间的点云数据,并利用摄像头拍摄所述目标物理空间的实景图像;
根据所述点云数据构建与所述目标物理空间对应的中间态模型,并利用所述实景图像对所述中间态模型进行贴图处理,得到所述实景空间模型;以及
响应用户发起的展示操作,将所述实景空间模型渲染至所述图形用户界面上,得到所述三维实景空间。
5.根据权利要求4所述的方法,其特征在于,将所述实景空间模型渲染至所述图形用户界面上,包括:
根据所述实景空间模型上各三角面的纹理数据,对所述实景空间模型进行分割,得到多个子模型,每个子模型包括多个三角面,每个三角面具有纹理数据;
根据用户在所述实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型;
根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上。
6.根据权利要求5所述的方法,其特征在于,根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上,包括:
按照所述目标子模型上各三角面与当前视角对应的当前漫游点位的相对距离由近及远的顺序,从所述电子终端所支持的固定数量的深度值中为所述目标子模型上各三角面分配深度值;
根据所述目标子模型上各三角面的纹理数据和深度值,构建与所述目标子模型上适配的可计算着色器,并确定所述可计算着色器的网格大小和线程组数量;
根据所述网格大小和线程组数量,调用WebGPU运行与所述目标子模型适配的可计算着色器,将所述目标子模型渲染至所述图形用户界面上。
7.一种基于WebGPU的渲染方法,通过电子终端提供图形用户界面,其特征在于,所述方法包括:
基于目标物理空间对应的点云数据,生成所述目标物理空间对应的实景空间模型,所述实景空间模型包括多个三角面;
根据所述实景空间模型中多个三角面的纹理数据,对所述实景空间模型进行分割,得到多个子模型;
根据用户在所述实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型,所述视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种;
按照所述目标子模型上各三角面与当前视角对应的当前漫游点位由近及远的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述目标子模型上各三角面分配深度值;
根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上;
其中,按照所述目标子模型上各三角面与当前视角对应的当前漫游点位由近及远的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述目标子模型上各三角面分配深度值,包括:
获取一上凸函数,利用所述上凸函数对已有用于深度值分配的下凸函数进行平衡处理,得到平衡后的深度值分配函数,所述平衡后的深度值分配函数是以所述目标子模型上各三角面与当前视角对应的当前漫游点位之间的相对距离为输入且以输出所述电子终端所支持的任一深度值为目标的函数;
根据所述相对距离由远及近的顺序,依次将所述相对距离输入所述平衡后的深度值分配函数,以为所述至少一个目标子模型上各三角面分配深度值。
8.根据权利要求7所述的方法,其特征在于,根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上,还包括:
根据所述目标子模型上各三角面的纹理数据和深度值,构建与所述目标子模型上适配的可计算着色器,并确定所述可计算着色器的网格大小和线程组数量;
根据所述网格大小和线程组数量,调用WebGPU运行与所述目标子模型适配的可计算着色器,将所述目标子模型渲染至所述图形用户界面上。
9.一种电子终端,其特征在于,包括:存储器、处理器和显示屏;
所述显示屏,用于提供图形用户界面,所述图形用户界面上显示有与目标物理空间对应的三维实景空间;
所述存储器用于存储计算机程序,所述处理器与所述存储器耦合,用于执行所述计算机程序,以用于:
根据用户在所述三维实景空间中漫游和/或扫视的视角变化信息,获取当前视角可视范围内待渲染的至少一个物体模型,所述视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种,所述物体模型包括多个三角面,每个三角面具有纹理数据;
根据当前视角对应的当前漫游点位和所述至少一个物体模型在所述三维实景空间中的位姿信息,计算所述至少一个物体模型上各三角面和当前漫游点位之间的相对距离;
按照所述相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值;
根据所述至少一个物体模型上各三角面的纹理数据和深度值,利用WebGPU将所述至少一个物体模型渲染至所述图形用户界面上;
其中,按照所述相对距离由远及近的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述至少一个物体模型上各三角面分配深度值,包括:
获取一上凸函数,利用所述上凸函数对已有用于深度值分配的下凸函数进行平衡处理,得到平衡后的深度值分配函数,所述平衡后的深度值分配函数是以所述相对距离为输入且以输出所述电子终端所支持的任一深度值为目标的函数;
根据所述相对距离由远及近的顺序,依次将所述相对距离输入所述平衡后的深度值分配函数,以为所述至少一个物体模型上各三角面分配深度值。
10.一种电子终端,其特征在于,包括:存储器、处理器和显示屏;所述显示屏,用于提供图形用户界面;
所述存储器用于存储计算机程序,所述处理器与所述存储器耦合,用于执行所述计算机程序,以用于:
基于目标物理空间对应的点云数据,生成所述目标物理空间对应的实景空间模型,所述实景空间模型包括多个三角面;
根据所述实景空间模型中多个三角面的纹理数据,对所述实景空间模型进行分割,得到多个子模型;
根据用户在所述实景空间模型中漫游和/或扫视的视角变化信息,获取当前视角可见范围内的子模型作为待渲染的目标子模型,所述视角变化信息包括漫游点位变化信息、漫游视线方向变化信息、漫游视角角度变化信息中的至少一种;
按照所述目标子模型上各三角面与当前视角对应的当前漫游点位由近及远的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述目标子模型上各三角面分配深度值;
根据所述目标子模型上各三角面的纹理数据,利用WebGPU将所述目标子模型渲染至所述图形用户界面上;
其中,按照所述目标子模型上各三角面与当前视角对应的当前漫游点位由近及远的顺序,以深度值均匀或近似均匀分配为目标,依次从所述电子终端所支持的固定数量的深度值中为所述目标子模型上各三角面分配深度值,包括:
获取一上凸函数,利用所述上凸函数对已有用于深度值分配的下凸函数进行平衡处理,得到平衡后的深度值分配函数,所述平衡后的深度值分配函数是以所述目标子模型上各三角面与当前视角对应的当前漫游点位之间的相对距离为输入且以输出所述电子终端所支持的任一深度值为目标的函数;
根据所述相对距离由远及近的顺序,依次将所述相对距离输入所述平衡后的深度值分配函数,以为所述至少一个目标子模型上各三角面分配深度值。
11.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求1-8任一项所述方法中的步骤。
CN202111659104.XA 2021-12-30 2021-12-30 基于WebGPU的渲染方法、电子设备及存储介质 Active CN114494550B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111659104.XA CN114494550B (zh) 2021-12-30 2021-12-30 基于WebGPU的渲染方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111659104.XA CN114494550B (zh) 2021-12-30 2021-12-30 基于WebGPU的渲染方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114494550A CN114494550A (zh) 2022-05-13
CN114494550B true CN114494550B (zh) 2022-11-22

Family

ID=81508500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111659104.XA Active CN114494550B (zh) 2021-12-30 2021-12-30 基于WebGPU的渲染方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114494550B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115482325B (zh) * 2022-09-29 2023-10-31 北京百度网讯科技有限公司 画面渲染方法、装置、系统、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101661628A (zh) * 2008-08-28 2010-03-03 中国科学院自动化研究所 植物场景的快速渲染及漫游方法
CN101901501A (zh) * 2010-07-22 2010-12-01 首都师范大学 一种生成激光彩色云图的方法
CN102737401A (zh) * 2011-05-06 2012-10-17 新奥特(北京)视频技术有限公司 一种图形渲染中光栅化阶段的三角片填充方法
CN104463948A (zh) * 2014-09-22 2015-03-25 北京大学 三维虚拟现实系统与地理信息系统的无缝可视化方法
CN105389850A (zh) * 2015-11-03 2016-03-09 北京大学(天津滨海)新一代信息技术研究院 一种大规模三维场景的新型可见性生成方法
CN106570929A (zh) * 2016-11-07 2017-04-19 北京大学(天津滨海)新代信息技术研究院 一种动态体积云的构建与绘制方法
CN110689621A (zh) * 2019-05-28 2020-01-14 贝壳技术有限公司 装修前后房屋三维模型同屏显示的方法、装置及系统
CN113643414A (zh) * 2020-05-11 2021-11-12 北京达佳互联信息技术有限公司 一种三维图像生成方法、装置、电子设备及存储介质
CN113797531A (zh) * 2021-08-30 2021-12-17 网易(杭州)网络有限公司 遮挡剔除实现方法、装置、计算机设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101840585A (zh) * 2009-03-18 2010-09-22 乐大山 一种将三维对象渲染为二维图像的方法
EP2251832A1 (en) * 2009-05-14 2010-11-17 Alcatel Lucent Method for generating a 3-dimensional model of an object
CN102663800A (zh) * 2012-04-26 2012-09-12 北京师范大学 一种顾及城市意象的城市建筑综合与渲染的方法
CN104318605B (zh) * 2014-10-23 2017-03-22 南京大学 矢量实线与三维地形的并行贴合渲染方法
CN110335324A (zh) * 2019-05-22 2019-10-15 湖南大学 一种基于rgb三通道多路合成的灰度图像着色方法及系统
CN113538689A (zh) * 2021-06-16 2021-10-22 杭州电子科技大学 一种基于神经网络的特征融合的三维模型网格简化方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101661628A (zh) * 2008-08-28 2010-03-03 中国科学院自动化研究所 植物场景的快速渲染及漫游方法
CN101901501A (zh) * 2010-07-22 2010-12-01 首都师范大学 一种生成激光彩色云图的方法
CN102737401A (zh) * 2011-05-06 2012-10-17 新奥特(北京)视频技术有限公司 一种图形渲染中光栅化阶段的三角片填充方法
CN104463948A (zh) * 2014-09-22 2015-03-25 北京大学 三维虚拟现实系统与地理信息系统的无缝可视化方法
CN105389850A (zh) * 2015-11-03 2016-03-09 北京大学(天津滨海)新一代信息技术研究院 一种大规模三维场景的新型可见性生成方法
CN106570929A (zh) * 2016-11-07 2017-04-19 北京大学(天津滨海)新代信息技术研究院 一种动态体积云的构建与绘制方法
CN110689621A (zh) * 2019-05-28 2020-01-14 贝壳技术有限公司 装修前后房屋三维模型同屏显示的方法、装置及系统
CN113643414A (zh) * 2020-05-11 2021-11-12 北京达佳互联信息技术有限公司 一种三维图像生成方法、装置、电子设备及存储介质
CN113797531A (zh) * 2021-08-30 2021-12-17 网易(杭州)网络有限公司 遮挡剔除实现方法、装置、计算机设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Image-Based Rendering for Large-Scale Outdoor Scenes With Fusion of Monocular and Multi-View Stereo Depth;Shaohua Liu等;《IEEE》;20200623;全文 *
沉浸式地下实验室三维数据可视化系统研究;侯佳鑫等;《系统仿真学报》;20180718;全文 *
用于光场显示的多视点内容处理方法;田西雨;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20190815;全文 *

Also Published As

Publication number Publication date
CN114494550A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
Kähler et al. Very high frame rate volumetric integration of depth images on mobile devices
KR102047615B1 (ko) 입자 시스템을 위한 처리 방법 및 장치
Schütz et al. Real-time continuous level of detail rendering of point clouds
EP1547019B1 (en) Method and apparatus for rendering threedimensional objects
US8436857B2 (en) System and method for applying level of detail schemes
CN107274476B (zh) 一种阴影图的生成方法及装置
CN110168614B (zh) 用于生成混合现实中的动态虚拟内容的设备和方法
CN112755535B (zh) 光照渲染方法、装置、存储介质及计算机设备
CN101276479B (zh) 图像处理方法和系统
JP5873672B2 (ja) 仮想環境のポイントにおいて受光された光の量の推定方法
JP7432005B2 (ja) 二次元画像の三次元化方法、装置、機器及びコンピュータプログラム
CN112184873B (zh) 分形图形创建方法、装置、电子设备和存储介质
US10846908B2 (en) Graphics processing apparatus based on hybrid GPU architecture
CN112288873A (zh) 渲染方法和装置、计算机可读存储介质、电子设备
WO2022063260A1 (zh) 一种渲染方法、装置及设备
CN114494550B (zh) 基于WebGPU的渲染方法、电子设备及存储介质
US9235663B2 (en) Method for computing the quantity of light received by a participating media, and corresponding device
US9082218B2 (en) Method for manipulating three-dimensional voxel data for on-screen visual
US20210082173A1 (en) Methods and Systems for Volumetric Reconstruction Based on a Confidence Field
CN112802170A (zh) 光照图像生成方法、装置、设备和介质
EP3748585A1 (en) Method for fast rendering of very large 3d models
KR20230013099A (ko) 실시간 깊이 맵을 사용한 지오메트리 인식 증강 현실 효과
US20040181373A1 (en) Visual simulation of dynamic moving bodies
Chhugani et al. Budget sampling of parametric surface patches
CN116912425A (zh) 基于三维重建的可视化场景搭建方法以及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant