• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            Boolean operations between triangle meshes

            Posted on 2018-05-17 23:18 eryar 閱讀(2333) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

            Boolean operations between triangle meshes

            eryar@163.com

            Abstract. Boolean operations is one of basic and well known on 3D models. The operations are widely used in computer graphics, game, CAD, EDA. The blog introduce the function in some open source program. 

            Key Words. Boolean Operations, Mesh, Triangle Mesh Boolean Operations,

            1.Introduction

            OpenCASCADE提供了基于BREP體的Boolean Operations,但是如果Topo體中只包含三角網(wǎng)格信息的話,是不支持布爾運(yùn)算的。典型的例子就是由STL導(dǎo)入生成的模型在OpenCASCADE中是不能進(jìn)行布爾運(yùn)算。

            有一些開源庫提供了基于三角網(wǎng)格的布爾運(yùn)算的功能。如MeshLab、Cork等。本文主要就來介紹一下這兩個庫中的基于三角網(wǎng)格的布爾運(yùn)算功能。

            wps_clip_image-6945

            Figure 1. Boolean Operation cut between Cylinder and Torus mesh

            基于網(wǎng)格有布爾運(yùn)算主要應(yīng)用于沒有幾何信息的模型,如游戲、3D打印中的網(wǎng)格模型。

            2.MeshLab CSG

            MeshLab中提供了網(wǎng)格的布爾運(yùn)算功能,源碼在filter_csg中。程序界面如下圖所示:

            wps_clip_image-25211

            Figure 2. CSG Operation in MeshLab

            下圖所示為兩個網(wǎng)格球的公共部分Intersection的結(jié)果:

            wps_clip_image-31437

            Figure 3. Intersection between sphere meshes

            由上圖可以看出,經(jīng)過布爾運(yùn)算后,網(wǎng)格變密了。

            wps_clip_image-5546

            Figure 4. Union between sphere meshes

            上圖所示為兩個網(wǎng)格球的合并union結(jié)果。合并后的網(wǎng)格也變密了。

            wps_clip_image-19657

            Figure 5. Difference between sphere meshes

            3.Cork 

            Cork是一個小巧的用于網(wǎng)格布爾運(yùn)算的開源庫(LGPL),可以從如下地址下載:

            https://github.com/gilbo/cork

            下面使用cork編譯出來的程序來測試下前面兩個球的網(wǎng)格。在Windows中可以編譯一個測試的應(yīng)用程序,可以輸入命令來測試效果:

            wps_clip_image-14008

            Figure 6. Cork help info

            將測試文件ballA.off和ballB.off復(fù)制到編譯出來的程序wincork相同的文件夾中,分別輸入以下命令來得到相應(yīng)的布爾運(yùn)算結(jié)果:

            F:\Mesh\cork\win\wincork\>wincork -union balla.off ballb.off union.off
            F:\Mesh\cork\win\wincork\>wincork -diff balla.off ballb.off diff.off
            F:\Mesh\cork\win\wincork\>wincork -isct balla.off ballb.off isct.off

            然后將生成的union.off、diff.off和isct.off在MeshLab中打開如下圖所示:

            wps_clip_image-6071

            Figure 7. Union between two sphere meshes

            wps_clip_image-29249

            Figure 8. Difference between two sphere meshes

            wps_clip_image-7233

            Figure 9. Intersection between two sphere meshes

            從上面結(jié)果可以看出cork庫得到的結(jié)果網(wǎng)格效果好,沒有加密。

            4. Conclusion

            基于網(wǎng)格的布爾運(yùn)算也是三維建模中一個基本功能,一些開源庫提供了對網(wǎng)格進(jìn)行布爾運(yùn)算的支持。如MeshLab, Cork, CGAL等。

            本文通過在MeshLab和Cork中對兩個球的網(wǎng)格進(jìn)行布爾運(yùn)算,對比運(yùn)算的結(jié)果,發(fā)現(xiàn)使用Cork得到的網(wǎng)格沒有加密,數(shù)據(jù)量會小一些。

            由于OpenCASCADE目前的版本不支持基于網(wǎng)格的布爾運(yùn)算,在其官網(wǎng)上提供了一個功能請求:https://tracker.dev.opencascade.org/view.php?id=29776

            wps_clip_image-7484


            為了方便大家在移動端也能看到我的博文和討論交流,現(xiàn)已注冊微信公眾號,歡迎大家掃描下方二維碼關(guān)注。
            Shing Liu(eryar@163.com)
            香蕉aa三级久久毛片| 国内精品久久久久影院老司| 国内精品伊人久久久久av一坑| 国产精品成人久久久| 久久91精品国产91久久小草| 久久久精品人妻无码专区不卡| 亚洲精品乱码久久久久久不卡| 麻豆亚洲AV永久无码精品久久| 精品久久久久久亚洲| 久久人人爽人人爽人人片AV东京热 | 久久成人国产精品免费软件| 久久精品国产久精国产思思 | 亚洲人AV永久一区二区三区久久| 久久天天躁狠狠躁夜夜2020一| 中文精品久久久久国产网址| 精品熟女少妇AV免费久久| 久久国产精品久久精品国产| 欧美黑人激情性久久| 精品久久久久久久久久久久久久久| 亚洲精品乱码久久久久久中文字幕| 精品乱码久久久久久夜夜嗨 | 精品久久久久成人码免费动漫 | 久久国产色AV免费看| 色8激情欧美成人久久综合电| 国产一区二区三区久久| 亚洲精品无码久久久久sm| 久久免费香蕉视频| 国产免费久久精品丫丫| 国产精品美女久久久| 欧洲成人午夜精品无码区久久| 亚洲国产天堂久久久久久| 国产亚洲成人久久| 久久久久亚洲精品中文字幕| 国产精品熟女福利久久AV| 一本大道加勒比久久综合| 狠狠色丁香婷婷综合久久来| 69SEX久久精品国产麻豆| 亚洲午夜久久久久妓女影院| 久久久久久久波多野结衣高潮| 亚洲国产精品成人久久蜜臀 | 亚洲精品综合久久|