CN109934893B - 几何体任意截面的显示方法、装置及电子设备 - Google Patents
几何体任意截面的显示方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109934893B CN109934893B CN201910216254.XA CN201910216254A CN109934893B CN 109934893 B CN109934893 B CN 109934893B CN 201910216254 A CN201910216254 A CN 201910216254A CN 109934893 B CN109934893 B CN 109934893B
- Authority
- CN
- China
- Prior art keywords
- primitive
- clipping plane
- basic
- distance
- normal vector
- 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
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种几何体任意截面的显示方法及装置,用于解决几何体的裁剪效率以及剖面填充灵活性问题。本发明的方案根据输入的几何体数据和裁剪平面参数,计算裁剪平面的法向量,对几何体每个基本图元计算其各顶点到裁剪平面的距离,然后对基本图元进行光栅化,通过线性插值得到各个图元片段到裁剪平面的距离;在对每个基本图元进行着色时,先对距离大于0的图元片段进行正面着色,再对该基本图元执行反面着色,反面着色过程中以裁剪平面的法向量替代基本图元原有的法向量。由此实现剖面填充和任意截面显示以及剖面填充,具有较高的裁剪运算效率以及剖面填充灵活性。
Description
技术领域
本发明涉及工程建筑领域的三维图形技术,具体涉及对几何体进行裁剪和着 色,显示几何体任意截面的方法、装置及电子设备。
背景技术
复杂三维建筑物模型由于具有建筑构件及其结构关系的详尽几何描述,已经 越来越多出现在工程建筑信息化应用领域,但是,模型中错综复杂的构件关系妨 碍对其结构的快速认知。三维剖切图可以用来表达建筑物内部垂直方向的结构形 式、分层情况、内部构造等,是建筑施工图中不可缺少的重要图样之一。三维剖 切的一个目的是截取较大模型构件中的一小块,把这一块单独拿出来,一般放到 方案里面,用于复杂节点的交底。截面填充可以更好的从视觉上区分构件,达到 对几何体内部结构的遮罩,填充面一般不需要任何后续的计算,只是临时显示即 可,填充面的材质一般和构件的材质要求一致。几何体裁剪及截面填充可以给出 剖面效果和施工动画模拟,但目前尚未出现几何体任意截面显示及填充的公开算 法或工具。
对任意几何体的剖切,如果裁剪面与被裁剪几何体作几何求交,将会带来大 量的求交运算,影响实时显示的效率。而现代图形流水线虽然封装和固化有图形 裁剪的解决方案,但是这种解决方案无法定制裁剪剖面的可视化需求,一方面无 法填充剖面,另一方面也无法改变填充的材质颜色。
本发明基于以上技术背景而作出,涉及以下技术术语:
1.光栅化,计算机图形处理器(GPU)内的光栅化单元(Rasterizer)依照 透视投影关系,将整个可视空间从三维立体形态转化为屏幕上像素的过程。
2.片段,图形管线的输入是图元顶点,输出是像素(pixel),这个过程还有 个中间产物叫做片段(fragment),一个片段对应一个像素,但片段比像素多了计 算相关的属性,例如:深度值和法向量。
发明内容
本发明的目的在于解决几何体的裁剪效率问题以及剖面填充灵活性问题。
为了达到上述目的,本发明提供了一种几何体任意截面的显示方法,包括以 下步骤:
1)输入几何体数据和裁剪平面参数,所述几何体由多个基本图元以面表达 的方式构成,所述基本图元为三角形,几何体数据包括各基本图元的顶点坐标和 法向量,所述裁剪平面的方程为Ax+By+Cz+D=0,其中A、B、C、D为裁剪 平面参数;
2)计算所述裁剪平面的法向量;
3)对每个基本图元,计算其各个顶点到所述裁剪平面的距离;
4)将每个基本图元光栅化为多个图元片段,并计算各个图元片段到所述裁 剪平面的距离,该距离由基本图元各顶点到所述裁剪平面的距离线性插值得到;
5)对每个基本图元,先对其中到所述裁剪平面的距离大于等于0的图元片段 执行正面着色,再对该基本图元执行反面着色,反面着色过程中,以裁剪平面的 法向量替代该基本图元原有的法向量;
6)显示所述正面着色和反面着色结果。
进一步的,所述步骤3)中基本图元各顶点到裁剪平面的距离d通过下式计算 得到:
进一步的,所述步骤2)中,裁剪平面的法向量N由下式计算得到:
N=-(A B C)((MV)-1)T,其中,(A B C)是裁剪平面在世界坐标系下的方 向矢量,M为世界坐标系下几何体的模型变换矩阵,V为世界坐标系下几何体的视 图变换矩阵,N为裁剪平面在观察坐标系下的法向量。
进一步的,所述几何体为BIM建筑信息模型中的三维几何体。
进一步的,所述反面着色的材质和颜色均可选择。
本发明还提供了一种几何体任意截面的显示装置,包括:
参数输入模块,用于输入几何体数据和裁剪平面参数,所述几何体由多个基 本图元以面表达的方式构成,所述基本图元为三角形,几何体数据包括各基本图 元的顶点坐标和法向量,所述裁剪平面的方程为Ax+By+Cz+D=0,其中A、 B、C、D为裁剪平面参数;
裁剪平面法向量计算模块,用于计算所述裁剪平面的法向量;
图元顶点数据处理模块,用于对每个基本图元,计算其各个顶点到所述裁剪 平面的距离;
图元片段数据处理模块,用于将每个基本图元光栅化为多个图元片段,并计 算各个图元片段到所述裁剪平面的距离,该距离由基本图元各顶点到所述裁剪平 面的距离线性插值得到;
着色处理模块,用于对每个基本图元,先对其中到所述裁剪平面的距离大于 等于0的图元片段执行正面着色,再对该基本图元执行反面着色,反面着色过程 中,以裁剪平面的法向量替代该基本图元原有的法向量;
显示模块,用于显示所述正面着色和反面着色结果。
进一步的,所述图元顶点数据处理模块通过下式计算各基本图元顶点到裁剪 平面的距离d:
进一步的,所述裁剪平面法向量计算模块采用下式计算得到裁剪平面的法向 量N:
N=-(A B C )((MV)-1)T,其中,(A B C)是裁剪平面在世界坐标系下的方 向矢量,M为世界坐标系下几何体的模型变换矩阵,V为世界坐标系下几何体的视 图变换矩阵,N为裁剪平面在观察坐标系下的法向量。
进一步的,所述几何体为BIM建筑信息模型中的三维几何体。
进一步的,所述反面着色的材质和颜色均可选择。
本发明还提供了一种电子设备,该电子设备包括:存储装置;一个或多个处 理器;其中,存储装置用于存储一个或多个程序,当所述一个或多个程序被所述 一个或多个处理器执行时,使得所述一个或多个处理器实现前述的几何体任意截 面的显示方法。
本发明还提供了一种计算机程序产品,包括计算机程序指令,当所述指令由 处理器执行时,用于实现前述的几何体任意截面的显示方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述 计算机程序被执行时,实现前述的几何体任意截面的显示方法。
与现有技术相比,本发明基于图元片段到裁剪平面的距离来确定需要保留的 图元片段和需要裁剪的图片片段,对基本图元进行着色时,首先只对需要保留的 图元片段进行正面着色,获得几何体的裁剪效果;之后对基本图元反面着色时将 其法向量替换为裁剪平面的法向量,从而实现截面填充,由此利用双面着色技术 实现了任意截面的显示。本发明方案简单易行,不涉及裁剪面与被裁剪几何体的 几何求交运算,运算量小,与几何体的复杂度无关,裁剪速度快,且截面成图过 程中不会产生额外的数据或运算。
附图说明
图1为本发明中被裁图元与裁剪平面的相对关系示意图;
图2为本发明中图元光栅化示意图;
图3为本发明中图元裁剪示意图;
图4为本发明反面着色结果示意图;
图5为本发明几何体任意截面的显示方法流程图;
图6为本发明几何体任意截面的显示装置结构图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明的 技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅用以解释本发 明,并不限定本发明。
本发明实施例公开了一种几何体任意截面的显示方法,参阅图5,包括以下 步骤:
S1.输入几何体数据和裁剪平面参数。几何体由多个基本图元以面表达的方 式构成,基本图元是三角形,几何体数据包括各基本图元的顶点坐标和法向量, 裁剪平面的方程表示为Ax+By+Cz+D=0,其中A、B、C、D为裁剪平面参数。
本发明实施例中,几何体的表面由三角形的集合构成。如图1所示,顶点为 P0、P1、P2的三角形构成被裁图元;P为裁剪平面,其平面方程为Ax+By+Cz+D=0,半空间Ax+By+Cz+D≥0内所有点将被保留,半空间 Ax+By+Cz+D<0内所有点将被裁剪。
S2.计算裁剪平面的法向量。
本领域技术人员可以了解,已知裁剪平面方程Ax+By+Cz+D=0,其法 向量具有公知的数学计算方法。优选的,本发明也给出如下计算公式(1),
N=-(A B C)((MV)-1)T (1)
其中,(A B C)是裁剪平面P在世界坐标系下的方向矢量,M为世界坐标系下 几何体的模型变换矩阵,V为世界坐标系下几何体的视图变换矩阵,N为裁剪平 面P在观察坐标系下的法向量。
S3.对每个基本图元,计算其各个顶点到裁剪平面的距离。
该步骤中,已知图元顶点坐标和裁剪平面方程,点到平面的距离有公知的数 学计算方法。优选的,本发明以三角形图元的顶点P0为例给出如下计算公式(2), 计算顶点P0到裁剪平面P的距离d,
其中,(x0,y0,z0)为顶点P0的坐标。
S4.将每个基本图元光栅化为多个图元片段,并计算各个图元片段到裁剪平 面的距离,该距离由基本图元各顶点到所述裁剪平面的距离线性插值得到。
该步骤中,首先如图2所示,利用现有技术完成图元的光栅化,以P0、P1、 P2为顶点的三角形被离散化为图元片段,图2中每个栅格内的圆点代表片段中心。 以片段F0和F2为例,F0到裁剪平面的距离DF0、F2到裁剪平面P的距离DF2可以由 顶点P0、P1、P2到裁剪平面P的距离线性插值计算得到,DF0<0,表示片段F0需 要裁剪,DF2≥0,表示片段F2需要保留。
S5.对每个基本图元,先对其中到所述裁剪平面的距离大于等于0的图元片 段执行正面着色,再对该基本图元执行反面着色,反面着色过程中,以裁剪平面 的法向量替代该基本图元原有的法向量;
该步骤是本发明的关键步骤。对每个基本图元,首先对其中需要保留的图元 片段(到裁剪平面的距离大于等于0的图元片段)执行正面着色,对那些需要裁 剪掉的图元片段(到裁剪平面的距离小于0的图元片段)不进行正面着色,由此 获得几何体的裁剪效果,如图3所示。然后对该基本图元执行反面着色,反面着 色过程中以裁剪平面的法向量替代基本图元原有的法向量,从而使反面着色结果 如图4所示,具有视觉上的剖面填充和补面效果。
在本发明中,截面显示效果依靠反面渲染和法向量替换实现,法向量的变化 引起光影明暗变化,明暗烘托使得反面看起来就像是截面。对于那些既进行过正 面着色也进行过反面着色的图元片段(即未裁剪掉的部分),由于正面渲染的深 度值小于反面渲染的深度值,因此呈现出来的仍然是正面着色效果。
S6.显示所述正面着色和反面着色结果。
该步骤采用公知的计算机图形显示技术将被裁剪后的几何体及其截面的双 面着色结果输出至显示器显示。每个图元片段对应显示为一个像素。
优选的,该方法可以用于BIM建筑信息模型中的三维模型构件裁切显示,几 何体为BIM建筑信息模型中的三维几何体。
优选的,为了满足裁剪剖面的可视化定制需求,灵活改变剖面填充的材质和 颜色,反面着色的材质和颜色均可自由选择。
参阅图6,本发明实施例还提供了一种几何体任意截面的显示装置,包括:
参数输入模块100,用于输入几何体数据和裁剪平面参数,所述几何体由多 个基本图元以面表达的方式构成,所述基本图元为三角形,几何体数据包括各基 本图元的顶点坐标和法向量,所述裁剪平面的方程为Ax+By+Cz+D=0,其 中A、B、C、D为裁剪平面参数;
裁剪平面法向量计算模块200,用于计算所述裁剪平面的法向量;
图元顶点数据处理模块300,用于对每个基本图元,计算其各个顶点到所述 裁剪平面的距离;
图元片段数据处理模块400,用于将每个基本图元光栅化为多个图元片段, 并计算各个图元片段到所述裁剪平面的距离,该距离由图元顶点数据处理模块 300计算所得的基本图元各顶点到所述裁剪平面的距离线性插值得到;
着色处理模块500,用于对每个基本图元,先对其中到所述裁剪平面的距离 大于等于0的图元片段执行正面着色,再对该基本图元执行反面着色,反面着色 过程中,以裁剪平面的法向量替代该基本图元原有的法向量;
显示模块600,用于显示所述正面着色和反面着色结果。
所属领域的技术人员可以清楚的了解到,为了描述的方便和简洁,上述各模 块100-600的具体工作过程分别对应于前述方法实施例的步骤S1-S6,参考前述方 法实施例的对应过程,在此不再赘述。
本发明实施例还公开了一种电子设备,该电子设备包括:存储装置;一个或 多个处理器;其中,存储装置用于存储一个或多个程序,当所述一个或多个程序 被所述一个或多个处理器执行时,使得所述一个或多个处理器实现前述实施例的 方法。
本发明还提供了一种计算机程序产品,包括计算机程序指令,当所述指令由 处理器执行时,用于实现前述实施例的方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述 计算机程序被执行时,实现本发明前述实施例的方法。
综上,本发明公开的上述技术方案根据图元片段到裁剪平面的距离来确定要 保留的图元片段和要裁剪的图元片段,对基本图元着色时,通过只对需要保留的 图元片段进行正面着色,实现几何体的裁剪效果,由于不涉及几何体的几何求交 运算,运算量小,裁剪效率高。本发明对基本图元着色时,先对要保留的图元片 段进行正面着色,然后对基本图元进行反面着色,反面着色时替换图元原有的法 向量为裁剪平面的法向量,实现对截面的填充,由此利用双面着色技术实现了任 意截面的显示。该方案不仅实现了剖面填充,任意截面显示,而且可以灵活选择 剖面填充的材质和颜色,满足不同用户对裁剪剖面的可视化需求。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意 识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实 施例。
Claims (13)
1.一种几何体任意截面的显示方法,其特征在于,包括以下步骤:
1)输入几何体数据和裁剪平面参数,所述几何体由多个基本图元以面表达的方式构成,所述基本图元为三角形,几何体数据包括各基本图元的顶点坐标和法向量,所述裁剪平面的方程为Ax+By+Cz+D=0,其中A、B、C、D为裁剪平面参数;
2)计算所述裁剪平面的法向量;
3)对每个基本图元,计算其各个顶点到所述裁剪平面的距离;
4)将每个基本图元光栅化为多个图元片段,并计算各图元片段到所述裁剪平面的距离,该距离由基本图元各顶点到所述裁剪平面的距离线性插值得到;
5)对每个基本图元,先对其中到所述裁剪平面的距离大于等于0的图元片段执行正面着色,再对该基本图元执行反面着色,反面着色过程中,以裁剪平面的法向量替代该基本图元原有的法向量;
6)显示所述正面着色和反面着色结果。
3.如权利要求1所述的方法,其特征在于,所述步骤2)中,裁剪平面的法向量N由下式计算得到:N=-(A B C)((MV)-1)T,其中,(A B C)是裁剪平面在世界坐标系下的方向矢量,M为世界坐标系下几何体的模型变换矩阵,V为世界坐标系下几何体的视图变换矩阵,N为裁剪平面在观察坐标系下的法向量。
4.如权利要求1所述的方法,其特征在于,所述几何体为BIM建筑信息模型中的三维几何体。
5.如权利要求1所述的方法,其特征在于,所述反面着色的材质和颜色均可选择。
6.一种几何体任意截面的显示装置,其特征在于,包括:
参数输入模块(100),用于输入几何体数据和裁剪平面参数,所述几何体由多个基本图元以面表达的方式构成,所述基本图元为三角形,几何体数据包括各基本图元的顶点坐标和法向量,所述裁剪平面的方程为Ax+By+Cz+D=0,其中A、B、C、D为裁剪平面参数;
裁剪平面法向量计算模块(200),用于计算所述裁剪平面的法向量;
图元顶点数据处理模块(300),用于对每个基本图元,计算其各个顶点到所述裁剪平面的距离;
图元片段数据处理模块(400),用于将每个基本图元光栅化为多个图元片段,并计算各个图元片段到所述裁剪平面的距离,该距离由基本图元各顶点到所述裁剪平面的距离线性插值得到;
着色处理模块(500),用于对每个基本图元,先对其中到所述裁剪平面的距离大于等于0的图元片段执行正面着色,再对该基本图元执行反面着色,反面着色过程中,以裁剪平面的法向量替代该基本图元原有的法向量;
显示模块(600),用于显示所述正面着色和反面着色结果。
8.如权利要求6所述的装置,其特征在于,所述裁剪平面法向量计算模块(200)采用下式计算得到裁剪平面的法向量N::
N=-(A B C)((MV)-1)T,其中,(A B C)是裁剪平面在世界坐标系下的方向矢量,M为世界坐标系下几何体的模型变换矩阵,V为世界坐标系下几何体的视图变换矩阵,N为裁剪平面在观察坐标系下的法向量。
9.如权利要求6所述的装置,其特征在于,所述几何体为BIM建筑信息模型中的三维几何体。
10.如权利要求6所述的装置,其特征在于,所述反面着色的材质和颜色均可选择。
11.一种电子设备,其特征在于,包括:存储装置;一个或多个处理器;其中,存储装置用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6任一项所述的几何体任意截面的显示方法。
12.一种计算机程序产品,包括计算机程序指令,当所述指令由处理器执行时,用于实现如权利要求1-5中任一项所述的几何体任意截面的显示方法。
13.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如权利要求1-5中任一项所述的几何体任意截面的显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910216254.XA CN109934893B (zh) | 2019-03-21 | 2019-03-21 | 几何体任意截面的显示方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910216254.XA CN109934893B (zh) | 2019-03-21 | 2019-03-21 | 几何体任意截面的显示方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109934893A CN109934893A (zh) | 2019-06-25 |
CN109934893B true CN109934893B (zh) | 2022-11-25 |
Family
ID=66987863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910216254.XA Active CN109934893B (zh) | 2019-03-21 | 2019-03-21 | 几何体任意截面的显示方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109934893B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389557B (zh) * | 2019-07-22 | 2020-11-13 | 深圳趣途科技有限责任公司 | 模型剖切方法、计算机可读存储介质、模型剖切装置 |
CN112634423A (zh) * | 2020-12-24 | 2021-04-09 | 西安翔腾微电子科技有限公司 | 一种基于SysML视图的GPU平面剪裁模块的TLM装置及操作方法 |
CN114138385A (zh) * | 2021-11-08 | 2022-03-04 | 深圳供电局有限公司 | Bim模型显示方法、装置、计算机设备、存储介质 |
CN115170578B (zh) * | 2022-07-15 | 2023-05-23 | 中国建筑西南设计研究院有限公司 | 一种基于深度比较法的剖面看线的裁剪与生成方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999880B (zh) * | 2012-11-14 | 2016-04-20 | 厦门亿力吉奥信息科技有限公司 | 基于GPU的电力WebGIS矢量实时绘制方法及装置 |
US10825238B2 (en) * | 2017-05-03 | 2020-11-03 | Microsoft Technology Licensing, Llc | Visual edge rendering using geometry shader clipping |
CN108022202B (zh) * | 2017-11-24 | 2021-03-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种超前消隐几何引擎结构 |
-
2019
- 2019-03-21 CN CN201910216254.XA patent/CN109934893B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109934893A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109934893B (zh) | 几何体任意截面的显示方法、装置及电子设备 | |
US7239319B2 (en) | Rendering outline fonts | |
CN104933749B (zh) | 图形图元的裁剪 | |
US9275493B2 (en) | Rendering vector maps in a geographic information system | |
EP2402910B1 (en) | Seamless fracture generation in a graphic pipeline | |
US20170372509A1 (en) | Culling objects from a 3-d graphics pipeline using hierarchical z buffers | |
US7777745B2 (en) | Edge effect | |
KR20180071767A (ko) | 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치 | |
EP2709068A1 (en) | Image processing apparatus | |
KR20120104071A (ko) | 입체영상 시각효과 처리 방법 | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
WO2016040538A1 (en) | Convex polygon clipping during rendering | |
Krishnamurthy et al. | Optimized GPU evaluation of arbitrary degree NURBS curves and surfaces | |
CN115953290A (zh) | 基于gpu光栅器的场景体素化方法 | |
US12056823B2 (en) | Segmenting three-dimensional meshes in graphical applications based on detection of elongated shapes | |
KR101227155B1 (ko) | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 | |
Gois et al. | Interactive shading of 2.5 D models. | |
US8274513B1 (en) | System, method, and computer program product for obtaining a boundary attribute value from a polygon mesh, during voxelization | |
CN111681307B (zh) | 一种应用于三维软件的动态三维坐标轴的实现方法 | |
US10026223B2 (en) | Systems and methods for isosurface extraction using tessellation hardware | |
Hernández et al. | Simple dynamic lod for geometry images | |
Bruijns | Quadratic Bezier triangles as drawing primitives | |
US8217955B2 (en) | Producing wrinkles and other effects for a computer-generated character based on surface stress | |
Sakamoto et al. | A stochastic approach for rendering multiple irregular volumes | |
Santina | Resolution independent nurbs curves rendering using programmable graphics pipeline |
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 |