CN116630503A - 数字场景3d模型渲染系统及方法 - Google Patents
数字场景3d模型渲染系统及方法 Download PDFInfo
- Publication number
- CN116630503A CN116630503A CN202310594927.1A CN202310594927A CN116630503A CN 116630503 A CN116630503 A CN 116630503A CN 202310594927 A CN202310594927 A CN 202310594927A CN 116630503 A CN116630503 A CN 116630503A
- Authority
- CN
- China
- Prior art keywords
- model
- rendering
- entity
- digital scene
- entities
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 323
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000005538 encapsulation Methods 0.000 claims abstract description 25
- 230000000007 visual effect Effects 0.000 claims abstract description 24
- 238000012163 sequencing technique Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 67
- 238000004806 packaging method and process Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 22
- 238000012856 packing Methods 0.000 claims description 14
- 239000012634 fragment Substances 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 description 12
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- BSYNRYMUTXBXSQ-UHFFFAOYSA-N Aspirin Chemical compound CC(=O)OC1=CC=CC=C1C(O)=O BSYNRYMUTXBXSQ-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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/05—Geographic models
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种数字场景3D模型渲染系统及方法,涉及模型渲染技术领域。所述方法是先针对各个3D模型实体,基于WebGL封装得到对应的渲染模块,然后将所有渲染模块封装为渲染用js文件,再然后基于当前摄像机位置及视角和实体位置,确定当前待渲染的目标3D模型实体,再然后对目标3D模型实体进行相对摄像机的由近及远排序,以及基于排序结果判断在当前摄像机视角下相对在前实体是否会完全遮挡相对在后实体,并在会时直接将空白图像作为相对在后实体的渲染图像,最后按照从后至前顺序依次叠加在实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果,如此可加快数字场景3D模型渲染速度,利于提升用户体验。
Description
技术领域
本发明属于模型渲染技术领域,具体涉及一种数字场景3D模型渲染系统及方法。
背景技术
3D(英文全称为3-Dimension,中文翻译为三维)模型是物体的多边形表示,通常用计算机或者其它视频设备进行显示(显示的物体可以是现实世界的实体,也可以是虚构的物体,任何物理自然界存在的东西都可以用3D模型来表示)。目前,3D模型已经用于各种不同的领域:在医疗行业使用它们制作器官的精确模型;在电影行业将它们用于活动的人物、物体以及现实电影;在视频游戏产业将它们作为计算机与视频游戏中的资源;在科学领域将它们作为化合物的精确模型;在建筑业将它们用来展示提议的建筑物或者风景表现;在工程界将它们用于设计新设备、交通工具、结构以及其它应用领域;在最近几十年,地球科学领域开始构建三维地质模型。
数字场景是一种数字技术的应用形式,可以用来展示和描述各种场景,例如城市、建筑、房屋、室内和园林等。数字场景的内置数据和功能可以让人们更加真实地了解和探索各种场景。目前,数字场景的运用已经成为设计、建筑、旅游和教育等领域的常见工具,在各个领域中都有着广泛的应用。
随着对数字场景的真实性要求不断提高,需要在数字场景中布置越来越多且越精细的3D模型,但是这样又会造成数字场景3D模型渲染速度变得越来越慢,进而导致用户在等待较长时间后才能得到渲染结果,影响用户体验,因此如何提供一种能够快速完成数字场景3D模型渲染任务的新方案,是本领域技术人员亟需研究的课题。
发明内容
本发明的目的是提供一种数字场景3D模型渲染方法、系统、计算机设备及计算机可读存储介质,用以解决现有3D模型渲染方案在应用于数字场景时存在渲染速度慢和所需等待时间长的问题。
为了实现上述目的,本发明采用以下技术方案:
第一方面,提供了一种数字场景3D模型渲染方法,包括:
获取为数字场景制作的多个3D模型实体的模型数据;
针对在所述多个3D模型实体中的各个3D模型实体,基于3D绘图协议WebGL封装得到对应的渲染模块,其中,所述渲染模块用于对输入的且对应实体的模型数据进行渲染以得到对应实体的渲染图像;
将所有所述渲染模块封装为一个js类方法,并将所述js类方法打包压缩为一个渲染用js文件;
根据人机交互操作结果,确定在所述数字场景中的当前摄像机位置和当前摄像机视角;
根据所述当前摄像机位置、所述当前摄像机视角、视锥体垂直视野角度、视锥体长宽比、近端面距离和远端面距离,确定在所述数字场景中的当前摄像机视野空间,其中,所述视锥体垂直视野角度、所述视锥体长宽比、所述近端面距离和所述远端面距离分别为所述透视摄像机构造函数的必设参数;
根据所述多个3D模型实体在所述数字场景中的当前位置,确定位于所述当前摄像机视野空间内的至少一个3D模型实体;
根据所述当前摄像机位置和所述至少一个3D模型实体在所述数字场景中的当前位置,对所述至少一个3D模型实体进行相对摄像机的由近及远排序,得到一个3D模型实体序列;
针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像;
按照从后至前顺序依次叠加在所述3D模型实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果。
基于上述发明内容,提供了一种基于3D绘图协议WebGL快速完成数字场景3D模型渲染任务的新方案,即先针对各个3D模型实体,基于WebGL封装得到对应的渲染模块,然后将所有渲染模块封装为渲染用js文件,再然后基于当前摄像机位置及视角和实体位置,确定当前待渲染的目标3D模型实体,再然后对目标3D模型实体进行相对摄像机的由近及远排序,以及基于排序结果判断在当前摄像机视角下相对在前实体是否会完全遮挡相对在后实体,并在会时直接将空白图像作为相对在后实体的渲染图像,最后按照从后至前顺序依次叠加在实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果,如此通过有选择性地对部分3D模型进行渲染,可以有效节省渲染所需计算资源和时间,加快数字场景3D模型渲染速度,使用户能够及时得到渲染结果,利于提升用户体验,便于实际应用和推广。
在一个可能的设计中,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数和视角变化操作函数整体封装而得,其中,所述渲染函数采用基于顶点着色器和片元着色器结合封装的GLSL着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数。
在一个可能的设计中,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数、视角变化操作函数和html文本整体封装而得,其中,所述渲染函数采用基于顶点着色器和片元着色器结合封装的GLSL着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数,所述html文本包含有显示坐标信息和待显示文字信息。
在一个可能的设计中,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数、视角变化操作函数和抗锯齿方式整体封装而得,其中,所述渲染函数采用基于顶点着色器和片元着色器结合封装的GLSL着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数,所述抗锯齿方式用于使用WebGL纹理来对3D模型的纹理坐标进行设置,以便通过对纹理坐标的设置来减少在渲染图像中的锯齿现象。
在一个可能的设计中,针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,包括:
创建与所述至少一个3D模型实体一一对应的至少一个进程;
针对在所述3D模型实体序列中的各个3D模型实体,在对应的进程中:若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像。
在一个可能的设计中,针对在所述3D模型实体序列中的某个非首3D模型实体,先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,包括:
将在所述3D模型实体序列中的且排列在所述某个非首3D模型实体之前的所有3D模型实体,作为所述某个非首3D模型实体的所有在前3D模型实体;
针对在所述所有在前3D模型实体中的各个在前3D模型实体,根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域;
针对所述某个非首3D模型实体,同样根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第二远端面投影区域;
对所有所述第一远端面投影区域进行联合处理,得到第三远端面投影区域;
判断所述第二远端面投影区域是否全部位于所述第三远端面投影区域中,若是,则判定在所述当前摄像机视角下所述某个非首3D模型实体的所有在前3D模型实体会完全遮挡所述某个非首3D模型实体,否则判定在所述当前摄像机视角下所述某个非首3D模型实体的所有在前3D模型实体不会完全遮挡所述某个非首3D模型实体。
在一个可能的设计中,针对在所述所有在前3D模型实体中的各个在前3D模型实体,根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域,包括:
针对在所述所有在前3D模型实体中的各个在前3D模型实体,先根据对应的模型数据确定对应的预设透明度,若发现对应的预设透明度为零,则进一步根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域。
第二方面,提供了一种数字场景3D模型渲染系统,包括有模型数据获取单元、渲染模块封装单元、渲染用文件打包单元、位置视角确定单元、视野空间确定单元、目标实体确定单元、目标实体排序单元、目标实体渲染单元和渲染图像叠加单元;
所述模型数据获取单元,用于获取为数字场景制作的多个3D模型实体的模型数据;
所述渲染模块封装单元,通信连接所述模型数据获取单元,用于针对在所述多个3D模型实体中的各个3D模型实体,基于3D绘图协议WebGL封装得到对应的渲染模块,其中,所述渲染模块用于对输入的且对应实体的模型数据进行渲染以得到对应实体的渲染图像;
所述渲染用文件打包单元,通信连接所述渲染模块封装单元,用于将所有所述渲染模块封装为一个js类方法,并将所述js类方法打包压缩为一个渲染用js文件;
所述位置视角确定单元,用于根据人机交互操作结果,确定在所述数字场景中的当前摄像机位置和当前摄像机视角;
所述视野空间确定单元,通信连接所述位置视角确定单元,用于根据所述当前摄像机位置、所述当前摄像机视角、视锥体垂直视野角度、视锥体长宽比、近端面距离和远端面距离,确定在所述数字场景中的当前摄像机视野空间,其中,所述视锥体垂直视野角度、所述视锥体长宽比、所述近端面距离和所述远端面距离分别为所述透视摄像机构造函数的必设参数;
所述目标实体确定单元,通信连接所述视野空间确定单元,用于根据所述多个3D模型实体在所述数字场景中的当前位置,确定位于所述当前摄像机视野空间内的至少一个3D模型实体;
所述目标实体排序单元,通信连接所述目标实体确定单元,用于根据所述当前摄像机位置和所述至少一个3D模型实体在所述数字场景中的当前位置,对所述至少一个3D模型实体进行相对摄像机的由近及远排序,得到一个3D模型实体序列;
所述目标实体渲染单元,分别通信连接所述目标实体排序单元、所述渲染用文件打包单元和所述模型数据获取单元,用于针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像;
所述渲染图像叠加单元,通信连接所述目标实体渲染单元,用于按照从后至前顺序依次叠加在所述3D模型实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果。
第三方面,本发明提供了一种计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意可能设计所述的数字场景3D模型渲染方法。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意可能设计所述的数字场景3D模型渲染方法。
第五方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任意可能设计所述的数字场景3D模型渲染方法。
上述方案的有益效果:
(1)本发明创造性提供了一种基于3D绘图协议WebGL快速完成数字场景3D模型渲染任务的新方案,即先针对各个3D模型实体,基于WebGL封装得到对应的渲染模块,然后将所有渲染模块封装为渲染用js文件,再然后基于当前摄像机位置及视角和实体位置,确定当前待渲染的目标3D模型实体,再然后对目标3D模型实体进行相对摄像机的由近及远排序,以及基于排序结果判断在当前摄像机视角下相对在前实体是否会完全遮挡相对在后实体,并在会时直接将空白图像作为相对在后实体的渲染图像,最后按照从后至前顺序依次叠加在实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果,如此通过有选择性地对部分3D模型进行渲染,可以有效节省渲染所需计算资源和时间,加快数字场景3D模型渲染速度,使用户能够及时得到渲染结果,利于提升用户体验,便于实际应用和推广。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数字场景3D模型渲染方法的流程示意图。
图2为本申请实施例提供的视锥体的形状示例图。
图3为本申请实施例提供的数字场景3D模型渲染系统的结构示意图。
图4为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图和实施例或现有技术的描述对本发明作简单地介绍,显而易见地,下面关于附图结构的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
应当理解,尽管本文可能使用术语第一和第二等等来描述各种对象,但是这些对象不应当受到这些术语的限制。这些术语仅用于区分一个对象和另一个对象。例如可以将第一对象称作第二对象,并且类似地可以将第二对象称作第一对象,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A、单独存在B或者同时存在A和B等三种情况;又例如,A、B和/或C,可以表示存在A、B和C中的任意一种或他们的任意组合;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A或者同时存在A和B等两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
实施例:
如图1所示,本实施例第一方面提供的数字场景3D模型渲染方法,可以但不限于由具有一定计算资源的计算机设备执行,例如由平台服务器、个人计算机(PersonalComputer,PC,指一种大小、价格和性能适用于个人使用的多用途计算机;台式机、笔记本电脑到小型笔记本电脑和平板电脑以及超级本等都属于个人计算机)、智能手机、个人数字助理(Personal Digital Assistant,PDA)或可穿戴设备等电子设备执行。如图1所示,所述数字场景3D模型渲染方法,可以但不限于包括有如下步骤S1~S9。
S1.获取为数字场景制作的多个3D模型实体的模型数据。
在所述步骤S1中,所述3D模型实体即为具体的且诸如零部件、汽车、建筑物和家具等的三维模型。所述3D模型实体的模型数据用于表示对应实体的形状、大小、材质、颜色、纹理、透明度、表面反射、表面折射和/或表面漫射等物理特性,可以基于现有3D建模工具常规制作得到。
S2.针对在所述多个3D模型实体中的各个3D模型实体,基于3D绘图协议WebGL封装得到对应的渲染模块,其中,所述渲染模块用于对输入的且对应实体的模型数据进行渲染以得到对应实体的渲染图像。
在所述步骤S2中,所述3D绘图协议WebGL(全写为Web Graphics Library,翻译为web图形库)是一种现有的3D绘图技术,这种绘图技术标准允许把JavaScript和OpenGL ES2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化;由于WebGL绘图技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等,因此可以基于现有封装方式得到所述各个3D模型实体的所述渲染模块。具体的,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数和视角变化操作函数整体封装而得,其中,所述渲染函数采用基于顶点着色器(其用于处理图形中每个顶点的位置)和片元着色器(其用于处理每个像素的颜色和透明度)结合封装的GLSL(OpenGL ShadingLanguage,其是一种用于描述顶点和片元着色器的语言;它是一种C语言的变体,专门为OpenGL和其他着色器渲染系统而设计)着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数。所述透视摄像机构造函数PerspectiveCamera()是所述3D绘图协议WebGL中的必备构造函数,其有如下四个必设参数:(1)视锥体垂直视野角度fov,即从视图的底部到顶部,以角度来表示,默认值是50;(2)视锥体的长宽比aspec,通常是使用画布的宽w除以画布的高h来表示,这样不会被感觉被压缩,默认值是1;(3)近端面距离near,默认值是0.1;(4)远端面距离far,默认值是2000。如图2所示,前述的近端面距离near和远端面距离far用于当物体所在的位置比摄像机的远端面远或者所在位置比近端面近的时候,确保该物体超出的部分将不会被渲染到场景中。所述视角变化操作是指产生透视摄像机视角变化的人机交互操作,可以但不限于通过鼠标实现,例如基于鼠标缩放事件、鼠标按住拖拽事件和/或鼠标点击滑动事件等来产生视角变化,以便用户可根据需要通过人机交互操作,实现以不同角度或缩放大小等来查看在数字场景中的3D模型的目的。此外,前述基于所述3D绘图协议WebGL进行渲染函数和视角变化操作函数封装的具体方式,可参考现有封装方式常规改动得到。
在所述步骤S2中,优选的,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数、视角变化操作函数和html文本整体封装而得,其中,所述渲染函数采用基于顶点着色器和片元着色器结合封装的GLSL着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数,所述html文本包含但不限于有显示坐标信息和待显示文字信息等。举例的,所述html文本可包含有如下三个参数:平面x坐标、平面y坐标及文字内容,如此可根据传入的平面x坐标、平面y坐标及文字内容,在浏览器中渲染dom节点文字,并且使用帧动画,在传入的参数不断变化时,可逐帧渲染移动过程。此外,前述基于所述3D绘图协议WebGL进行渲染函数、视角变化操作函数和html文本封装的具体方式,可参考现有封装方式常规改动得到。
在所述步骤S2中,优选的,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数、视角变化操作函数和抗锯齿方式整体封装而得,其中,所述渲染函数采用基于顶点着色器和片元着色器结合封装的GLSL着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数,所述抗锯齿方式用于使用WebGL纹理来对3D模型的纹理坐标进行设置,以便通过对纹理坐标的设置来减少在渲染图像中的锯齿现象。即考虑在所述渲染模块不包含该抗锯齿方式时,所得渲染图像在棱角部分会出现锯齿现象,特别是在进行放大缩小后锯齿现象更加明显,因此本实施例采用包含抗锯齿方式的渲染模块能够有效地抗锯齿,提高渲染图像的质量。此外,前述基于所述3D绘图协议WebGL进行渲染函数、视角变化操作函数和抗锯齿方式封装的具体方式,可参考现有封装方式常规改动得到;以及所述渲染模块优选由基于所述3D绘图协议WebGL封装的渲染函数、视角变化操作函数、html文本和抗锯齿方式整体封装而得。
S3.将所有所述渲染模块封装为一个js类方法,并将所述js类方法打包压缩为一个渲染用js文件。
在所述步骤S3中,具体的封装及打包压缩方式,可参考现有封装及打包压缩方式常规改动得到。
S4.根据人机交互操作结果,确定在所述数字场景中的当前摄像机位置和当前摄像机视角。
在所述步骤S4中,具体可以但不限于基于鼠标缩放事件、鼠标按住拖拽事件和/或鼠标点击滑动事件等来常规确定所述当前摄像机位置和所述当前摄像机视角。
S5.根据所述当前摄像机位置、所述当前摄像机视角、视锥体垂直视野角度、视锥体长宽比、近端面距离和远端面距离,确定在所述数字场景中的当前摄像机视野空间,其中,所述视锥体垂直视野角度、所述视锥体长宽比、所述近端面距离和所述远端面距离分别为所述透视摄像机构造函数的必设参数。
在所述步骤S5中,举例如图2所示,右侧的锥台空间即为所述当前摄像机视野空间,因此可以基于现有几何知识常规确定所述当前摄像机视野空间。
S6.根据所述多个3D模型实体在所述数字场景中的当前位置,确定位于所述当前摄像机视野空间内的至少一个3D模型实体。
在所述步骤S6中,所述3D模型实体在所述数字场景中的当前位置可以是静态不动的,也可以是动态变化的,具体可以基于用户布置结果常规获取得到。所述至少一个3D模型实体即为当前待渲染的目标3D模型实体。此外,可以基于实体位置与所述当前摄像机视野空间的位置关系,常规确定当前待渲染的所述目标3D模型实体。
S7.根据所述当前摄像机位置和所述至少一个3D模型实体在所述数字场景中的当前位置,对所述至少一个3D模型实体进行相对摄像机的由近及远排序,得到一个3D模型实体序列。
在所述步骤S7中,具体即为先针对在所述至少一个3D模型实体中的各个3D模型实体,根据所述当前摄像机位置和对应的且在所述数字场景中的当前位置,计算对应的且至摄像机的距离;然后基于距离计算结果对所述至少一个3D模型实体进行相对摄像机的由近及远排序,得到所述3D模型实体序列。
S8.针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像。
在所述步骤S8中,由于所述首个3D模型实体不存在有在前3D模型实体,因此不会有遮挡情况,可以直接基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且所述首个3D模型实体的渲染模块,并将所述首个3D模型实体的模型数据导入该渲染模块,以便得到所述首个3D模型实体的渲染图像。前述基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且所述首个3D模型实体的渲染模块的具体方式,可参照现有常规方式改动得到。此外,当所述渲染模块是基于所述视角变化操作函数封装而得时,还可以将所述当前摄像机视角导入所述视角变化操作函数,以便得到在所述当前摄像机视角下的所述渲染图像。
在所述步骤S8中,所述在前3D模型实体是指在所述3D模型实体序列中的且排列在非首3D模型实体(即在所述3D模型实体序列中的非首个3D模型实体)之前的某个3D模型实体。针对任一非首3D模型实体,若判定在所述当前摄像机视角下对应的所有在前3D模型实体会完全遮挡对应实体,则由于即使渲染也不会在最终渲染结果中呈现,因此通过直接将空白图像作为对应的渲染图像,可以节省渲染所需计算资源和时间,而反之则不然,需要按部就班地进行对应的渲染处理。具体的,针对在所述3D模型实体序列中的某个非首3D模型实体,先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,包括但不限于有如下步骤S81~S85。
S81.将在所述3D模型实体序列中的且排列在所述某个非首3D模型实体之前的所有3D模型实体,作为所述某个非首3D模型实体的所有在前3D模型实体。
S82.针对在所述所有在前3D模型实体中的各个在前3D模型实体,根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域。
在所述步骤S82中,所述第一远端面投影区域的具体得到方式,可在所述当前摄像机位置假设放置有一个点光源,然后根据模型数据中的形状和大小等信息以及实体位置,基于常规投影方式得到在远端面上的投影区域。考虑当所述在前3D模型实体具有透明性时,也不会对所述某个非首3D模型实体造成完全遮挡,因此优选的,针对在所述所有在前3D模型实体中的各个在前3D模型实体,根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域,包括但不限于有:针对在所述所有在前3D模型实体中的各个在前3D模型实体,先根据对应的模型数据确定对应的预设透明度,若发现对应的预设透明度为零,则进一步根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域。
S83.针对所述某个非首3D模型实体,同样根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第二远端面投影区域。
S84.对所有所述第一远端面投影区域进行联合处理,得到第三远端面投影区域。
S85.判断所述第二远端面投影区域是否全部位于所述第三远端面投影区域中,若是,则判定在所述当前摄像机视角下所述某个非首3D模型实体的所有在前3D模型实体会完全遮挡所述某个非首3D模型实体,否则判定在所述当前摄像机视角下所述某个非首3D模型实体的所有在前3D模型实体不会完全遮挡所述某个非首3D模型实体。
在所述步骤S8中,为了实现并行渲染各个目标3D模型实体的目的,进一步加快渲染速度,优选的,针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,包括但不限于有如下步骤:先创建与所述至少一个3D模型实体一一对应的至少一个进程;然后针对在所述3D模型实体序列中的各个3D模型实体,在对应的进程中:若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像。
S9.按照从后至前顺序依次叠加在所述3D模型实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果。
在所述步骤S9中,由于是按照从后至前顺序依次叠加在所述3D模型实体序列中的各个3D模型实体的渲染图像,因此相对在后3D模型实体的渲染图像不会对相对在前3D模型实体的渲染图像产生遮挡影响,可确保所述数字场景3D模型渲染结果的正确性。
由此基于前述步骤S1~S9所描述的数字场景3D模型渲染方法,提供了一种基于3D绘图协议WebGL快速完成数字场景3D模型渲染任务的新方案,即先针对各个3D模型实体,基于WebGL封装得到对应的渲染模块,然后将所有渲染模块封装为渲染用js文件,再然后基于当前摄像机位置及视角和实体位置,确定当前待渲染的目标3D模型实体,再然后对目标3D模型实体进行相对摄像机的由近及远排序,以及基于排序结果判断在当前摄像机视角下相对在前实体是否会完全遮挡相对在后实体,并在会时直接将空白图像作为相对在后实体的渲染图像,最后按照从后至前顺序依次叠加在实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果,如此通过有选择性地对部分3D模型进行渲染,可以有效节省渲染所需计算资源和时间,加快数字场景3D模型渲染速度,使用户能够及时得到渲染结果,利于提升用户体验,便于实际应用和推广。
如图3所示,本实施例第二方面提供了一种实现第一方面所述的数字场景3D模型渲染方法的虚拟系统,包括有模型数据获取单元、渲染模块封装单元、渲染用文件打包单元、位置视角确定单元、视野空间确定单元、目标实体确定单元、目标实体排序单元、目标实体渲染单元和渲染图像叠加单元;
所述模型数据获取单元,用于获取为数字场景制作的多个3D模型实体的模型数据;
所述渲染模块封装单元,通信连接所述模型数据获取单元,用于针对在所述多个3D模型实体中的各个3D模型实体,基于3D绘图协议WebGL封装得到对应的渲染模块,其中,所述渲染模块用于对输入的且对应实体的模型数据进行渲染以得到对应实体的渲染图像;
所述渲染用文件打包单元,通信连接所述渲染模块封装单元,用于将所有所述渲染模块封装为一个js类方法,并将所述js类方法打包压缩为一个渲染用js文件;
所述位置视角确定单元,用于根据人机交互操作结果,确定在所述数字场景中的当前摄像机位置和当前摄像机视角;
所述视野空间确定单元,通信连接所述位置视角确定单元,用于根据所述当前摄像机位置、所述当前摄像机视角、视锥体垂直视野角度、视锥体长宽比、近端面距离和远端面距离,确定在所述数字场景中的当前摄像机视野空间,其中,所述视锥体垂直视野角度、所述视锥体长宽比、所述近端面距离和所述远端面距离分别为所述透视摄像机构造函数的必设参数;
所述目标实体确定单元,通信连接所述视野空间确定单元,用于根据所述多个3D模型实体在所述数字场景中的当前位置,确定位于所述当前摄像机视野空间内的至少一个3D模型实体;
所述目标实体排序单元,通信连接所述目标实体确定单元,用于根据所述当前摄像机位置和所述至少一个3D模型实体在所述数字场景中的当前位置,对所述至少一个3D模型实体进行相对摄像机的由近及远排序,得到一个3D模型实体序列;
所述目标实体渲染单元,分别通信连接所述目标实体排序单元、所述渲染用文件打包单元和所述模型数据获取单元,用于针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像;
所述渲染图像叠加单元,通信连接所述目标实体渲染单元,用于按照从后至前顺序依次叠加在所述3D模型实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果。
本实施例第二方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第一方面所述的数字场景3D模型渲染方法,于此不再赘述。
如图4所示,本实施例第三方面提供了一种执行如第一方面所述的数字场景3D模型渲染方法的计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面所述的数字场景3D模型渲染方法。具体举例的,所述存储器可以但不限于包括随机存取存储器(Random-Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First Input Last Output,FILO)等等;所述处理器可以但不限于采用型号为STM32F105系列的微处理器。此外,所述计算机设备还可以但不限于包括有电源模块、显示屏和其它必要的部件。
本实施例第三方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见第一方面所述的数字场景3D模型渲染方法,于此不再赘述。
本实施例第四方面提供了一种存储包含如第一方面所述的数字场景3D模型渲染方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的数字场景3D模型渲染方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等计算机可读存储介质,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。
本实施例第四方面提供的前述计算机可读存储介质的工作过程、工作细节和技术效果,可以参见如第一方面所述的数字场景3D模型渲染方法,于此不再赘述。
本实施例第五方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面所述的数字场景3D模型渲染方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数字场景3D模型渲染系统,其特征在于,包括有模型数据获取单元、渲染模块封装单元、渲染用文件打包单元、位置视角确定单元、视野空间确定单元、目标实体确定单元、目标实体排序单元、目标实体渲染单元和渲染图像叠加单元;
所述模型数据获取单元,用于获取为数字场景制作的多个3D模型实体的模型数据;
所述渲染模块封装单元,通信连接所述模型数据获取单元,用于针对在所述多个3D模型实体中的各个3D模型实体,基于3D绘图协议WebGL封装得到对应的渲染模块,其中,所述渲染模块用于对输入的且对应实体的模型数据进行渲染以得到对应实体的渲染图像;
所述渲染用文件打包单元,通信连接所述渲染模块封装单元,用于将所有所述渲染模块封装为一个js类方法,并将所述js类方法打包压缩为一个渲染用js文件;
所述位置视角确定单元,用于根据人机交互操作结果,确定在所述数字场景中的当前摄像机位置和当前摄像机视角;
所述视野空间确定单元,通信连接所述位置视角确定单元,用于根据所述当前摄像机位置、所述当前摄像机视角、视锥体垂直视野角度、视锥体长宽比、近端面距离和远端面距离,确定在所述数字场景中的当前摄像机视野空间,其中,所述视锥体垂直视野角度、所述视锥体长宽比、所述近端面距离和所述远端面距离分别为透视摄像机构造函数的必设参数;
所述目标实体确定单元,通信连接所述视野空间确定单元,用于根据所述多个3D模型实体在所述数字场景中的当前位置,确定位于所述当前摄像机视野空间内的至少一个3D模型实体;
所述目标实体排序单元,通信连接所述目标实体确定单元,用于根据所述当前摄像机位置和所述至少一个3D模型实体在所述数字场景中的当前位置,对所述至少一个3D模型实体进行相对摄像机的由近及远排序,得到一个3D模型实体序列;
所述目标实体渲染单元,分别通信连接所述目标实体排序单元、所述渲染用文件打包单元和所述模型数据获取单元,用于针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像;
所述渲染图像叠加单元,通信连接所述目标实体渲染单元,用于按照从后至前顺序依次叠加在所述3D模型实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果。
2.一种数字场景3D模型渲染方法,其特征在于,包括:
获取为数字场景制作的多个3D模型实体的模型数据;
针对在所述多个3D模型实体中的各个3D模型实体,基于3D绘图协议WebGL封装得到对应的渲染模块,其中,所述渲染模块用于对输入的且对应实体的模型数据进行渲染以得到对应实体的渲染图像;
将所有所述渲染模块封装为一个js类方法,并将所述js类方法打包压缩为一个渲染用js文件;
根据人机交互操作结果,确定在所述数字场景中的当前摄像机位置和当前摄像机视角;
根据所述当前摄像机位置、所述当前摄像机视角、视锥体垂直视野角度、视锥体长宽比、近端面距离和远端面距离,确定在所述数字场景中的当前摄像机视野空间,其中,所述视锥体垂直视野角度、所述视锥体长宽比、所述近端面距离和所述远端面距离分别为透视摄像机构造函数的必设参数;
根据所述多个3D模型实体在所述数字场景中的当前位置,确定位于所述当前摄像机视野空间内的至少一个3D模型实体;
根据所述当前摄像机位置和所述至少一个3D模型实体在所述数字场景中的当前位置,对所述至少一个3D模型实体进行相对摄像机的由近及远排序,得到一个3D模型实体序列;
针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像;
按照从后至前顺序依次叠加在所述3D模型实体序列中的各个3D模型实体的渲染图像,得到最终的数字场景3D模型渲染结果。
3.根据权利要求2所述的数字场景3D模型渲染方法,其特征在于,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数和视角变化操作函数整体封装而得,其中,所述渲染函数采用基于顶点着色器和片元着色器结合封装的GLSL着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数。
4.根据权利要求2所述的数字场景3D模型渲染方法,其特征在于,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数、视角变化操作函数和html文本整体封装而得,其中,所述渲染函数采用基于顶点着色器和片元着色器结合封装的GLSL着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数,所述html文本包含有显示坐标信息和待显示文字信息。
5.根据权利要求2所述的数字场景3D模型渲染方法,其特征在于,所述渲染模块由基于所述3D绘图协议WebGL封装的渲染函数、视角变化操作函数和抗锯齿方式整体封装而得,其中,所述渲染函数采用基于顶点着色器和片元着色器结合封装的GLSL着色器,所述视角变化操作函数是基于所述3D绘图协议WebGL的透视摄像机构造函数对视角变化操作进行定义而得的函数,所述抗锯齿方式用于使用WebGL纹理来对3D模型的纹理坐标进行设置,以便通过对纹理坐标的设置来减少在渲染图像中的锯齿现象。
6.根据权利要求2所述的数字场景3D模型渲染方法,其特征在于,针对在所述3D模型实体序列中的各个3D模型实体,若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,包括:
创建与所述至少一个3D模型实体一一对应的至少一个进程;
针对在所述3D模型实体序列中的各个3D模型实体,在对应的进程中:若对应实体是在所述3D模型实体序列中的首个3D模型实体,则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像,否则先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,若是,则直接将空白图像作为对应的渲染图像,否则基于实例化所述渲染用js文件中的类方法,调用所述渲染用js文件中的且对应的渲染模块,并将对应的模型数据导入该渲染模块,以便得到对应的渲染图像。
7.根据权利要求2所述的数字场景3D模型渲染方法,其特征在于,针对在所述3D模型实体序列中的某个非首3D模型实体,先根据对应的所有在前3D模型实体的以及对应的模型数据和在所述数字场景中的当前位置,判断在所述当前摄像机视角下对应的所有在前3D模型实体是否会完全遮挡对应实体,包括:
将在所述3D模型实体序列中的且排列在所述某个非首3D模型实体之前的所有3D模型实体,作为所述某个非首3D模型实体的所有在前3D模型实体;
针对在所述所有在前3D模型实体中的各个在前3D模型实体,根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域;
针对所述某个非首3D模型实体,同样根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第二远端面投影区域;
对所有所述第一远端面投影区域进行联合处理,得到第三远端面投影区域;
判断所述第二远端面投影区域是否全部位于所述第三远端面投影区域中,若是,则判定在所述当前摄像机视角下所述某个非首3D模型实体的所有在前3D模型实体会完全遮挡所述某个非首3D模型实体,否则判定在所述当前摄像机视角下所述某个非首3D模型实体的所有在前3D模型实体不会完全遮挡所述某个非首3D模型实体。
8.根据权利要求7所述的数字场景3D模型渲染方法,其特征在于,针对在所述所有在前3D模型实体中的各个在前3D模型实体,根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域,包括:
针对在所述所有在前3D模型实体中的各个在前3D模型实体,先根据对应的模型数据确定对应的预设透明度,若发现对应的预设透明度为零,则进一步根据对应的模型数据和在所述数字场景中的当前位置,得到对应的且在所述当前摄像机视角下的第一远端面投影区域。
9.一种计算机设备,其特征在于,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求2~8中任意一项所述的数字场景3D模型渲染方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求2~8中任意一项所述的数字场景3D模型渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310594927.1A CN116630503A (zh) | 2023-05-24 | 2023-05-24 | 数字场景3d模型渲染系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310594927.1A CN116630503A (zh) | 2023-05-24 | 2023-05-24 | 数字场景3d模型渲染系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116630503A true CN116630503A (zh) | 2023-08-22 |
Family
ID=87636093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310594927.1A Pending CN116630503A (zh) | 2023-05-24 | 2023-05-24 | 数字场景3d模型渲染系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116630503A (zh) |
-
2023
- 2023-05-24 CN CN202310594927.1A patent/CN116630503A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7439975B2 (en) | Method and system for producing dynamically determined drop shadows in a three-dimensional graphical user interface | |
US7400322B1 (en) | Viewport-based desktop rendering engine | |
US9275493B2 (en) | Rendering vector maps in a geographic information system | |
CN111803945B (zh) | 界面渲染方法、装置、电子设备及存储介质 | |
CN109448137B (zh) | 交互方法、交互装置、电子设备及存储介质 | |
KR20070004878A (ko) | 3차원 장면 계층구조를 2차원 합성 시스템으로 통합하기위한 데이터 구조, 방법 및 컴퓨터 판독가능 매체 | |
KR20070011062A (ko) | 모델 3d 구성 애플리케이션 프로그램 인터페이스 | |
CN109741431B (zh) | 一种二三维一体化电子地图框架 | |
US20080295035A1 (en) | Projection of visual elements and graphical elements in a 3D UI | |
CN110796732A (zh) | 基于WebGL与C#的矿山三维展示方法 | |
JP2012190428A (ja) | 立体映像視覚効果処理方法 | |
CN111429561A (zh) | 一种虚拟仿真渲染引擎 | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
US6791563B2 (en) | System, method and computer program product for global rendering | |
CN113901367A (zh) | 一种基于WebGL+VR的BIM体量模型展示方法 | |
CN115082609A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
Limberger et al. | Interactive software maps for web-based source code analysis | |
CN116243831B (zh) | 一种虚拟云展厅交互方法及系统 | |
US10235798B2 (en) | System and method for rendering shadows for a virtual environment | |
CN113192173B (zh) | 三维场景的图像处理方法、装置及电子设备 | |
CN116630503A (zh) | 数字场景3d模型渲染系统及方法 | |
Döllner | Geovisualization and real-time 3D computer graphics | |
CN114693780A (zh) | 图像的处理方法、装置、设备、存储介质和程序产品 | |
CN114020390A (zh) | Bim模型显示方法、装置、计算机设备和存储介质 |
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 |