基于建筑物屋顶的3d表示的屋顶和建筑物结构而传输所述结构的方法、设备和程序的制作方法

文档序号:6569802阅读:171来源:国知局
专利名称:基于建筑物屋顶的3d表示的屋顶和建筑物结构而传输所述结构的方法、设备和程序的制作方法
技术领域
1. 发明领域
本发明领域涉及3维图像和3D场景的可视化。更具体而言,本发
收时对该数据的处理的数据传输技术。
更具体地,可将其应用到对于由建筑群构成的城市或都市场景模型 的可视化,以及提出了基于建筑物"檐部(eave gutter)"轮廓自动重构 屋顶(roof)的技术。因此,这使得能够在远程浏览器上显示出忠于实 际、屋顶变化复杂的建筑物的3D模型。
背景技术
2. 现有4支术解决方案
迄今为止,已知有数种用于对大都市环境进行自动建模的技术,所 有这些技术的同样目标是缩减对乡镇和城市建模的成本。这些技术例如 依赖于摄影测量方法、雷达图像分析以及对于由机载扫描仪获得的高低 立浮见图的4吏用。
这些技术的大多数提供了所谓的"2D1/2"模型,该模型包括与建 筑物的基底处的海拔高度及其檐部高度相关的一组建筑物脚点 (footprint)。该建模因此呈棱柱状,这是因为为了获得建筑物的3D表 示,它包括建筑物脚点沿其檐部高度的挤压(extrusion )。 一旦通过该 挤压技术重构了墙壁,则为了获得城市或建筑物的真实再现,还必需重 构屋顶的3D表示。
迄今为止,已知有数种用于使远程浏览器能够实现这样重构的屋顶 模型传输技术。从而,依赖于VRML (虚拟现实建模语言)的第一种技术包括, 采用一组与要重构屋顶(在VRML中称为"索引面集"函数)的不同 面(也称斜边)相对应的多边形的形式实现的屋顶模型传输。
由P. Felkel和S. Obdrzalek在"Straight skeleton implementation" (1998年Spring Conference on Computer Graphics B义)中提出的另 一种技术包括,在确定其直立骨架以及实现其尖端的提升时,根据建筑 物的脚点自动重构屋顶。
3. 现有技术的缺点
然而,这些不同技术并不能都符合以下约束 —当前通信网络的大多数的比特率较低,以及 —最终用户对视觉真实性的需求。
从而,在复杂屋顶的情形中,包括传输屋顶模型,在VRML中釆 用其面集的形式,的技术生成很大量的数据,或甚至无法传输的大量数
据。而在接收处,要能够以较现实方式对屋顶的大多数形状进行重构, 在可能包含数十万栋建筑物的城市模型的情形中,该技术相当不适用, 并且对于3D屋顶模型集通过网络的传输时间将非常大。
由P. Felkel和S. Obdrzalek提出的自动屋顶创建才支术部分资源开 销不大,这是由于,它基于已传输到用户的建筑物的脚点的直立骨架提 供屋顶结构。然而,该技术不能重构脊型屋顶(也称具有数个斜边的屋 顶,其中,斜边相对于地平线具有同样的斜角)的3D表示。因此,该 技术不适于真实城市模型的表示,在所述城市中建筑物可能具有各种类 型的屋顶,特别是具有多重斜边的复杂的山墙屋顶和脊型屋顶。

发明内容
4. 本发明的目的
本发明的目的在于克服现有技术的这些缺陷。
更具体而言,本发明的目的在于提供对于建筑物3D表示的屋顶结 构的传输技术,其生成要传输的数据流,与现有技术的情形相比该数据 流更紧凑,而同时能够在接收时重构所有类型的屋顶,包括复杂屋顶。本发明的另一目的在于,提出易于实现并获得对重构屋顶真实再现 的这种技术。
本发明的又一目的在于,提供适于所有类型可视终端,特别是具有 适度处理容量的终端的这种技术。
5.本发明的^fL要
本发明的以上这些目的以及可存在的其他目的通过用于重构建筑物 3D表示的屋顶结构通过通信网络的传输方法实现。
根据本发明,该方法包括传输至少两个屋顶模型的有序列表的步 骤,每个屋顶模型至少包括
一屋顶类型;
一所述屋顶的最大高度参数;
并且,所述列表的屋顶的所述最大高度参数确定出在所述列表中随 后屋顶的基底,以便所述屋顶结构与所述列表的所述屋顶的有序叠加相 对应。
从而,本发明依赖于全新且富有创造性的方法传输用于重构或重建 建筑物的3D表示的屋顶结构。
确实,本发明提出的技术有赖于使用形成简单和紧致数据传输形态 (transmission shape)的程序化屋顶模型确实,每个屋顶模型通过屋顶 类型(可仅在一些位上对其进行编码,这取决于所考虑的屋顶类型的数 量),和一个或多个参数(包括最大高度参数)进行描述。那么,传输 每个屋顶模型所需的数据量则相当小。
此外,釆用有序列表传输这些屋顶模型,其排序定义出要重构的屋 顶结构的叠加顺序。从而,通过列表中不同屋顶的叠加,有可能重构复 杂屋顶的3D表示,从而使得能够为最终用户进行高度真实的再现。
因此,本发明的技术能够解决要传输的数据紧凑性和重构屋顶的真 实性和复杂性的双重技术问题。
有益的是,所述屋顶类型从包括以下项的组中选出
一山墙型屋顶(gable type roof);
一脊型屋顶(hip type roof);一不对称双坡型屋顶(saltbox type roof)。
在此,回忆如下数个定义将山墙型屋顶理解为具有至少一个山墙 的屋顶,术语"山墙"表示尖端具有屋脊末端的墙的三角形顶。相比之 下,脊型屋顶表示在其末端不具有山墙但是具有斜坡(以下称为斜边) 的屋顶,该斜坡与屋顶的两个较大边连接。因此,脊型屋顶是包括至少 四个倾斜斜坡的屋顶,斜坡中两个为一组在其相交处形成至少四个边 缘。(当然应该注意,如果建筑物的脚点为三角形,则可该建筑物的脊 型屋顶仅具有三个倾斜斜坡是可能发生的)。下面,还将脊型屋顶表示 为具有数个斜面的屋顶,脊型屋顶与不对称双坡型屋顶或仅具有一个斜 面(仅具有一个倾斜边)的屋顶相对。
优选的是,所述有序列表的所述屋顶模型还包括属于包括以下项的 组的*中的至少一个
—所述屋顶的至少一个斜边的斜角参数; 一所述屋顶的至少一个檐部的突出(projection)!*, 一旦识别其类型,屋顶最大高度,其不同斜坡的斜角以及在存在檐 部的情形中,其突出使得能够重构屋顶的完全3D表示。檐部的突出参 数的确使得重新计算与屋顶相接的尖端的位置,以便使它们沿屋顶斜墙 的倾斜方向伸出建筑物墙壁外。檐部的突出表示在突出到建筑物墙壁之 外的屋顶末端与该墙本身之间的最小距离。
才艮据有益特性,当所述屋顶属于不对称双坡型时,所述屋顶模型还 包括由属于所述屋顶的所述建筑物最低边缘的索引所定义的支撑边缘参 数。
当为了重建建筑物的墙壁已经传输了所述边缘时,则取回与在所述 屋顶结构的传输期间相应屋顶模型相关的其索引就足够了。
有益的是,所述有序列表还包括至少一个扁平型屋顶模型,该模型 不包括任何参数。对脊型、山墙型和不对称双坡型屋顶添加扁平型屋顶 时,获得屋顶类型的最小列表,使得能够重构全部现有屋顶,无论是简 单还是复杂。在定义上,扁平屋顶具有零高度和倾角,因此不与任何参 数相关联。然而,有可能着眼于在屋顶模型传输中的同质性以展望其与零M的关联。
本发明还涉;5L^示用于构建建筑物的3D表示的屋顶结构的数据信 号,其表示至少两个屋顶模型的有序列表的结构,其中,每个屋顶模型 至少包括
—包含屋顶类型的字段;
—包含所述屋顶最大高度的字段。
包含所述列表的屋顶的最大高度的字段确定出在所述列表中随后屋 顶的基底,以便所述屋顶结构与所述列表的所述屋顶的有序叠加相对 应。
信号的有序列表结构使得能够定义将所传输屋顶模型必须这样叠加 以重构建筑物的真实屋顶结构的顺序,从而,从简单的初步堆砌(brick) 获得复杂屋顶的3D表示。这些简单的初步堆砌是程序化屋顶模型,该 程序化屋顶模型被结构化为包括屋顶类型和最大屋顶高度的数据字段 由该简单结构得出JH^输的少量数据。
换而言之,假定通过非常少的数据片对真实屋顶实现很好近似,则 对每个建筑物有一个屋顶结构要传输到网络上。
优选的是,包含屋顶类型的所述字段可根据屋顶类型是否为以下类 型可具有三个不同的值
-山墙型屋顶;
一脊型屋顶;
—不对称双坡型屋顶。
例如,将脊型屋顶编码为'T,,将山墙型屋顶编码为"2",将不对 称双坡型屋顶编码为"3"。为确保更精确,包含屋顶类型的字段可具有 5个不同的值,这取决于屋顶是否为扁平型、山墙型、脊型、不对称双 坡型或具有数个不同斜坡的边的其他类型。
有益的是,本发明的信号结构为使得所述有序列表的屋顶的所M 型还包括属于包括以下项的组的至少其中一个字段
一包含所述屋顶的至少一个斜边的斜角参数的字段;
—包含所述屋顶的至少 一个檐部的突出参数的字段。优选的是,当包含屋顶类型的所述字^示所述屋顶属于不对称双 坡型时,屋顶模型还包括,包含由属于所述屋顶的所述建筑物的最低边 缘的索引所定义的支撑边缘M的字段。
本发明还涉及用于存储上述数据信号的数据载体,其具有用于存储 至少两个屋顶模型的有序列表的结构,每个屋顶模型采用至少如下形

一包含屋顶类型的存储区;
—包含所述屋顶的最大高度的存储区。
这种类型的数据载体的结构是,使得包含所述列表的屋顶的最大高 度的存储区确定出在所述列表中随后屋顶的基底,以便所述屋顶结构与 所述列表的所述屋顶的有序叠加相对应。
本发明还涉及可从通信网络下载和/或存储在计算机可读载体和/或 可由微处理器执行的计算机程序产品,它包括用于实现如上所述屋顶结 构的传输方法的程序代码指令。
本发明还涉及传输服务器,用于使构建建筑物的3D表示的屋顶结 构通过通信网络,它包括用于传输至少两个屋顶模型的有序列表的装 置,每个屋顶模型至少包括
—屋顶类型;
—所述屋顶的最大高度参数。
所述列表的屋顶的所述最大高度M确定出在所述列表中随后屋顶 的基底,以便所述屋顶结构与所述列表的所述屋顶的有序叠加相对应。 本发明还涉及用于构建建筑物屋顶的3D表示的方法。 根据本发明,这样的方法包括,用于获得屋顶结构的步骤,所迷屋 顶结构采用至少两个屋顶模型的有序列表的形式,每个屋顶模型至少包 括
一屋顶类型;
一所述屋顶的最大高度参数; 并且,它实现
一对于所述有序列表中除最后一个屋顶之外的每个所述屋顶,进行以下步骤的至少一次迭代
—由所述建筑物的至少一个上面,作为所述屋顶类型的函数,构建 所述列表的屋顶的表示;
—作为所述屋顶的所述最大高度^t的函数截取所述构建的屋顶, 传递截取的屋顶;
—确定成为所述建筑物的所述至少 一个上面的所述截取的屋顶的至 少一个上面;
—对于所述有序列表的最后屋顶,进行由所述建筑物的所述至少一 个上面,作为所述屋顶类型的函数,构建所述屋顶的表示的步骤,如果 构建的所述最后屋顶的高度大于所述最后屋顶的最大高度,进行对构建 的所述最后屋顶的截取的步骤。
获得有序列表可包括,例如,接收通过通信网络(例如,世界 Internet网络)传送的该列表,或从数据载体(CD-ROM或DVD类 型)载入该列表。通过作为其最大高度的函数的其截取,列表的屋顶的 该连续叠加使得能够重构复杂的屋顶。从而,将其斜边集具有不同斜角 的两个山墙型屋顶叠加,有可能获得复折型屋顶(curb roof)的3D表 示。可以想到复折型屋顶是具有两个斜坡的屋顶,每个屋顶以钝角折 断,以便下坡比上坡更陡。
有可能将众多屋顶作为列表传递的模型的数量的函数进行叠加。叠 加的屋顶可属于山墙型、脊型和不对称双坡型,以及对于列表的最后屋 顶而言的扁平型。
根据有益特性,构建屋顶表示的所述步骤包括子步骤
—计算所述屋顶的2D结构;
—作为所述屋顶的至少一个斜角的函数提升所述屋顶。
从而,在识别出在其2D结构中屋顶的尖端之后,根据其高度,沿
垂直方向将其移动,以构建屋顶的3D表示。作为屋顶不同斜边的斜度
的函数计算尖端的高度。
如果屋顶包括檐部,构建所述列表的屋顶表示的所述步骤包括关于
所述屋顶的至少一个檐部的突出的计算的子步骤,使得屋顶外部尖端移动以便突出到建筑物墙壁以外。
根据本发明的有益特性,所述构建屋顶的所述截取步骤包括子步
一确定相对于所述建筑物的所述上面的其海拔高度等于所述屋顶的
所述最大高度的截取平面;
一扫描所述构建屋顶的边缘,并且标记所述边缘相对于所述截取平 面的位置;
一构建处在所述截取平面下方的边缘和/或边缘部分的列表,称之 为所述屋顶的更高边缘的列表;
—扫描所述屋顶的更高边缘的所述列表,以便确定所述截取屋顶的
所述至少一个上面。
从而,当列表中的屋顶超出限高(例如,由用户设定)时,将其截 取。对屋顶这样剪切得到与截取屋顶上部分相对应的一个或多个多边 形。只要在有序列表中存在要叠加的屋顶,则采用由前一屋顶的截取得 出的上面作为要重构的屋顶的基底,反复迭代该过程。
优选的是,对于脊型屋顶或山墙型屋顶,计算所述屋顶的2D结构 的所述子步骤实现关于多边形直立骨架的计算,所述多边形区分了
一所述有序列表的第 一屋顶的所述建筑物的脚点;
一对于所述有序列表的其他屋顶的所述建筑物的所述至少一个上面 (upper face);
以及,对于山墙型屋顶,关于所述屋顶的2D结构的计算的所述子 步骤还实现了所述直立骨架的至少一个末端尖端在所述多边形的至少一 个相应边缘上的突出。
优选的是,对于单斜坡型屋顶或扁平型屋顶,关于所述屋顶的2D 结构的计算的所述子步骤实现关于如下项的三角测量
一关于所述有序列表的第 一屋顶的所述建筑物的脚点;
一关于所迷有序列表的其他屋顶的所述建筑物的所述至少一个上面。
本发明还涉及用于构建建筑物屋顶的3D表示的终端,包括用于获得屋顶结构的装置,其中,所述屋顶结构采用至少两个屋顶模型的有序
列表的形式,每个屋顶模型至少包括 一屋顶类型;
—所述屋顶的最大高度#; 并且,它实现
一对于所述有序列表中除最后一个屋顶之外的每个所述屋顶,以迭 代形式经过以下装置至少 一次
—由所述建筑物的至少一个上面,作为所述屋顶类型的函数,构建 所述列表的屋顶的表示的装置;
—作为所述屋顶的所述最大高度^t的函数截取所述构建的屋顶, 传递截取的屋顶的装置;
一确定成为所述建筑物的所述至少 一个上面的所述截取的屋顶的至 少一个上面的装置;
—对于所述有序列表的最后屋顶,通过由所述建筑物的所述至少一 个上面,作为所述屋顶类型的函数构建所述屋顶的表示的装置,如果构 建的所述最后屋顶的高度大于所迷最后屋顶的最大高度,对构建的所述 最后屋顶进行截取的装置。
本发明最后涉及可从通信网络下栽和/或记录在计算机可读载体和/ 或可由微处理器执行的计算机程序产品,所述计算机程序产品包括用于 实现如上所述建筑物屋顶的3D表示的构建方法的程序代码指令。


参照附图,通过后面关于以简单非穷举性和示例性的方式给出的优 选实施例的描述,本发明的其他特性和优点将是显而易见的,其中
图1显示出通过本发明的技术有可能获得真实3D表示的复杂屋顶
示例;
图2表示本发明的用于构建屋顶结构的方法的详细流程图; 图3表示对于任何不特定多边形的直立骨架(straight skeleton)的计 算结果;图4描述在山墙型屋顶情形中末端尖端在建筑物脚点的相应边缘上
的突出原理;
图5表示将屋顶2D结构的外部尖端移位以创建檐部的原理; 图6表示水平截面对屋顶进行截取的原理;
图7表示具有数个斜边的屋顶与具有矩形脚点的建筑物的脊型屋顶 相叠加获得的视觉效果;
图8表示才艮据本发明的屋顶传输信号的结构;
图9表示根据本发明的用于构建屋顶3D表示的构建终端的框图IO表示根据本发明的用于传输屋顶结构的服务器的体系结构。
具体实施例方式
7.本发明一种实施方式的描述
本发明的 一般原理依赖于釆用程序化屋顶模型的有序列表的形式传 输屋顶结构。每个屋顶模型都具有包括屋顶类型和一个或多个建筑物参 数的简单结构,从而只需传输少量数据。此外,可釆用列表定义的顺序 将这些不同屋顶叠加,以重构真实屋顶结构的3D表示。
参看图1,表示出可根据本发明的技术获得3D表示的复杂屋顶的 示例。图1显示出教堂及附属建筑。覆盖教堂中殿的屋顶1对应于两个 脊型屋顶的叠加下方脊型屋顶2具有三个主斜坡10至12,在教堂唱 诗班座席之上的多个小尺寸斜边13,形成屋顶的圆形部分;上脊型屋顶 3的斜边具有比下脊型屋顶2更陡的斜坡。
图2表示从程序化(procedural)屋顶模型的有序列表构建建筑物屋 顶的3D表示的不同步骤的详细流程图。
第一步20是用于获得屋顶结构的步骤,所述屋顶结构将采用通过 一个或多个程序化参数定义的、叠加的简单屋顶模型的有序列表的形式 重构。该步骤可从接收由远程服务器通过通信网络发送的列表开始。此 外,还可开始于从对于实现该步骤的构建终端而言可访问的数据载体加 载该列表。此外,该终端还具有其屋顶必须重构的建筑物的脚点。获得 该脚点的方法并不是本发明的目的,因此在此不对其进行更详细描述。为获得更多信息,例如可参看题名为"ProcM6 pour la gestion de la representation d,au moins une sc6ne 3D mod61is6e"(用于管理至少3D 场景显示的方法,以本发明申请同一申请人的名义提交)的欧洲专利 No, EP 1455 308。
有序列表的屋顶可为以下类型的其中之一
一扁平屋顶(0-FLAT);
一脊型屋顶(1-HIP)
一山墙型屋顶(2-GABLE);
—不对称双坡型屋顶(3 = SALT_BOX);
—具有数个不同斜边的屋顶(4)。
在包含屋顶类型的屋顶模型字段中,因此将值0至4其中之一以3 位编码,以表示所考虑的屋顶类型。
数据流模型的描述使用面向对象的语法,如在附录A中所述,由 此构成本描述的完整部分。
因此,每个屋顶类型具有数个程序化M与之相关联。这些参数是 构建屋顶3D表示所必需的
扁平屋顶无#,
脊型屋顶具有同样或不同的斜边-
一屋顶(或屋顶各边)的斜度以度表示;
一使得能够截取其上部分的屋顶高度;
一檐部的突出,使得每个屋顶斜边继续伸到建筑物脚点的外部;
山墙型屋顶
一屋顶斜度以度表示;
一使得能够截取其上部分的屋顶高度;
一檐部的突出,使得每个屋顶斜边继续伸到建筑物脚点的外部;
不对称双坡型屋顶
一屋顶斜边的斜度以度表示;
一使得能够截取其上部分的屋顶高度;
一檐部的突出,使得每个屋顶斜边继续伸到建筑物脚点的外部;—屋顶所处的建筑物边缘(屋顶的最低部分)的索引。 可将该数据;i^型直接与基于脚点的多分辨率表示集成在一起,使 得能够表示包括棱柱状建筑物模型的城市模型,这是上述欧洲专利申请
"Proc6d6 pour la gestion de la representation d"au moins une sc6ne 3D mod甜s6e"(用于管理至少3D场景显示的方法)(EP 1455308)的目 的。
在获得屋顶结构(20)之后,重构终端将该有序列表解码,提取出 它所包含的连续屋顶模型。对于每个这样的模型,它承栽如下两个较大 连续阶段
—屋顶2D结构的计算21;
一对屋顶的提升22。
如果定义出檐部,终端还执行对檐部突出的阶段23,如果屋顶的 高度超过屋顶模型所表示的最大高度(例如用户定义的最大高度),则 执行对屋顶截取的阶段24。从而,对有序列表的每个屋顶进行迭代。后 面,将更详细地描述这些不同阶段。
从而,首先,选择有序列表中第一个屋顶模型,并执行相应屋顶的 2D结构的计算21。
为此,进行检测210,以判定屋顶是否基于直立骨架,即,它是否 为脊型屋顶或山墙型屋顶。
如果回答为否212,即,如果屋顶为扁平形或不对称双坡型,则根 据已知技术,通过建筑物的脚点构成的多边形的三角测量来重构其2D 结构,这并不是本发明的目的,因此不会对其进行更详细描述。该三角 测量是由多边形的边缘约束的三角测量。
如果回答是肯定的,则计算211得出建筑物脚点的直立骨架,以便 获得屋顶的2D结构。该计算通过由P. Felkel和S. Obdrzalek在 "Straight skeleton implementation" ( 1998年Spring Conference on Computer Graphics会汉)中实施的库实现。关于直立骨架的计算211 的该步骤将在后面参照图3进行更详细描述。
然后,进4亍检测213,以判定刚构建的直立骨架的屋顶是否为山墙型屋顶。如果回答是肯定的,则进行关于直立骨架(在图4中如虚线所 示)的末端尖端40, 41在多边形30 (表示建筑物的脚点)的相应边缘 上的突出214,如图4所示。将末端尖端40, 41定义为来自脚点30的 连续角度的两个平分线交汇点。在这两个角度之间包含的边缘401, 411 上的该尖端40, 41的突出沿连接于该末端尖端40, 41的切边402, 412 的方向。
在该突出214的末端,或在对于检测213的否定回答的情形中,方 法进行到提升屋顶的阶段22。
屋顶提升阶段22包括用于计算在阶段21期间确定的屋顶的2D结 构的尖端的高度的单个步骤220。尖端高度的计算是沿屋顶斜边的斜坡 进行的,且给出的屋顶模型不再是2D模型,而是3D模型。换而言 之,在有序列表中传输的屋顶模型中,读取每个屋顶斜坡的斜角参数 (当然在扁平屋顶的情形中除外)。然后,提升每个屋顶斜边,以便使 相对于水平线形成的角度等于在所考虑屋顶的程序化模型中规定的屋顶 斜度,通过简单三角计算,确定出每个尖端相对于屋顶基底的高度。
在对屋顶的提升22之后,获得3D结构,执行检测230,以判定檐 部对于所考虑屋顶模型是否已定义出檐部(例如,由用户定义)。
如果回答是肯定的,则计算23檐部的突出。为此,如图5所示, 将与原始脚点相对应的骨架50 (通过三角计算获得的直立骨架或2D结 构)的外部尖端51至54向外移动231 (沿虛线所示的箭头方向),以便 相对于建筑物墙壁突出,同时保持屋顶斜边的斜度。从而,创建檐部。 关于这些新尖端510, 520, 530和540的位置的计算考虑了在以上所述 的数据流中定义的檐部的突出。
在檐部的突出的计算23之后或如果对于所考虑的屋顶模型没有定 义檐部,则进4亍检测以判定由此所构建的3D结构的屋顶的高度是否大 于最大允许高度(例如,由用户定义,以及在与屋顶模型相应的字段中 表示出)。
如果回答为否定的,则屋顶重构方法进行到结束26。 如果回答是肯定的,则重构终端进行阶段24,进行关于重构屋顶的截取,如图6所示。
为此,考虑构成屋顶3D结构的边缘集。这些边缘的每一个均具有 与i^目关联的扫描方向,通过与它们相关联的两个相对扫描方向复制不 属于脚点外包络的边缘。
在步骤241处,扫描骨架的所有边缘,以〗更执行与其相对于截面 60(也称截取面,是其高度与屋顶的最大高度相对应的水平面,如在所 考虑的屋顶模型的相应字段中所表示的)的位置相对应的标记
—下方边缘完全处在截面下方(边缘61, 62);
—上方边缘完全处在截面上方(屋顶边缘63);
—上升边缘在上升时与截面相交(计入所考虑的扫描方向,边缘 的源点的高度低于边缘目标点的高度)(边缘64, 65,);
—下降边缘在下降时与截面相交(计入所考虑的扫描方向,边缘 的源点的高度高于边缘目标点的高度)(边缘652, 66)。
为执行该扫描,选择屋顶的起始边缘,对其从其源点扫描到其目标 点。为确保扫描到结构的所有边缘,选择下一边缘作为其源点就是扫描 的第一边缘的目标点的边缘,并与该第一边缘形成最小角度。之后,方 法以此方式从边缘到边缘进行下去,直至对所有边缘进行了标记。
在步骤242中,再次扫描所有这些标记的边缘,并且
—如果它们被标记在下方(61, 62),则保留;
一如果它们被标记在上方(63 ),则去除。
如果边缘作为提升边缘(64),仅保留处在截面之下的一部分边缘 (如对于边缘64,如实线所示的部分)。因此,以边缘64的源尖端作为 其源点,以提升边缘与截取平面60的交点作为其目标尖端,来创建新 边缘。
一确定下降边缘(652),还创建另一新边缘,其具有
—创建的新提升边缘的目标尖端,即,截面60与所考虑的最后提
升边缘64的交叉点A,作为其源点;
—与截面60与当前下降边缘652的交叉点相应的尖端B,作为其
目标点。以新边缘的形式保留下降边缘处在截面以下的部分(下降边缘652 的实线部分)。步骤243用于确定所截取的屋顶上面。它依赖于屋顶上边缘的列表 (在步骤242期间创建)。的确,在该前一步骤期间,当创建出新边缘 时(其源点是提升边缘与截面的交叉点,其目标点是下降边缘与截面的 交叉点,例如,边缘[AB),另外,将该新边缘添加到屋顶更高边缘的 列表。对该列表的简单扫描使得能够重构243屋顶的上面。在进行截取24之后,进行检测250,以便确定仍存在要叠加在刚 重构的屋顶上的至少一个屋顶。该检测相当于确定在步骤20处获得的 有序列表中是否仍存在至少一个屋顶模型。如果结果为否定的,则重构结束26。应该注意,在此情形中,所获得的屋顶结构为空,通过^f吏重构结束但在重构的最后屋顶上叠加扁平 屋顶,不对其进行矫正。如果在有序列表中仍存在至少一个要叠加的屋顶,则操作循环回 251到列表中随后屋顶的2D结构的计算阶段21。因此,当以在步骤 243期间获得的前一屋顶的上面取代脚点,并且考虑到与要叠加的该新 屋顶模型相关联的程序化^lt时,重复步骤组210至250。下面,参看图3,我们想到由P. Felkel和S. Obdrzalek在 "Straight skeleton implementation" ( 1998年Spring Conference on Computer Graphics会汉)中提出的关于不定多边形的直立骨架的计算 原理。我们考虑多边形30,在图3中以实线表示,其例如对应于准备重 构3D表示的建筑物的脚点。关于多边形30的直立骨架的计算通过对该多边形的连续蚀化来实 现。更具体而言,在蚀化期间多边形30的尖端的路径构成其直立骨 架。这些路径在图3中如虛线所示。实际上,通过构造多边形角度的平分线可获得在蚀化期间多边形 30的尖端的路径。该直立骨架相当于真实屋顶结构(即,屋顶顶端集),并可将其用于从建筑物的脚点30自动重构具有数个面的屋顶。图7显示出根据本发明的建筑物和相关重构屋顶结构的3D表示的 3个视图,其中使用以下数据流,该数据流的语法符合本文先前给出的 语法2 1 2.0 50.0 0.7 2 6.0 25.0 0.0下面,识别出该数据流的各个参数,并采用有序列表形式构造2:要重构的屋顶结构包括两个叠加屋顶(70, 71)1:第一屋顶(71)属于具有相同斜度的数个斜面的类型2.0:第一屋顶(71)具有2m的最大高度50.0:第一屋顶(71)的斜面都以50。倾斜0.7:第一屋顶(71)具有0.7m的檐部突出2:第二屋顶(70)为山墙型屋顶6.0:第二屋顶(70)具有6m的最大高度25.0:第二屋顶(70)的斜面以25。倾斜0.0:第二屋顶(70)没有檐部图8表示出本发明用于传输屋顶结构的信号的结构。该信号例如在 其头部80包括通过信号有效载荷传递的有序列表中包含的屋顶模型的 数量N。该有序列表包括连续的屋顶模型Ml, M2,至MN,每个至少包括—字段T,表示屋顶的类型; —字段H,表示其最大高度。当然,如以上所迷,模型Ml至MN的每个都可包括包含与所考 虑屋顶类型相关联的其他程序化参数(斜角、檐部突出等)的其他字 段。同样,如果模型Ml至MN其中一个与T型扁平型屋顶相对应,则 该模型不包括字段H。因此,图8表示出本发明的信号结构的简单普通的情形。 下面,参照图9,给出用于构建屋顶结构的3D表示的终端的硬件 结构,其实现以上所述的方法。该类型构建终端包括存储器M 91、处理器部件卯P,处理器部件 卯P例如配备有微处理器jiP,并通过计算M序Pg 92驱动。在初始 化时,例如将计算M序92的代码指令在被中央处理器部件90的处理 器进行执行之前被加载到RAM中。中央处理器部件90在输入端接收 要重构的屋顶结构93,其采用程序化屋顶模型的有序列表的形式,并且 例如通过与如图8所示的同样类型的信号传递。中央处理器部件90的 微处理器jiP根据程序Pg 92的指令,实现以上参照图2描述的迭代方 法的步骤。中央处理器部件卯输出屋顶结构93的3D图形表示94。例 如基于建筑物的脚点,根据已知的现有技术,这样的重构终端还可执行 对于与该屋顶结构相关的建筑物主体的重构。图10表示例如为如图9所示的重构终端设计的、并且采用如图8 所示的信号形式通过通信网络传递的屋顶结构的传输服务器的硬件结构o这样的传输服务器包括存储器M 101、处理器部件100 P,处理器 部件100 P例如配备有微处理器nP,并通过计算机程序Pg 102驱动。 在初始化时,例如计算枳一呈序102的代码指令在,皮中央处理器部件100 的处理器进行执行之前被加载到RAM中。中央处理器部件100在输入 端接收要传输的屋顶结构103,其采用程序化屋顶模型的有序列表的形 式。处理器部件100还可输入一组屋顶,其各自与类型和最大高度M 相关联,以其作为变量,并可基于这些屋顶及其参数,负责进行关于程 序化屋顶模型的有序列表的构建。中央处理器部件100的微处理器nP 根据程序Pg 102的指令,实现以上所述传输方法的步骤。中央处理器 部件100输出表示屋顶结构的数据信号104,其具有如图8所示的类 型,用于传输通过通信网络直至如图9所示类型的构建终端。附录A用于描述数据$; 型的面向对象语法 Object-oriented syntax used for the description of a datastream model: class Roof { int nbRoofs RoofPart[〗 roofsclass RoofPart { int(3) roofTypeswitch (roofType) { case 0 : 〃 Flat roof case 1 : 〃 Hip rooffloat roofHeightfloat roofSlopeAnglefloat roofEaveProjection case 2 : 〃 Gable rooffloat roofHeightfloat roofSlopeAnglefloat roofEaveProjection case 3 : 〃 Saltbox rooffloat roofHeightfloat roofSlopeAnglefloat roofEaveProjectionint roofEdgeS卿ortlndex case 4 : 〃 Roof with several distinct sloping sidesfloat roofHeightfloat roofSlopeAngle[〗float roofEaveProjection所用语义如下—nbRoofs相当于当前建筑物的叠加屋顶的数量,即,有序列表的 屋顶的数量;—Roofs表示类RoofPart所描述的屋顶的表格。表格大小必须为 nbRoofs)一roofiype表示屋顶的类型0—平顶(Flat) 1—脊型(Hip); 2—山墙型(Gable); 3—不对称双坡顶型(Salt Box); 4—屋顶的不同 边具有不同斜度的脊型;—roofHeight表示屋顶的高度。如果该值为负,则屋顶不会被截 取。该情形也相当于具有负斜度的屋顶,即,伸展到建筑物中的屋顶。—roofSlopeAngle表示每个屋顶斜边的斜角。在具有相同斜边的脊 型屋顶的情形中,因此,roofSlopeAngle为表示屋顶斜度的浮点值。在 具有不同斜边的脊型屋顶的情形中,roofSlopeAngle为表示屋顶的各斜 边的斜度的表格,其大小等于屋顶斜边的数量。应该注意,在该情形 中,该表格的一个或多个角度可等于90。,以便定义出具有不同斜度的 斜边的山墙型屋顶;—roofEaveProjection相当于檐部的突出;—rooffidgeSupportlndex用于不对称双坡型屋顶。它相当于用于 描述支撑屋顶(屋顶处在最低处)的脚点的多边形的边缘的索引。
权利要求
1.一种通过通信网络传输用于重建建筑物的3D表示的屋顶结构的方法,其特征在于,该方法包括传输至少两个屋顶模型(M1,M2,MN)的有序列表的步骤,每个屋顶模型至少包括-屋顶类型(T);-所述屋顶的最大高度参数(H);以及其中,所述列表的屋顶的所述最大高度参数(H)确定出在所述列表中随后屋顶的基底,以便所述屋顶结构与所述列表的所述屋顶的有序叠加相对应。
2. 根据权利要求1的传输屋顶结构的方法,特征在于,所述屋顶 类型(T)从包括以下项的组中选出一山墙型屋顶;一脊型屋顶;一不对称双坡型屋顶。
3. 根据权利要求1和2其中任一项的传输屋顶结构的方法,特征 在于,所述有序列表的所述屋顶模型(Ml, M2, MN)还包括属于包 括以下项的组的^lt中的至少一个一所述屋顶的至少一个斜边的斜角参数; 一所述屋顶的至少 一个檐部的突出M。
4. 根据权利要求2和3其中任一项的传输屋顶结构的方法,特征 在于,当所述屋顶属于不对称双坡型时,所述屋顶模型还包括由属于所 述屋顶的所述建筑物的最低边缘的索引所定义的支撑边缘参数。
5. 根据权利要求1至4其中任一项的传输屋顶结构的方法,特征 在于,所述有序列表还包括至少一个扁平型屋顶模型,该模型不包括任 何参数。
6. —种表示用于重建建筑物的3D表示的屋顶结构的数据信号,特 征在于,该数据信号包括至少两个屋顶模型(Ml, M2, MN)的有序 列表的结构,其中,每个屋顶模型至少包括一包含屋顶类型(T)的字段;—包含所述屋顶的最大高度(H)的字段;其中,包含所述列表的屋顶的最大高度的所述字段确定出在所述列 表中随后屋顶的基底,以便所述屋顶结构与所述列表的所述屋顶的有序 叠加相对应。
7. —种可从通信网络下载和/或存储在计算机可读载体和/或可由微 处理器执行的计算M序产品,其特征在于,该计算^序产品包括用 于实现根据权利要求1至5其中至少一项的传输屋顶结构的方法的程序 代码指令。
8. —种通过通信网络传输用于重建建筑物的3D表示的屋顶结构的 传输服务器,其特征在于,该传输服务器包括用于传输至少两个屋顶模 型(Ml, M2, MN)的有序列表的装置,每个屋顶模型至少包括一屋顶类型(T);—所述屋顶的最大高度M (H),以及其中,所述列表的屋顶的所述最大高度参数(H)确定出在所述列 表中f^屋顶的基底,以便所述屋顶结构与所述列表的所述屋顶的有序叠加相对应。
9. 一种重建建筑物屋顶的3D表示的方法,特征在于,该方法包 括,用于获得(20)屋顶结构的步骤,所述屋顶结构采用至少两个屋顶 模型(Ml, M2, MN)的有序列表的形式,每个屋顶模型至少包括一屋顶类型(T); 一所述屋顶的最大高度M (H); 其中,该方法实现一对于所述有序列表中除最后一个屋顶之外的每个所述屋顶,进行 以下步骤的至少 一次迭代—由所述建筑物的至少一个上面,按照所述屋顶类型的函数, 构建所述列表的屋顶的表示;一按照所述屋顶的所述最大高度参数的函数截取所述构建的屋 顶,传递截取的屋顶(24);一确定成为所述建筑物的所述至少 一个上面的所述截取的屋顶的至少一个上面;—对于所述有序列表的最后一个屋顶,由所述建筑物的所述至 少一个上面,按照所述屋顶类型的函数,构建所述屋顶的表示的步骤, 以及如果构建的所述最后一个屋顶的高度大于所述最后一个屋顶的最大 高度,对构建的所述最后一个屋顶进行截取的步骤。
10. 根据权利要求9的重建方法,特征在于,所述构建屋顶表示的 步骤包括子步骤—计算(21)所述屋顶的2D结构;—按照所述屋顶的至少一个斜角的函数提升(22)所述屋顶。
11. 根据权利要求9和10其中任一项的重建方法,特征在于,所 述构建所述列表的屋顶表示的步骤包括计算所述屋顶的至少 一个檐部的 突出(214)的子步骤。
12. 根据权利要求10和11其中任一项的构建方法,特征在于,所 述截取所述构建的屋顶的步骤包括子步骤一确定其相对于所述建筑物的所述上面的海拔高度等于所述屋顶的 所述最大高度的截取平面;一扫描所述构建的屋顶的边缘并且标记所述边^4目对于所述截取平 面的位置;一构建处在所述截取平面下方的边缘和/或边缘部分的列表,称之 为所述屋顶的更高边缘的列表;一扫描所述屋顶的更高边缘的所述列表,以便确定所述截取的屋顶 的所述至少一个上面。
13. 根据权利要求10至12其中任一项的重建方法,特征在于,对 于脊型屋顶或山墙型屋顶,所述计算所述屋顶的2D结构的子步骤实现 多边形直立骨架的计算,该多边形划分-所述有序列表的第 一屋顶的所述建筑物的脚点; —关于所述有序列表的其他屋顶的所述建筑物的所述至少一个上 面;以及其中,对于山墙型屋顶,所述计算所述屋顶的2D结构的子步骤还 实现所述直立骨架的至少 一个末端尖端在所述多边形的至少 一个相应边 缘上的突出。
14. 一种用于重建建筑物屋顶的3D表示的终端,特征在于,该终 端包括用于获得屋顶结构的装置,所述屋顶结构采用至少两个屋顶模型(Ml, M2, MN)的有序列表的形式,每个屋顶模型至少包括 一屋顶类型(T);一所述屋顶的最大高度桐故(H);以及 其中,该终端实现一对于所述有序列表中除最后一个屋顶之外的每个所述屋顶,以迭 代形式经过以下装置至少 一次—由所述建筑物的至少一个上面,按照所述屋顶类型的函数, 构建所述列表的屋顶的表示的装置;一按照所述屋顶的所述最大高度参数的函数截取所述构建的屋 顶,传递截取的屋顶(22)的装置;一确定成为所述建筑物的所述至少 一个上面的所述截取的屋顶 的至少一个上面的装置;一对于所述有序列表的最后一个屋顶,由所述建筑物的所述至少一 个上面,按照所述屋顶类型的函数,构建所述屋顶的表示的装置,以及 如果构建的所述最后一个屋顶的高度大于所述最后一个屋顶的最大高 度,对构建的所述最后一个屋顶进行截取的装置。
15. —种可从通信网络下载和/或记录在计算机可读载体和/或可由 微处理器执行的计算机程序产品,特征在于,它包括用于实现根据权利 要求9至13的其中至少一个的方法的程序代码指令。
全文摘要
本发明涉及通过通信网络传输屋顶结构的技术,所述屋顶结构用于构建建筑物的3D表示。本发明特征在于,该技术是基于至少两个屋顶模型(M1,M2,MN)的有序列表的传输,每个屋顶模型至少包括屋顶的一种类型(T);所述屋顶的一个最大高度参数(H)。在建筑物的3D表示的构建期间,所述列表的屋顶的所述最大高度参数(H)确定出根据所述列表的所述屋顶的基底,以便所述屋顶结构与所述列表的所述屋顶的有序叠加相对应。
文档编号G06T17/05GK101317199SQ200680044435
公开日2008年12月3日 申请日期2006年10月11日 优先权日2005年10月11日
发明者J·罗杨, P·基奥亚, R·卡万纳 申请人:法国电信公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1