CN117931979B - 一种电子地图中的楼块显示方法和相关装置 - Google Patents
一种电子地图中的楼块显示方法和相关装置 Download PDFInfo
- Publication number
- CN117931979B CN117931979B CN202410336108.1A CN202410336108A CN117931979B CN 117931979 B CN117931979 B CN 117931979B CN 202410336108 A CN202410336108 A CN 202410336108A CN 117931979 B CN117931979 B CN 117931979B
- Authority
- CN
- China
- Prior art keywords
- window
- pixel
- building
- determining
- target
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开一种电子地图中的楼块显示方法和相关装置,可应用于电子地图、自动驾驶、辅助驾驶、智慧交通、云技术、人工智能等领域。获取待渲染楼块的窗户数据和待建模底面轮廓点串。对待建模底面轮廓点串进行分组得到多组目标轮廓点,根据窗户数据,分别确定多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果,实现针对每组目标轮廓点所对应目标区域确定单独的窗户排布结果。针对每个目标区域中的每个像素点,根据目标区域的窗户排布结果确定像素点的像素值,以基于每个目标区域中像素点的像素值,在电子地图中渲染包括窗户的待渲染楼块。由此对楼块增加个性化的窗户效果,并且由于每个目标区域单独渲染,避免窗户出现错误的渲染效果。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种电子地图中的楼块显示方法和相关装置。
背景技术
随着电子地图技术的发展,电子地图对真实世界的反映的准确性越来越高,电子地图中出现越来越多的立体化元素,例如,通过立体的楼块来表示高度错落的不同建筑物,以便电子地图的使用对象能够准确地了解所处环境的建筑物分布情况。
建筑物上通常会有窗户,故在电子地图上显示楼块时,也会在楼块上渲染出窗户。相关技术在显示楼块时,将有限大小的纹理贴图包裹到整个楼块上,从而在楼块的墙面上渲染出窗户的纹理。
然而,这种方式渲染出的窗户排布效果都是相同的,欠缺个性化的效果,且容易出现错误的渲染效果,比如在一些不该有窗户的墙面也会贴窗户、窗户横跨多个墙面、窗户离地面过近、显示半个窗户等。
发明内容
为了解决上述技术问题,本申请提供了一种电子地图中的楼块显示方法和相关装置,实现每组目标轮廓点所对应的目标区域单独渲染,得到每个目标区域单独的窗户排布结果。不同目标区域的窗户排布结果可能不同,由此确定出的像素值可能不同,从而可以对楼块增加个性化的窗户效果,并且由于每个目标区域单独渲染,从而避免窗户出现错误的渲染效果。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供一种电子地图中的楼块显示方法,所述方法包括:
获取待渲染楼块的窗户数据和待建模底面轮廓点串;
对所述待建模底面轮廓点串进行分组,得到多组目标轮廓点;
根据所述窗户数据,分别确定所述多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果;
针对每个所述目标区域中的每个像素点,根据所述目标区域的窗户排布结果,确定所述像素点的像素值,所述像素点位于所述目标区域的窗户内时,所述像素点的像素值为窗户像素值,所述像素点位于所述目标区域的墙面处时,所述像素点的像素值为墙面像素值,所述窗户像素值与所述墙面像素值不同;
基于每个所述目标区域中像素点的像素值,在电子地图中渲染包括窗户的所述待渲染楼块,所述待渲染楼块是基于所述待建模底面轮廓点串进行楼块建模得到的,所述待渲染楼块包括基于所述待建模底面轮廓点串进行轮廓拔高得到的目标区域。
一方面,本申请实施例提供一种电子地图中的楼块显示装置,所述装置包括获取单元、分组单元、确定单元和渲染单元:
所述获取单元,用于获取待渲染楼块的窗户数据和待建模底面轮廓点串;
所述分组单元,用于对所述待建模底面轮廓点串进行分组,得到多组目标轮廓点;
所述确定单元,用于根据所述窗户数据,分别确定所述多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果;
所述确定单元,还用于针对每个所述目标区域中的每个像素点,根据所述目标区域的窗户排布结果,确定所述像素点的像素值,所述像素点位于所述目标区域的窗户内时,所述像素点的像素值为窗户像素值,所述像素点位于所述目标区域的墙面处时,所述像素点的像素值为墙面像素值,所述窗户像素值与所述墙面像素值不同;
所述渲染单元,用于基于每个所述目标区域中像素点的像素值,在电子地图中渲染包括窗户的所述待渲染楼块,所述待渲染楼块是基于所述待建模底面轮廓点串进行楼块建模得到的,所述待渲染楼块包括基于所述待建模底面轮廓点串进行轮廓拔高得到的目标区域。
一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序中的指令执行前述任一方面所述的方法。
一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序当被处理器执行时使所述处理器执行前述任一方面所述的方法。
一方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一方面所述的方法。
由上述技术方案可以看出,当需要在电子地图上显示楼块时,可以获取待渲染楼块的窗户数据和待建模底面轮廓点串。然后对待建模底面轮廓点串进行分组,得到多组目标轮廓点,进而根据窗户数据,分别确定多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果,从而针对每组目标轮廓点所对应目标区域确定单独的窗户排布结果,以便后续针对每个目标区域单独进行渲染,避免窗户跨多个墙面的不真实问题。针对每个目标区域中的每个像素点,根据目标区域的窗户排布结果,确定像素点的像素值,像素点位于目标区域的窗户内时,像素点的像素值为窗户像素值,像素点位于目标区域的墙面处时,像素点的像素值为墙面像素值,窗户像素值与墙面像素值不同,以体现不同像素点对应的渲染效果是窗户还是墙面。这样,便可以基于每个目标区域中像素点的像素值,在电子地图中渲染包括窗户的待渲染楼块,从而实现每个目标区域单独渲染,得到每个目标区域单独的窗户排布结果。不同目标区域的窗口排布结果可能不同,进而基于窗口排布结果确定出的像素值不同,从而可以对楼块增加个性化的窗户效果,并且由于每个目标区域单独渲染,从而避免窗户出现错误的渲染效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种电子地图中的楼块显示方法的应用场景架构图;
图2为本申请实施例提供的一种电子地图中的楼块显示方法的流程图;
图3为本申请实施例提供的一种底面轮廓和待建模底面轮廓点串的示例图;
图4为本申请实施例提供的一种渲染效果的示例图;
图5为本申请实施例提供的另一种渲染效果的示例图;
图6为本申请实施例提供的一种对法线贴图进行纹理采样的原理示例图;
图7为本申请实施例提供的一种随机点亮效果的示例图;
图8为本申请实施例提供的一种电子地图中的楼块显示方法的整体流程示例图;
图9为本申请实施例提供的一种电子地图中的楼块显示装置的结构图;
图10为本申请实施例提供的一种终端的结构图;
图11为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
随着电子地图技术的发展,电子地图中出现越来越多的立体化(即三维)元素,三维(3 Dimensions,3D)形态中最多的就是建筑物,分为3D楼块和地标建筑。地标建筑可以是电子地图上显示的带纹理的建筑物,形状、纹理与现实中的建筑还原度较高,一般使用设计软件结合航拍、多角度摄像采集的数据建模而成的,具有较好的效果以及较高的采集成本。
3D楼块,也称为白模,可以是使用建筑物的底面轮廓拔高形成的,一般不会使用纹理贴图,使用不同的形状、颜色、高度等还原真实建筑。对现实建筑有一定还原度,和较低的建模成本。3D楼块的采集成本低适合批量制作,电子地图中大量的建筑采用这种形态。
建筑物上通常会有窗户,为了使得3D楼块对建筑物具有更高的还原度,也可以在3D楼块上渲染窗户。相关技术在显示楼块时,将有限大小的纹理贴图包裹到整个楼块上,从而在楼块的墙面上渲染出窗户的纹理。然而,这种方式渲染出的窗户排布效果都是相同的,欠缺个性化的效果,且容易出现错误的渲染效果。
为了解决上述技术问题,本申请实施例提供一种电子地图中的楼块显示方法,该方法通过对待建模底面轮廓点串进行分组,从而针对每组目标轮廓点所对应目标区域确定单独的窗户排布结果,进而针对每个目标区域单独渲染,得到每个目标区域单独的窗户排布结果。不同目标区域的窗口排布结果可能不同,进而基于窗口排布结果确定出的像素值不同,从而可以对楼块增加个性化的窗户效果,并且由于每个目标区域单独渲染,从而避免窗户出现错误的渲染效果。同时,本申请无需构建窗户的模型,而是基于各个像素点的像素值,有区分的对属于不同区域、区域中属于窗户或墙面的像素点进行渲染,由此只需下载待建模底面轮廓点串,没有下载流量的增加。另外,由于墙面和窗户在同一个批次基于各自所对应像素点的像素值绘制实现,从根本上避免了深度冲突造成闪烁问题,且渲染顶点数量保持一致,避免增加渲染的数据量。
需要说明的是,本申请实施例提供的电子地图中的楼块显示方法可应用于电子地图、自动驾驶、辅助驾驶、智慧交通、云技术、人工智能等领域,在这些领域可能需要使用电子地图。在对电子地图中的楼块进行显示时,可以通过本申请实施例提供的方法显示具有窗户的楼块。使用电子地图的场景例如可以是自动驾驶、高精度定位、车道级定位、交通管理、城市规划、旅游、物流、游戏、虚拟现实、增强现实等场景,本申请实施例对此不做限定。
本申请实施例提供的电子地图中的楼块显示方法可以由计算机设备执行,该计算机设备例如可以是服务器,也可以是终端。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端包括但不限于智能手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。
如图1所示,图1示出了一种电子地图中的楼块显示方法的应用场景架构图,在该应用场景中可以包括终端100和服务器200。终端100上可以安装电子地图应用,当用户通过终端100打开电子地图应用时,可以在终端100上显示电子地图,该电子地图中包括楼块,故可以通过本申请实施例提供的方法显示具有窗户的楼块,实现楼块具有窗户的渲染效果。服务器200可以为终端提供电子地图服务,例如提供渲染电子地图所使用的相关数据,例如窗户渲染参数、待建模底面轮廓点串等。
当需要在电子地图上显示楼块时,终端100可以获取待渲染楼块的窗户数据和待建模底面轮廓点串。其中,窗户数据是用于描述楼块中需要渲染的窗户的相关数据,体现待渲染楼块的窗户排布。待建模底面轮廓点串可以是底面轮廓上的一系列点构成的点串,可以反映底面轮廓的形状,该底面轮廓用于建模得到对应的楼块,例如可以通过对底面轮廓进行拔高形成楼块。
可以理解的是,窗户数据和待建模底面轮廓点串可以存储在服务器200中,终端100可以从服务器200中获取窗户数据和待建模底面轮廓点串。
然后,终端100可以对待建模底面轮廓点串进行分组,得到多组目标轮廓点。在图1中,每个矩形框中的目标轮廓点表示一组目标轮廓点,一组目标轮廓点中可以包括多个目标轮廓点,目标轮廓点可以是从待建模底面轮廓点中确定出的、用于进行后续计算的轮廓点。每组目标轮廓点对应一个目标区域(即楼块的墙面),进而终端100可以根据窗户数据,分别确定多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果。窗户排布结果用于体现作为墙面的目标区域中窗户的排布情况,例如每个放置窗户的区域大小,可以放置多少行、多少列的窗户,单个窗户的宽和高等,从而针对每组目标轮廓点所对应目标区域确定单独的窗户排布结果,以便后续针对每个目标区域单独进行渲染,避免窗户跨多个墙面的不真实问题。
针对每个目标区域中的每个像素点,终端100可以根据目标区域的窗户排布结果,确定像素点的像素值,像素点位于目标区域的窗户内时,像素点的像素值为窗户像素值,像素点位于目标区域的墙面处时,像素点的像素值为墙面像素值,窗户像素值与墙面像素值不同,以体现不同像素点对应的渲染效果是窗户还是墙面。这样,便可以基于每个目标区域中像素点的像素值,在电子地图中渲染包括窗户的待渲染楼块,从而实现每个目标区域单独渲染,得到每个目标区域单独的窗户排布效果,使得终端100可以显示每个墙面单独的窗户排布效果。
不同目标区域的窗口排布结果可能不同,进而基于窗口排布结果确定出的像素值不同,从而可以对楼块增加个性化的窗户效果,并且由于每个目标区域单独渲染,从而避免窗户跨多个墙面的不真实问题。
需要说明的是,上述实施例以终端单独执行本申请实施例提供的方法进行介绍。本申请实施例提供的方法也可以由服务器单独执行,渲染得到的电子地图可以在终端100上进行显示,从而在终端100显示的电子地图上显示具有窗户效果的待渲染楼块。本申请实施例提供的方法还可以由服务器和终端配置执行,例如可以由服务器执行计算量比较大的步骤,例如获取待渲染楼块的窗户数据和待建模底面轮廓点串;对待建模底面轮廓点串进行分组,得到多组目标轮廓点;根据窗户数据,分别确定多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果;针对每个目标区域中的每个像素点,根据目标区域的窗户排布结果,确定像素点的像素值。由终端执行基于每个目标区域中像素点的像素值,在电子地图中渲染包括窗户的待渲染楼块的步骤,并显示包括窗户的待渲染楼块。当服务器和终端配合执行时,也可以采用其他配合方式,本申请实施例对此不做限定。
本申请实施例提供的方法可以涉及人工智能技术,通过人工智能技术自动进行电子地图中的楼块显示。人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、预训练模型技术、操作/交互系统、机电一体化等。其中,预训练模型又称大模型、基础模型,经过微调后可以广泛应用于人工智能各大方向下游任务。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
需要说明的是,在本申请的具体实施方式中,整个过程中有可能会涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户单独同意或者单独许可,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
接下来,将结合附图、以计算机设备是终端为例,对本申请实施例提供的电子地图中的楼块显示方法进行介绍。参见图2,图2示出了一种电子地图中的楼块显示方法的流程图,所述方法包括:
S201、获取待渲染楼块的窗户数据和待建模底面轮廓点串。
当需要在电子地图上显示楼块时,终端可以获取待渲染楼块的窗户数据和待建模底面轮廓点串。窗户数据是用于描述楼块中需要渲染的窗户的相关数据,体现待渲染楼块的窗户排布。
本申请实施例对窗户数据的形式不做限定,在一种可能的实现方式中,窗户数据可以是对待渲染楼块的窗户进行建模得到的模型。在另一种可能的实现方式中,可以对待渲染楼块的窗户排布进行参数化,此时窗户数据可以是对待渲染楼块的窗户排布进行参数化得到的窗户渲染参数。通过窗户渲染参数可以参数化窗户排布,从而无需创建并下载窗户的模型,只需下载待建模底面轮廓点串,没有下载流量的增加。其中,窗户渲染参数可以包括多个参数,多个参数例如可以是墙面窗户区域的上下左右边距(参数1)、窗户之间行间距和列间距(参数2)、能显示窗户的墙面最小宽高(参数3)、窗户的最小宽度以及窗户高度(参数4)。
待建模底面轮廓点串可以是底面轮廓上的一系列点构成的点串,可以反映底面轮廓的形状,该底面轮廓用于建模得到对应的楼块,例如可以通过对底面轮廓进行拔高形成楼块。若底面轮廓如图3中(a)标识的图所示,则待建模底面轮廓点串可以参见图3中(b)标识的图所示。
需要说明的是,现实中的建筑物可以是供人在内居住、工作、学习、娱乐、储藏物品或进行其他活动的空间场所。根据建筑功能的不同,可以分为不同的类型,例如写字楼、居民楼、商场、景观楼等等。当建筑物的类型不同时,为了满足实际需求、体现这一类型建筑物的特点,建筑物的窗户也会有所不同。例如建筑物的类型为写字楼时,为了体现高档时尚的外观,其窗户可以是贯通式窗户或者是窗户更加大;又如建筑物的类型为居民楼时,为了更加具有实用性,其窗户可以是分列式窗户或者是窗户更小更密集。
在这种情况下,为了使得电子地图上的楼块能够更加准确、真实的反映现实中的建筑物,楼块也具有与建筑物对应的类型,可以针对不同类型的楼块配置不同的窗户数据,尤其是窗户渲染参数,以便可以反映不同类型的楼块上窗户的不同排布情况。此时,获取窗户数据的方式可以是获取待渲染楼块的类型,进而根据类型,获取窗户数据。
以窗户数据是窗户渲染参数为例,预先配置每种类型的窗户渲染参数,例如为类型1的楼体配置窗户渲染参数1,为类型2的楼体配置窗户渲染参数2,为类型3的楼体配置窗户渲染参数3,等等,并保存上述配置。若待渲染楼块的类型为类型1,则获取类型1对应的窗户渲染参数,即窗户渲染参数1。
本申请实施例参数化楼体的窗户排布效果,为不同类型的楼体配置不同的窗户数据,以便可以针对不同类型的楼体渲染出不同的窗户排布效果,更加真实、准确的反映现实中的楼体,为不同类型的楼体增加个性化的窗户排布效果。
S202、对所述待建模底面轮廓点串进行分组,得到多组目标轮廓点。
终端可以对待建模底面轮廓点串进行分组,得到多组目标轮廓点,每组目标轮廓点对应一个目标区域(即楼块的墙面)。对待建模底面轮廓点串进行分组的目的主要是区分底面轮廓上哪些轮廓点建模得到同一个墙面,以便后续可以对每个墙面渲染单独的窗户排布效果,避免了窗户跨多个墙面的不真实问题。
在一种可能的实现方式中,多组目标轮廓点可以包括待建模底面轮廓点串中的全部轮廓点,即针对全部轮廓点分组得到的多组目标轮廓点形成目标区域,该形成的目标区域为待渲染楼块所包括的全部墙面,需要针对全部墙面执行后续步骤。多组目标轮廓点也可以是待建模底面轮廓点串中的部分轮廓点,即针对部分轮廓点分组得到的多组目标轮廓点形成目标区域,该形成的目标区域为待渲染楼块所包括的部分墙面,需要针对部分墙面执行后续步骤。
可以理解的是,同一组的目标轮廓点所形成的区域通常比较平坦,不会有过大的起伏,相应的,位于同一区域的相邻的轮廓点之间形成的线段也不会有过大的偏转,即比较平坦。基于此,在一种可能的实现方式中,对待建模底面轮廓点串进行分组,得到多组目标轮廓点的方式可以是对待建模底面轮廓点串中相邻的两个轮廓点进行连接,得到多条线段,多条线段中每条线段是任意相邻的两个轮廓点之间的线段。然后,针对多条线段中相邻的两条线段,确定相邻的两条线段之间的偏转角,偏转角可以反映相邻的两条线段之间的偏转程度(也可以称为平坦度),进而反映相邻的两条线段是否平坦。偏转角越小,说明相邻的两条线段之间的偏转程度越小,相邻的两条线段越平坦。若相邻的两条线段之间的偏转角小于角度阈值,则确定相邻的两条线段对应的轮廓点属于同一轮廓点组,进而根据每个轮廓点所属的轮廓点组,得到多组目标轮廓点。其中,角度阈值可以是根据实际情况设置的,一般会选择比较小的角度值,本申请实施例对此不做限定。
通过上述方式,可以基于获取的待建模底面轮廓点串过滤出的平坦的能够作为一个墙面的轮廓点作为一组目标轮廓点,从而避免后续渲染的窗户跨多个墙面的不真实问题。
需要说明的是,待渲染楼块可以包括多个墙面,但是并非每个墙面都需要放置窗户,例如有些墙面的尺寸比较小,其尺寸不足以放置窗户,则该墙面对应的渲染效果完全是墙面效果,无需通过后续处理步骤确定是墙面效果还是窗户效果。在这种情况下,可以过滤掉形成过小区域的轮廓点,即根据每个轮廓点所属的轮廓点组,得到多组目标轮廓点的方式可以是根据每个轮廓点所属的轮廓点组,得到多组候选轮廓点。然后确定多组候选轮廓点中每组候选轮廓点所形成的候选区域的尺寸,并判断候选区域的尺寸是否大于尺寸阈值,进而过滤掉尺寸小于或等于尺寸阈值的候选区域,以便根据尺寸大于尺寸阈值的候选区域所对应的候选轮廓点,确定多组目标轮廓点。
其中,尺寸阈值可以是基于窗户数据确定的。以窗户数据是窗户渲染参数为例,若窗户渲染参数包括多个参数,多个参数例如可以是墙面窗户区域的上下左右边距(参数1)、窗户之间行间距和列间距(参数2)、能显示窗户的墙面最小宽高(参数3)、窗户的最小宽度以及窗户高度(参数4),则尺寸阈值可以是根据上述参数3和参数1确定的。
通过本申请实施例的方式确定多组目标轮廓点,可以过滤掉形成过小区域(即不需要放置窗户的区域)的轮廓点,从而后续仅针对可以放置窗户的区域进行更为复杂的计算,减少计算量,提高电子地图中的楼块显示的效率。
S203、根据所述窗户数据,分别确定所述多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果。
接着终端可以根据窗户数据,分别确定每组目标轮廓点所对应目标区域的窗户排布结果。窗户排布结果可以体现作为墙面的目标区域中窗户的排布情况,例如每个放置窗户的区域大小,可以放置多少行、多少列的窗户,单个窗户的宽和高(前提是一个组内的窗户的宽高唯一)等,从而针对每组目标轮廓点所对应目标区域确定单独的窗户排布结果,以便后续针对每个目标区域单独进行渲染。其中,目标区域可以是待渲染楼块所包括的全部墙面或者部分墙面。当目标区域是待渲染楼块所包括的部分墙面时,该部分墙面可以是需要放置窗格的墙面。
在确定出窗户排布结果后,则可以基于窗户的行和列构建所有窗户的索引,例如一共包括3行、3列窗户,则窗户的索引依次可以是(0,0)、(0,1)、(0,2)、(1,0)、(1,1)、(1,2)、(2,0)、(2,1)、(2,2)。
当窗户数据是窗户渲染参数,若窗户渲染参数包括多个参数,多个参数例如可以是墙面窗户区域的上下左右边距(参数1)、窗户之间行间距和列间距(参数2)、能显示窗户的墙面最小宽高(参数3)、窗户的最小宽度以及窗户高度(参数4),则窗户排布结果可以是根据上述参数2和参数4确定的。
可以理解的是,由于不同类型的楼块具有不同的窗户数据,因此,基于对应的窗户数据确定的窗户排布结果也不同。例如,待渲染楼块的类型是居民楼,则其窗户可以是分列式窗户,确定出的窗户排布结果所反映的窗户行和列可能比较多一点,单个窗户的宽和高可能小一点。又如,待渲染楼块的类型是写字楼,则其窗户可以是贯通式窗户,确定出的窗户排布结果所反映的窗户行和列可能比较少一点,比如只有一行一列,单个窗户的宽和高可能很大。
S204、针对每个所述目标区域中的每个像素点,根据所述目标区域的窗户排布结果,确定所述像素点的像素值。
在本申请实施例中,可以采用逐像素绘制的方式进行楼块的显示,逐像素绘制需要确定每个像素点的像素值,因此,在本申请实施例中,针对每个目标区域中的每个像素点,终端可以根据目标区域的窗户排布结果,确定像素点的像素值。在本申请实施例中,像素点位于目标区域的窗户内时,像素点的像素值为窗户像素值,像素点位于目标区域的墙面处时,像素点的像素值为墙面像素值,窗户像素值与墙面像素值不同,以体现不同像素点对应的渲染效果是窗户还是墙面。
需要说明的是,在电子地图中显示楼块可以通过地图渲染引擎实现,例如确定各个像素点的像素值以及后续渲染步骤可以由地图渲染引擎实现。地图渲染引擎可以是实现电子地图显示功能的程序组件。在一种可能的实现方式中,地图渲染引擎可以是指在终端上实现的、使用图形处理器(Graphics Processing Unit,GPU)渲染矢量地图数据的程序。与一般渲染引擎相比,地图渲染引擎有着数据来源多、资源使用(耗电)低、渲染场景大的特点。
GPU在使用地图渲染引擎进行渲染的主要步骤时,GPU可以先接收基于待建模底面轮廓点串进行楼块建模得到的待渲染楼块(即建模结果),然后通过确定各个像素点的像素值对待渲染楼块进行渲染。
地图渲染引擎可以提供一套着色器(shader),从而在GPU中通过shader绘制包括窗户的楼块。着色器可以是一种针对GPU编程的手段,使得GPU知晓如何输出图像(例如电子地图)的可编程代码片段。着色器可以包括顶点着色器和片段着色器,在本申请实施例中,顶点着色器可以对待渲染楼块的顶点进行处理,通过顶点着色器可以改变待渲染楼块的形状,包括其大小、位置、角度、投影等。然后将处理后的数据传入片段着色器,主要的渲染逻辑放在片段着色器,片段着色器可以将顶点着色器输出的数据进行插值计算,并输出每个目标区域中每个像素点的像素值。
S205、基于每个所述目标区域中像素点的像素值,在电子地图中渲染包括窗户的所述待渲染楼块。
在得到每个目标区域中像素点的像素值后,终端可以在电子地图中渲染包括窗户的待渲染楼块。其中,待渲染楼块是基于待建模底面轮廓点串进行楼块建模得到的,待渲染楼块包括基于待建模底面轮廓点串进行轮廓拔高得到的目标区域。
需要说明的是,在确定多组目标轮廓点时,若采用过滤掉形成过小区域的轮廓点的方式确定多组目标轮廓点,多组目标轮廓点为待建模底面轮廓点串中的部分轮廓点,多组目标轮廓点形成目标区域为待渲染楼块所包括的部分候选区域(也可以称部分墙面),而在对待渲染楼块进行渲染时需要渲染全部候选区域,进而需要确定全部候选区域所对应像素点的像素值。而其余候选区域为无需放置窗户的候选区域,故终端可以获取尺寸小于或等于尺寸阈值的候选区域,尺寸小于或等于尺寸阈值的候选区域为无需放置窗户的其余候选区域,进而针对每个尺寸小于或等于尺寸阈值的候选区域,终端可以将候选区域内像素点的像素值确定为墙面像素值。这样,在执行S205时,终端可以基于每个目标区域中像素点的像素值和每个尺寸小于或等于尺寸阈值的候选区域内像素点的像素值,在电子地图中渲染包括窗户的待渲染楼块。
可以理解的是,由于不同类型的楼块具有不同的窗户数据,因此对待渲染楼块进行渲染的渲染效果可能不同。例如,待渲染楼块的类型是居民楼,则对待渲染楼块进行渲染时,其上的窗户可以是分列式窗户,渲染效果参加图4所示。在图4中,待渲染楼块上的窗户可以参见图4中灰色矩形框所示,例如图4中401所示的灰色矩形框,其中一组墙面上包括多行多列窗户(图中以3行3列为例),分布较为密集。又如,待渲染楼块的类型是写字楼,则对待渲染楼块进行渲染时,其上的窗户可以是贯通式窗户,渲染效果参加图5所示。在图5中,待渲染楼块上的窗户可以参见图5中灰色矩形框所示,例如图5中501所示的灰色矩形框,其中一组墙面上包括一个贯通的、比较大的窗户,并未划分为多行多列。
本申请实施例针对不同类型的楼体可以配置不同的窗户数据,从而针对不同类型的楼体得到不同的渲染效果,更具有真实性和代入感。
由上述技术方案可以看出,当需要在电子地图上显示楼块时,可以获取待渲染楼块的窗户数据和待建模底面轮廓点串。然后对待建模底面轮廓点串进行分组,得到多组目标轮廓点,进而根据窗户数据,分别确定多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果,从而针对每组目标轮廓点所对应目标区域确定单独的窗户排布结果,以便后续针对每个目标区域单独进行渲染,避免窗户跨多个墙面的不真实问题。针对每个目标区域中的每个像素点,根据目标区域的窗户排布结果,确定像素点的像素值,像素点位于目标区域的窗户内时,像素点的像素值为窗户像素值,像素点位于目标区域的墙面处时,像素点的像素值为墙面像素值,窗户像素值与墙面像素值不同,以体现不同像素点对应的渲染效果是窗户还是墙面。这样,便可以基于每个目标区域中像素点的像素值,在电子地图中渲染包括窗户的待渲染楼块,从而实现每个目标区域单独渲染,得到每个目标区域单独的窗户排布结果。不同目标区域的窗口排布结果可能不同,进而基于窗口排布结果确定出的像素值不同,从而可以对楼块增加个性化的窗户效果,并且由于每个目标区域单独渲染,从而避免窗户出现错误的渲染效果。
与相关技术提供的楼块显示方式相比,相关技术可以将3D楼块的窗户进行预先建模,窗户的建模结果与底面轮廓一起下发至终端,在终端渲染。相关技术中窗户作为独立于墙面的元素,前期的建模、数据传递成本高,实时渲染的顶点数量也会大大增加。 且建模中与3D楼块的墙面的距离不好控制,窗户的建模结果与墙面的距离过大时,会造成效果不美观不真实,窗户的建模结果与墙面的距离过近,会因渲染中显卡精度有限,引起深度冲突(zfighting),造成闪烁。随着3D楼块的数据下发,渲染的数据量和下载的数据量会大大增加。而本申请实施例提供的方法,无需对窗户进行建模,只需下载待建模底面轮廓点串,没有下载流量的增加。并且墙面和窗户在shader中同一个批次绘制实现,从根本上避免了zfighting闪烁问题,且渲染顶点数量保持一致。
本申请实施例主要是采用逐像素绘制的方式进行楼块的显示,确定每个像素点的像素值是实现本申请实施例提供的方法的关键,接下来,将对如何确定像素点的像素值进行详细介绍。
对于每个目标区域来说,为了渲染出窗户的效果,像素点位于窗户内和位于墙面上所对应的像素值是不同的,因此,为了得到像素点的像素值,则需要确定像素点是否位于窗户内。基于此,针对每个目标区域中的每个像素点,根据目标区域的窗户排布结果,确定像素点的像素值的方式可以是针对每个目标区域,确定目标区域中每个像素点的第一相对位置,第一相对位置可以体现像素点在目标区域中的相对位置。若确定出第一相对位置是否落在窗户所在区域内,则可以确定出像素点是否在窗户内。故针对目标区域中的每个像素点,终端可以根据像素点的第一相对位置、窗户渲染参数和像素点所在目标区域的窗户排布结果,确定像素点在目标区域中所属的楼块组成部分。在本申请实施例中,楼组组成部分可以是窗户,也可以是墙面。通过确定像素点在目标区域中所属的楼块组成部分,便可以确定出像素点是否在窗户内。进而,终端可以根据像素点在目标区域中所属的楼块组成部分,确定像素点的像素值,像素点在目标区域中所属的楼块组成部分为窗户时,则确定像素点位于目标区域的窗户内,像素点在目标区域中所属的楼块组成部分为墙面时,则确定像素点位于目标区域的墙面处。
需要说明的是,前述介绍了确定各个像素点的像素值主要由地图渲染引擎实现,而地图渲染引擎可以是基于GPU使用的,故确定各个像素点的像素值主要是通过GPU实现的。上述介绍的确定各个像素点的像素值方法中,首先确定目标区域中每个像素点的第一相对位置,之后再基于第一相对位置确定各个像素点的像素值。在该方法中,第一相对位置的确定可以不是在GPU中实现的,例如可以是其他处理器实现,进而将第一相对位置与建模结果一起上传到GPU,GPU在接收到第一相对位置后,通过后续步骤实现基于第一相对位置确定各个像素点的像素值。
在一种可能的实现方式中,窗户排布结果中包括窗户的二维尺寸,二维尺寸例如可以是窗户的长和宽,窗户渲染参数中包括窗户的行列间距,则根据像素点的第一相对位置、窗户渲染参数和像素点所在目标区域的窗户排布结果,确定像素点在目标区域中所属的楼块组成部分的方式可以是对二维尺寸和行列间距进行求和计算,得到第一计算结果,然后将第一相对位置与第一计算结果进行相除计算,得到第二计算结果。基于第二计算结果,确定像素点所属的楼块组成部分。
在一种可能的实现方式中,第二计算结果的计算公式可以为:第二计算结果=第一相对位置/(二维尺寸+ 行列间距)。
其中,第一相对位置可以是二维位置坐标,二维尺寸+ 行列间距表示第一计算结果,第一计算结果可以是一个二维结果,第二计算结果也可以是一个二维结果,进而根据第二计算结果可以确定像素点是否位于窗户内,以及在像素点位于窗户内时,通过第二计算结果体现像素点所属窗户的索引,从而确定像素点在哪个窗户。
例如第二计算结果是(2.3,1.1),若基于第二结果确定像素点位于窗户内,则可以对第二计算结果进行向下取整,确定像素点所属窗户的索引是(2,1)。
通过上述方式可以较为准确的确定出像素点所属的楼块组成部分,并且可以在所属的楼块组成部分是窗户时,进一步确定属于哪个窗户,便于后续可以根据属于不同楼块组成部分、属于不同窗户的像素点的像素值,对包括窗户的待渲染楼块进行较为准确的渲染,提升渲染效果。
在一些情况下,对于属于同一窗户的不同像素点来说,由于不同像素点可能位于窗户同。在这种情况下,为了使得渲染效果更加符合实际的窗户效果,根据像素点在目标区域中所属的楼块组成部分,确定像素点的像素值的方式可以是若像素点在目标区域中所属的楼块组成部分为窗户,且所属的窗户为目标窗户时,则可以进一步确定像素点在目标窗户中的第二相对位置,进而基于第二相对位置确定像素点的像素值。
本申请实施例基于像素点在窗户中的第二相对位置确定像素值,可以实现不同位置不同的渲染效果,进而使得渲染效果更加符合实际的窗户效果,更加具有真实性。
可以理解的是,窗户可以分为窗框和玻璃,窗框的材质可以是金属、木材、塑料等,与玻璃的材质可以不同,故窗框与玻璃可以具有不同的渲染效果,以及对窗框和玻璃进行区分。另外,窗框可以是窗户的边界,围绕在玻璃的四周,区分窗户与墙面,因此,为了使得渲染出的窗户更具立体化,窗框的不同位置的像素也可以具有不同的反射方向。基于此,窗户像素值可以包括窗框像素值和玻璃像素值,基于第二相对位置确定像素点的像素值的方式可以是基于第二相对位置确定像素点是在窗框区域还是玻璃区域,进而赋予对应的像素值。具体的,若根据第二相对位置确定像素点在目标窗户的窗框区域,则对法线贴图进行纹理采样得到像素点的法线方向,处于窗框区域不同位置的像素点的法线方向可能不同,进而反射方向也不同。然后基于光照参数和像素点的法线方向,确定像素点的光照强度,并利用光照强度对墙面像素值进行调整,得到像素点的像素值,像素点的像素值为窗框像素值。若根据第二相对位置确定像素点在目标窗户的玻璃区域,确定像素点的像素值为玻璃像素值。
在一些情况下,当通过窗框像素值体现窗户的立体化时,可以不对玻璃区域的颜色和墙面的颜色进行区分,故当像素点在目标窗户的玻璃区域时,像素点的像素值也可以是墙面像素值。
其中,法线贴图可以是预先创建的,法线贴图是为了在原本光滑的物体表面(例如待渲染楼块的墙面)营造出凹凸不平的渲染效果,通过使用红绿蓝(Red-Green-Blue,RGB)三个颜色来存储法线方向,在渲染时根据法线方向计算光照强度展示出不同的明暗状态。
在一种可能的实现方式中,法线贴图可以参见图6中601所示,该法线贴图的大小可以是64*64,通过存储法线方向体现凹凸纹理,窗户的示意图可以参见图6中602所示,包括玻璃区域6021和窗框区域6022。位于玻璃区域6021的像素可以称为中央像素,中央像素保持窗户原有的光照强度,原有的光照强度对应的像素值可以是玻璃像素值。而位于窗框区域6022的像素根据位置的不同,其具有的反射方向可以不同,故对应的像素值(即窗框像素值)可能不同。例如位于窗框区域6022的上边缘对应的像素颜色为青色,则其像素值为青色的像素值,位于窗框区域6022的下边缘对应的像素颜色为紫色,则其像素值为紫色的像素值。需要说明的是,为了避免在附图中出现彩色,在图6的601中,通过白色表示青色,通过灰色表示紫色。
需要说明的是,在基于法线贴图确定法线方向的过程中,对法线贴图进行纹理采样得到的像素点的坐标可能位于0至1的区间,而法线方向可以通过-1至1区间的数值体现,故可以对像素点的坐标进行反归一化,将区间[0,1]中的数值映射到区间[-1,1]中的数值,得到法线方向。
计算得到的法线方向可以通过世界坐标系表示,而法线贴图通常是在切线空间中定义的,因此,在计算光照强度之前可以将法线方向的坐标系从世界坐标系转换到切线空间,以便可以直接利用法线贴图中的数据来计算光照强度。
光照参数可以是模拟的外部光照的参数,例如可以包括漫反射、镜面反射、环境反射等,通过光照参数和像素点的法线方向,确定像素点的光照强度。
在本申请实施例中,计算得到的光照强度可以作为调整墙面像素值的明暗系数,利用光照强度对墙面像素值进行调整,得到像素点的像素值,从而使得窗框区域呈现与墙面颜色不用的颜色,营造出凹凸不平的窗户效果。
本申请实施例将法线贴图应用到窗户的局部区域(例如窗框区域)中,实现每个窗户不同角度光照时的明暗变化,更具立体化。
应理解,现实中有白天有黑夜,在夜间时,现实中的建筑物中可能有的楼层、房间有人,有的楼层或房间没有人,有人的楼层或房间可能会开灯,从窗户可以看见灯光的点亮效果,与夜间看到的墙面效果完全不同。基于此,在电子地图中可以提供白天模式和夜间模式,在夜间模式下,为了使得电子地图中楼块的显示更加生动、有趣,可以在渲染楼块时渲染窗口随机点亮效果。
具体的,若电子地图的显示模式为夜间模式,根据像素点在目标区域中所属的楼块组成部分,确定像素点的像素值的方式可以是若像素点在目标区域中所属的楼块组成部分为窗户,且所属的窗户为目标窗户时,获取目标窗户的窗户索引。目标窗户的窗户索引可以体现像素点位于哪个窗户。然后对窗户索引进行随机算法计算,得到随机颜色索引,进而基于随机颜色索引,从随机颜色列表中确定待渲染随机颜色。待渲染随机颜色可以表示产生随机点亮效果所使用的颜色,接着基于待渲染随机颜色,确定像素点的像素值。
对窗户索引进行随机算法计算可以是指将窗户索引输入至随机算法函数,通过随机算法函数输出一个值,该值可以作为随机颜色索引。例如窗户索引为(2,3),将该窗户索引输入至随机算法函数,通过随机算法函数输出一个值,假设该值是0.3,进而基于该随机颜色索引从随机颜色列表中确定待渲染随机颜色。
随机颜色列表中可以包括多种随机颜色,例如蓝色、黄色、白色等等,每个随机颜色可以通过对应的随机索引得到。随机索引可以是对随机颜色列表的长度取模,并结合随机颜色索引得到。例如随机颜色列表中包括4个颜色,则随机颜色列表中每个颜色的索引依次是0、1、2、3。在得到随机颜色索引后,可以将该随机颜色索引映射为随机颜色列表中的索引,即得到随机索引,进而通过随机索引确定对应的颜色作为待渲染随机颜色。这样,可以为像素点赋予该待渲染随机颜色的像素值。
参见图7所示,图7示出了一种随机点亮效果的示例图。在电子地图中可以提供白天模式和夜间模式,白天模式和夜间模式可以通过模式切换控件进行切换。模式切换控件例如可以参见图7中701所示。通常情况下可以显示白天模式的电子地图,此时,模式切换控件显示的文字可以是看夜景,表示通过点击该模式切换控件,可以切换到夜间模式的电子地图。当切换到夜间模式的电子地图使,模式切换控件显示的文字可以是看白天,表示通过点击该模式切换控件,可以切换到白天模式的电子地图。当需要显示夜间模式的电子地图时,可以从各个窗户中随机选择进行点亮,以实现随机点亮效果,例如图7中702所示,702标识的窗户显示随机点亮效果。
本申请实施例在切换到夜间模式时,可以实现以整个窗户为单位的随机点亮效果,避免了渲染效果的单调性,增强用户体验和交互性,使电子地图看起来更加生动和有趣。
在一种可能的实现方式中,在夜间并不一定所有窗户都能看见灯光,故渲染的窗户并非都具有随机点亮效果。在这种情况下,可以按照一定比例进行随机点亮,该比例可以称为点亮窗户比例,故可以根据随机颜色索引和点亮窗户比例,确定像素点的像素值。若基于随机算法计算得到的随机颜色索引是0至1区间的数值,则基于随机颜色索引,从随机颜色列表中确定待渲染随机颜色的方式可以是获取点亮窗户比例,将随机颜色索引和点亮窗户比例进行比较,若随机颜色索引大于点亮窗户比例,从随机颜色列表中确定待渲染随机颜色。若随机颜色索引小于或等于点亮窗户比例,则无需渲染随机点亮效果,由于在夜间模式下,从视觉上没有随机点亮效果的窗户和墙面没什么区别,因此,可以将像素点的像素值确定为墙面像素值。
通过结合机颜色索引和点亮窗户比例,确定像素点的像素值,可以按照点亮窗户比例实现随机点亮效果,从而更具真实性。
在本申请实施例,可以通过不同的方式对窗户索引进行随机算法计算,得到随机颜色索引。在一些情况下,不同的楼块可能具有类似的轮廓,相似的轮廓的楼块可能具有相似的随机点亮效果。在这种情况下,为了提高随机点亮效果的多样性,对窗户索引进行随机算法计算,得到随机颜色索引的方式可以是获取待渲染楼块的楼块信息参数,不同楼块的楼块信息参数有所不同,然后对楼块信息参数和窗户索引进行随机算法计算,得到随机颜色索引,从而可以针对不同楼块得到不同的随机颜色索引。
楼块参数信息可以是用于区分不同楼块的相关信息,例如可以是楼块自身的身份标识(Identity,ID)、中心点位置等。通过在随机算法计算时引入不同的模块参数信息,即时窗户索引相同,也可以得到不同的随机颜色索引,从而增加了随机点亮效果的随机性。
通过上述方法可以增加点亮窗格位置的随机性,避免轮廓类似甚至相同的楼展现完全一样的随机点亮效果。
上述实施例详细介绍了电子地图中的楼块显示方法,接下来将对电子地图中的楼块显示方法的整体流程进行介绍。参见图8,图8示出了一种电子地图中的楼块显示方法的整体流程示例图。
首先,获取窗户渲染参数和待建模底面轮廓点串。在图8中,窗户渲染参数可以参见801所示,窗户渲染参数中可以包括墙面窗户区域的上下左右边距(参数1)、窗户之间行间距和列间距(参数2)、能显示窗户的墙面最小宽高(参数3)、窗户的最小宽度以及窗户高度(参数4)。对待建模底面轮廓点串进行分组(参见图8中S801所示),得到多组目标轮廓点。对待建模底面轮廓点进行分组的方式主要包括基于平坦度的分组和基于尺寸的过滤。之后,基于平坦度分组可以得到多组候选轮廓点,确定每组候选轮廓点所形成的候选区域是否可以放置窗户(参见图8中S802所示),即判断候选区域的尺寸是否大于尺寸阈值。
若可以放置窗户,则可以将这些候选区域确定为目标区域,根据这些候选区域对应的候选轮廓点确定多组目标轮廓点,针对每个目标区域中的每个像素点,确定像素点在目标区域中的第一相对位置(参见图8中S803所示)。另外,还可以对待建模底面轮廓点串进行楼块建模(参见图8中S804所示),得到待渲染楼块(即建模结果),建模结果可以参见图8中802所示。将S803中得到的第一相对位置和建模结果一起上传至GPU,以便GPU进行渲染,GPU可以参见图8中803所示。
GPU可以根据第一相对位置确定像素点是否在窗户内(参见图8中S805所示),若像素点在窗户内,则计算像素点在窗户内的第二相对位置(参见图8中S806所示),进而基于第二相对位置确定像素点是否在窗框区域(参见图8中S807所示)。若像素点在窗框区域,则可以对法线贴图进行纹理采样(参见图8中S808所示),得到像素点的法线方向,法线贴图可以参见图8中804所示,得到的法线方向可以参见图8中805所示。将法线方向转换至切线空间(参见图8中S809所示),并进行光照计算(参见图8中S810所示),光照计算可以是指利用法线方向和光照参数确定像素点的光照强度,从而得到该像素点的窗户像素值,窗户像素值可以参见图8中806所示,该窗户像素值具体可以为窗框像素值,光照参数可以参见图8中807所示。若像素点不在窗框区域,则可以确定像素点的像素值为墙面像素值,墙面像素值可以参见图8中808所示。
若像素点在窗户内,还可以通过随机算法计算(参见图8中S811所示)实现随机点亮效果,具体可以结合随机颜色列表和点亮窗户比例实现随机点亮效果。若确定对某个窗户进行点亮,则可以使用待渲染随机颜色的像素值代替墙面像素值,得到该窗户内像素点的像素值。此时该像素点的像素值是一种窗户像素值,只不过与像素点位于窗框区域时确定窗户像素值的方式不同。其中,随机颜色列表可以参见图8中809所示,点亮窗户比例可以参见图8中810所示。
需要说明的是,本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
基于前述实施例提供的电子地图中的楼块显示方法,本申请实施例还提供一种电子地图中的楼块显示装置900。参见图9所示,所述电子地图中的楼块显示装置900包括获取单元901、分组单元902、确定单元903和渲染单元904:
所述获取单元901,用于获取待渲染楼块的窗户数据和待建模底面轮廓点串;
所述分组单元902,用于对所述待建模底面轮廓点串进行分组,得到多组目标轮廓点;
所述确定单元903,用于根据所述窗户数据,分别确定所述多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果;
所述确定单元903,还用于针对每个所述目标区域中的每个像素点,根据所述目标区域的窗户排布结果,确定所述像素点的像素值,所述像素点位于所述目标区域的窗户内时,所述像素点的像素值为窗户像素值,所述像素点位于所述目标区域的墙面处时,所述像素点的像素值为墙面像素值,所述窗户像素值与所述墙面像素值不同;
所述渲染单元904,用于基于每个所述目标区域中像素点的像素值,在电子地图中渲染包括窗户的所述待渲染楼块,所述待渲染楼块是基于所述待建模底面轮廓点串进行楼块建模得到的,所述待渲染楼块包括基于所述待建模底面轮廓点串进行轮廓拔高得到的目标区域。
在一种可能的实现方式中,所述分组单元902,用于:
对所述待建模底面轮廓点串中相邻的两个轮廓点进行连接,得到多条线段,所述多条线段中每条线段是任意相邻的两个轮廓点之间的线段;
针对所述多条线段中相邻的两条线段,确定所述相邻的两条线段之间的偏转角;
若所述相邻的两条线段之间的偏转角小于角度阈值,确定所述相邻的两条线段对应的轮廓点属于同一轮廓点组;
根据每个轮廓点所属的轮廓点组,得到所述多组目标轮廓点。
在一种可能的实现方式中,所述分组单元902,用于:
根据每个轮廓点所属的轮廓点组,得到多组候选轮廓点;
确定所述多组候选轮廓点中每组候选轮廓点所形成的候选区域的尺寸;
根据尺寸大于所述尺寸阈值的候选区域所对应的候选轮廓点,确定所述多组目标轮廓点,所述尺寸阈值是基于所述窗户数据确定的。
在一种可能的实现方式中,所述获取单元901,还用于获取尺寸小于或等于所述尺寸阈值的候选区域;
所述确定单元903,还用于针对每个尺寸小于或等于所述尺寸阈值的候选区域,将所述候选区域内像素点的像素值确定为墙面像素值;
所述渲染单元904,用于基于每个所述目标区域中像素点的像素值和每个尺寸小于或等于所述尺寸阈值的候选区域内像素点的像素值,在所述电子地图中渲染包括窗户的所述待渲染楼块。
在一种可能的实现方式中,所述窗户数据为对所述待渲染楼块的窗户排布进行参数化得到的窗户渲染参数。
在一种可能的实现方式中,所述确定单元903,用于:
针对每个所述目标区域,确定所述目标区域中每个像素点的第一相对位置,并针对所述目标区域中的每个像素点,根据所述像素点的第一相对位置、所述窗户渲染参数和所述像素点所在目标区域的窗户排布结果,确定所述像素点在所述目标区域中所属的楼块组成部分;
根据所述像素点在所述目标区域中所属的楼块组成部分,确定所述像素点的像素值,所述像素点在所述目标区域中所属的楼块组成部分为窗户时,确定所述像素点位于所述目标区域的窗户内,所述像素点在所述目标区域中所属的楼块组成部分为墙面时,确定所述像素点位于所述目标区域的墙面处。
在一种可能的实现方式中,所述窗户排布结果中包括窗户的二维尺寸,所述窗户渲染参数中包括窗户的行列间距,所述确定单元903,用于:
对所述二维尺寸和所述行列间距进行求和计算,得到第一计算结果;
将所述第一相对位置与所述第一计算结果进行相除计算,得到第二计算结果;
基于所述第二计算结果,确定所述像素点所属的楼块组成部分。
在一种可能的实现方式中,所述确定单元903,用于:
若所述像素点在所述目标区域中所属的楼块组成部分为窗户,且所属的窗户为目标窗户时,确定所述像素点在所述目标窗户中的第二相对位置;
基于所述第二相对位置确定所述像素点的像素值。
在一种可能的实现方式中,所述窗户像素值包括窗框像素值和玻璃像素值,所述确定单元903,用于:
若根据所述第二相对位置确定所述像素点在所述目标窗户的窗框区域,对法线贴图进行纹理采样得到所述像素点的法线方向;
基于光照参数和所述像素点的法线方向,确定所述像素点的光照强度;
利用所述光照强度对墙面像素值进行调整,得到所述像素点的像素值,所述像素点的像素值为窗框像素值;
若根据所述第二相对位置确定所述像素点在所述目标窗户的玻璃区域,确定所述像素点的像素值为玻璃像素值。
在一种可能的实现方式中,若所述电子地图的显示模式为夜间模式,所述确定单元903,用于:
若所述像素点在所述目标区域中所属的楼块组成部分为窗户,且所属的窗户为目标窗户时,获取所述目标窗户的窗户索引;
对所述窗户索引进行随机算法计算,得到随机颜色索引;
基于所述随机颜色索引,从随机颜色列表中确定待渲染随机颜色;
基于所述待渲染随机颜色,确定所述像素点的像素值。
在一种可能的实现方式中,所述确定单元903,用于:
获取点亮窗户比例;
将所述随机颜色索引和所述点亮窗户比例进行比较;
若所述随机颜色索引大于所述点亮窗户比例,从所述随机颜色列表中确定所述待渲染随机颜色。
在一种可能的实现方式中,所述确定单元903,用于:
获取所述待渲染楼块的楼块信息参数;
对所述楼块信息参数和所述窗户索引进行随机算法计算,得到所述随机颜色索引。
在一种可能的实现方式中,所述获取单元901,用于:
获取所述待渲染楼块的类型;
根据所述类型,获取所述窗户数据。
由上述技术方案可以看出,当需要在电子地图上显示楼块时,可以获取待渲染楼块的窗户数据和待建模底面轮廓点串。然后对待建模底面轮廓点串进行分组,得到多组目标轮廓点,进而根据窗户数据,分别确定多组目标轮廓点中每组目标轮廓点所对应目标区域的窗户排布结果,从而针对每组目标轮廓点所对应目标区域确定单独的窗户排布结果,以便后续针对每个目标区域单独进行渲染,避免窗户跨多个墙面的不真实问题。针对每个目标区域中的每个像素点,根据目标区域的窗户排布结果,确定像素点的像素值,像素点位于目标区域的窗户内时,像素点的像素值为窗户像素值,像素点位于目标区域的墙面处时,像素点的像素值为墙面像素值,窗户像素值与墙面像素值不同,以体现不同像素点对应的渲染效果是窗户还是墙面。这样,便可以基于每个目标区域中像素点的像素值,在电子地图中渲染包括窗户的待渲染楼块,从而实现每个目标区域单独渲染,得到每个目标区域单独的窗户排布结果。不同目标区域的窗口排布结果可能不同,进而基于窗口排布结果确定出的像素值不同,从而可以对楼块增加个性化的窗户效果,并且由于每个目标区域单独渲染,从而避免窗户出现错误的渲染效果。
本申请实施例还提供了一种计算机设备,该计算机设备可以执行电子地图中的楼块显示方法。该计算机设备可以是终端,图10示出的是本申请实施例提供的一种终端的结构图。在图10中,以终端为智能手机为例:
参考图10,智能手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(英文缩写:WiFi)模块1070、处理器1080、以及电源1090等部件。输入单元1030可包括触控面板1031以及其他输入设备1032,显示单元1040可包括显示面板1041,音频电路1060可以包括扬声器1061和传声器1062。可以理解的是,图10中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器1080是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行智能手机的各种功能和处理数据。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
在本实施例中,智能手机中的处理器1080可以执行本申请各实施例提供的电子地图中的楼块显示方法。
本申请实施例提供的计算机设备还可以是服务器,请参见图11所示,图11为本申请实施例提供的服务器1100的结构图,服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器,例如中央处理器(Central Processing Units,简称CPU)1122,以及存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
在本实施例中,服务器1100中的中央处理器1122可以执行本申请各实施例提供的电子地图中的楼块显示方法。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行前述各个实施例所述的电子地图中的楼块显示方法。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是终端,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (16)
1.一种电子地图中的楼块显示方法,其特征在于,所述方法包括:
获取待渲染楼块的窗户数据和待建模底面轮廓点串,其中,所述窗户数据为对所述待渲染楼块的窗户排布进行参数化得到的窗户渲染参数,所述窗户数据是根据待渲染楼块的类型获取的,不同类型的楼块对应的窗户数据不同;
对所述待建模底面轮廓点串中相邻的两个轮廓点进行连接,得到多条线段,所述多条线段中每条线段是任意相邻的两个轮廓点之间的线段;
针对所述多条线段中相邻的两条线段,确定所述相邻的两条线段之间的偏转角,所述偏转角反映相邻的两条线段之间的平坦度;
若所述相邻的两条线段之间的偏转角小于角度阈值,确定所述相邻的两条线段对应的轮廓点属于同一轮廓点组;
根据每个轮廓点所属的轮廓点组,得到多组目标轮廓点;所述多组目标轮廓点为所述待建模底面轮廓点串中的全部轮廓点或者部分轮廓点;
根据所述窗户数据,分别确定所述多组目标轮廓点中每组目标轮廓点所对应目标区域的单独的窗户排布结果;
针对每个所述目标区域,确定所述目标区域中每个像素点的第一相对位置,并针对所述目标区域中的每个像素点,根据所述像素点的第一相对位置、所述窗户渲染参数和所述像素点所在目标区域的窗户排布结果,确定所述像素点在所述目标区域中所属的楼块组成部分;
根据所述像素点在所述目标区域中所属的楼块组成部分,确定所述像素点的像素值,所述像素点在所述目标区域中所属的楼块组成部分为窗户时,确定所述像素点位于所述目标区域的窗户内,所述像素点的像素值为窗户像素值,所述像素点在所述目标区域中所属的楼块组成部分为墙面时,确定所述像素点位于所述目标区域的墙面处,所述像素点的像素值为墙面像素值,所述窗户像素值与所述墙面像素值不同;
基于每个所述目标区域中像素点的像素值,在电子地图中渲染包括窗户的所述待渲染楼块,所述待渲染楼块是基于所述待建模底面轮廓点串进行楼块建模得到的,所述待渲染楼块包括基于所述待建模底面轮廓点串进行轮廓拔高得到的目标区域;
若所述电子地图的显示模式为夜间模式,所述根据所述像素点在所述目标区域中所属的楼块组成部分,确定所述像素点的像素值,包括:
若所述像素点在所述目标区域中所属的楼块组成部分为窗户,且所属的窗户为目标窗户时,获取所述目标窗户的窗户索引和点亮窗户比例;
对所述窗户索引进行随机算法计算,得到随机颜色索引;
将所述随机颜色索引和所述点亮窗户比例进行比较;
若所述随机颜色索引大于所述点亮窗户比例,从所述随机颜色列表中确定所述待渲染随机颜色;
基于所述待渲染随机颜色,确定所述像素点的像素值。
2.根据权利要求1所述的方法,其特征在于,所述根据每个轮廓点所属的轮廓点组,得到多组目标轮廓点,包括:
根据每个轮廓点所属的轮廓点组,得到多组候选轮廓点;
确定所述多组候选轮廓点中每组候选轮廓点所形成的候选区域的尺寸;
根据尺寸大于尺寸阈值的候选区域所对应的候选轮廓点,确定所述多组目标轮廓点,所述尺寸阈值是基于所述窗户数据确定的。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取尺寸小于或等于所述尺寸阈值的候选区域;
针对每个尺寸小于或等于所述尺寸阈值的候选区域,将所述候选区域内像素点的像素值确定为墙面像素值;
所述基于每个所述目标区域中像素点的像素值,在电子地图中渲染包括窗户的待渲染楼块,包括:
基于每个所述目标区域中像素点的像素值和每个尺寸小于或等于所述尺寸阈值的候选区域内像素点的像素值,在所述电子地图中渲染包括窗户的所述待渲染楼块。
4.根据权利要求1所述的方法,其特征在于,所述窗户排布结果中包括窗户的二维尺寸,所述窗户渲染参数中包括窗户的行列间距,所述根据所述像素点的第一相对位置、所述窗户渲染参数和所述像素点所在目标区域的窗户排布结果,确定所述像素点在所述目标区域中所属的楼块组成部分,包括:
对所述二维尺寸和所述行列间距进行求和计算,得到第一计算结果;
将所述第一相对位置与所述第一计算结果进行相除计算,得到第二计算结果;
基于所述第二计算结果,确定所述像素点所属的楼块组成部分。
5.根据权利要求1所述的方法,其特征在于,所述根据所述像素点在所述目标区域中所属的楼块组成部分,确定所述像素点的像素值,包括:
若所述像素点在所述目标区域中所属的楼块组成部分为窗户,且所属的窗户为目标窗户时,确定所述像素点在所述目标窗户中的第二相对位置;
基于所述第二相对位置确定所述像素点的像素值。
6.根据权利要求5所述的方法,其特征在于,所述窗户像素值包括窗框像素值和玻璃像素值,所述基于所述第二相对位置确定所述像素点的像素值,包括:
若根据所述第二相对位置确定所述像素点在所述目标窗户的窗框区域,对法线贴图进行纹理采样得到所述像素点的法线方向;
基于光照参数和所述像素点的法线方向,确定所述像素点的光照强度;
利用所述光照强度对墙面像素值进行调整,得到所述像素点的像素值,所述像素点的像素值为窗框像素值;
若根据所述第二相对位置确定所述像素点在所述目标窗户的玻璃区域,确定所述像素点的像素值为玻璃像素值。
7.根据权利要求1所述的方法,其特征在于,所述对所述窗户索引进行随机算法计算,得到随机颜色索引,包括:
获取所述待渲染楼块的楼块信息参数;
对所述楼块信息参数和所述窗户索引进行随机算法计算,得到所述随机颜色索引。
8.一种电子地图中的楼块显示装置,其特征在于,所述装置包括获取单元、分组单元、确定单元和渲染单元:
所述获取单元,用于获取待渲染楼块的窗户数据和待建模底面轮廓点串,其中,所述窗户数据为对所述待渲染楼块的窗户排布进行参数化得到的窗户渲染参数,所述窗户数据是根据待渲染楼块的类型获取的,不同类型的楼块对应的窗户数据不同;
所述分组单元,用于对所述待建模底面轮廓点串中相邻的两个轮廓点进行连接,得到多条线段,所述多条线段中每条线段是任意相邻的两个轮廓点之间的线段;针对所述多条线段中相邻的两条线段,确定所述相邻的两条线段之间的偏转角,所述偏转角反映相邻的两条线段之间的平坦度;若所述相邻的两条线段之间的偏转角小于角度阈值,确定所述相邻的两条线段对应的轮廓点属于同一轮廓点组;根据每个轮廓点所属的轮廓点组,得到多组目标轮廓点,所述多组目标轮廓点为所述待建模底面轮廓点串中的全部轮廓点或者部分轮廓点;
所述确定单元,用于根据所述窗户数据,分别确定所述多组目标轮廓点中每组目标轮廓点所对应目标区域的单独的窗户排布结果;
所述确定单元,还用于针对每个所述目标区域,确定所述目标区域中每个像素点的第一相对位置,并针对所述目标区域中的每个像素点,根据所述像素点的第一相对位置、所述窗户渲染参数和所述像素点所在目标区域的窗户排布结果,确定所述像素点在所述目标区域中所属的楼块组成部分;根据所述像素点在所述目标区域中所属的楼块组成部分,确定所述像素点的像素值,所述像素点在所述目标区域中所属的楼块组成部分为窗户时,确定所述像素点位于所述目标区域的窗户内,所述像素点的像素值为窗户像素值,所述像素点在所述目标区域中所属的楼块组成部分为墙面时,确定所述像素点位于所述目标区域的墙面处,所述像素点的像素值为墙面像素值,所述窗户像素值与所述墙面像素值不同;
所述渲染单元,用于基于每个所述目标区域中像素点的像素值,在电子地图中渲染包括窗户的所述待渲染楼块,所述待渲染楼块是基于所述待建模底面轮廓点串进行楼块建模得到的,所述待渲染楼块包括基于所述待建模底面轮廓点串进行轮廓拔高得到的目标区域;
若所述电子地图的显示模式为夜间模式,所述确定单元,用于:
若所述像素点在所述目标区域中所属的楼块组成部分为窗户,且所属的窗户为目标窗户时,获取所述目标窗户的窗户索引;
对所述窗户索引进行随机算法计算,得到随机颜色索引;
基于所述随机颜色索引,从随机颜色列表中确定待渲染随机颜色;
所述确定单元,用于:
获取点亮窗户比例;
将所述随机颜色索引和所述点亮窗户比例进行比较;
若所述随机颜色索引大于所述点亮窗户比例,从所述随机颜色列表中确定所述待渲染随机颜色。
9.根据权利要求8所述的装置,其特征在于,所述分组单元,具体用于:
根据每个轮廓点所属的轮廓点组,得到多组候选轮廓点;
确定所述多组候选轮廓点中每组候选轮廓点所形成的候选区域的尺寸;
根据尺寸大于尺寸阈值的候选区域所对应的候选轮廓点,确定所述多组目标轮廓点,所述尺寸阈值是基于所述窗户数据确定的。
10.根据权利要求9所述的装置,其特征在于,所述获取单元,还用于获取尺寸小于或等于所述尺寸阈值的候选区域;
所述确定单元,还用于针对每个尺寸小于或等于所述尺寸阈值的候选区域,将所述候选区域内像素点的像素值确定为墙面像素值;
所述渲染单元,用于基于每个所述目标区域中像素点的像素值和每个尺寸小于或等于所述尺寸阈值的候选区域内像素点的像素值,在所述电子地图中渲染包括窗户的所述待渲染楼块。
11.根据权利要求8所述的装置,其特征在于,所述窗户排布结果中包括窗户的二维尺寸,所述窗户渲染参数中包括窗户的行列间距,所述确定单元,用于:
对所述二维尺寸和所述行列间距进行求和计算,得到第一计算结果;
将所述第一相对位置与所述第一计算结果进行相除计算,得到第二计算结果;
基于所述第二计算结果,确定所述像素点所属的楼块组成部分。
12.根据权利要求8所述的装置,其特征在于,所述确定单元,用于:
若所述像素点在所述目标区域中所属的楼块组成部分为窗户,且所属的窗户为目标窗户时,确定所述像素点在所述目标窗户中的第二相对位置;
基于所述第二相对位置确定所述像素点的像素值。
13.根据权利要求12所述的装置,其特征在于,所述窗户像素值包括窗框像素值和玻璃像素值,所述确定单元,用于:
若根据所述第二相对位置确定所述像素点在所述目标窗户的窗框区域,对法线贴图进行纹理采样得到所述像素点的法线方向;
基于光照参数和所述像素点的法线方向,确定所述像素点的光照强度;
利用所述光照强度对墙面像素值进行调整,得到所述像素点的像素值,所述像素点的像素值为窗框像素值;
若根据所述第二相对位置确定所述像素点在所述目标窗户的玻璃区域,确定所述像素点的像素值为玻璃像素值。
14.根据权利要求8所述的装置,其特征在于,所述确定单元,用于:
获取所述待渲染楼块的楼块信息参数;
对所述楼块信息参数和所述窗户索引进行随机算法计算,得到所述随机颜色索引。
15.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序中的指令执行权利要求1-7任一项所述的方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,计算机设备的处理器执行所述计算机程序,使得计算机执行权利要求1-7任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410336108.1A CN117931979B (zh) | 2024-03-22 | 2024-03-22 | 一种电子地图中的楼块显示方法和相关装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410336108.1A CN117931979B (zh) | 2024-03-22 | 2024-03-22 | 一种电子地图中的楼块显示方法和相关装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN117931979A CN117931979A (zh) | 2024-04-26 |
| CN117931979B true CN117931979B (zh) | 2024-07-05 |
Family
ID=90757785
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410336108.1A Active CN117931979B (zh) | 2024-03-22 | 2024-03-22 | 一种电子地图中的楼块显示方法和相关装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN117931979B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118799492B (zh) * | 2024-07-05 | 2025-03-14 | 金泰(深圳)国际文化科技有限公司 | 基于人工智能技术的智能积木数字化展示方法及系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114842125A (zh) * | 2022-03-28 | 2022-08-02 | 阿里巴巴(中国)有限公司 | 建筑物渲染方法、装置、电子设备及程序产品 |
| CN117274535A (zh) * | 2023-11-22 | 2023-12-22 | 北京飞渡科技股份有限公司 | 基于点云密度重构实景三维模型的方法、装置及电子设备 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016106365A1 (en) * | 2014-12-22 | 2016-06-30 | Robert Bosch Gmbh | System and methods for generating procedural window lighting effects |
| US10706615B2 (en) * | 2015-12-08 | 2020-07-07 | Matterport, Inc. | Determining and/or generating data for an architectural opening area associated with a captured three-dimensional model |
| CN117152379B (zh) * | 2023-09-01 | 2024-05-07 | 北京数字政通科技股份有限公司 | 一种建筑物外观模型自动化构建方法及装置 |
| CN117115243B (zh) * | 2023-10-23 | 2024-02-09 | 北京科技大学 | 一种基于街景图片的建筑群外立面窗户定位方法及装置 |
-
2024
- 2024-03-22 CN CN202410336108.1A patent/CN117931979B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114842125A (zh) * | 2022-03-28 | 2022-08-02 | 阿里巴巴(中国)有限公司 | 建筑物渲染方法、装置、电子设备及程序产品 |
| CN117274535A (zh) * | 2023-11-22 | 2023-12-22 | 北京飞渡科技股份有限公司 | 基于点云密度重构实景三维模型的方法、装置及电子设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN117931979A (zh) | 2024-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112316420B (zh) | 模型渲染方法、装置、设备及存储介质 | |
| CN109427088B (zh) | 一种模拟光照的渲染方法及终端 | |
| CN112215934B (zh) | 游戏模型的渲染方法、装置、存储介质及电子装置 | |
| CN110458930B (zh) | 三维地图的渲染方法、装置及存储介质 | |
| CN107749077B (zh) | 一种卡通风格光影渲染方法、装置、设备及介质 | |
| CN113658316B (zh) | 三维模型的渲染方法和装置、存储介质及计算机设备 | |
| CN114119818B (zh) | 场景模型的渲染方法、装置及设备 | |
| CN114119847B (zh) | 一种图形处理方法、装置、计算机设备及存储介质 | |
| CN110115841B (zh) | 一种游戏场景中植被对象的渲染方法和装置 | |
| CN117931979B (zh) | 一种电子地图中的楼块显示方法和相关装置 | |
| CN114241151B (zh) | 三维模型简化方法、装置、计算机设备和计算机存储介质 | |
| CN114119848A (zh) | 一种模型渲染方法、装置、计算机设备及存储介质 | |
| CN112215938B (zh) | 游戏中反射光照数据的生成方法、装置以及计算机设备 | |
| CN110197525B (zh) | 虚拟建筑模型的窗口灯光控制方法、装置、处理器及终端 | |
| CN114638950A (zh) | 一种绘制虚拟物体阴影的方法及设备 | |
| US20170287201A1 (en) | Texture generation system | |
| CN112560126A (zh) | 用于3d打印的数据处理方法、系统及存储介质 | |
| CN114367105B (zh) | 模型着色方法、装置、设备、介质和程序产品 | |
| CN113313798B (zh) | 云图的制作方法及装置、存储介质、计算机设备 | |
| CN113808246A (zh) | 一种贴图的生成方法、装置、计算机设备及计算机可读存储介质 | |
| CN117475053B (zh) | 草地渲染方法及装置 | |
| CN116036607B (zh) | 一种虚拟对象的皮肤调整方法、装置、设备及存储介质 | |
| CN115845369A (zh) | 卡通风格渲染方法、装置、电子设备及存储介质 | |
| CN115761121A (zh) | 云雾生成方法、装置及电子设备 | |
| CN115131493A (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 |