{"id":1993,"date":"2020-04-03T17:05:19","date_gmt":"2020-04-03T16:05:19","guid":{"rendered":"https:\/\/blogs.gre.ac.uk\/designsupport\/?page_id=1993"},"modified":"2025-08-11T09:05:41","modified_gmt":"2025-08-11T08:05:41","slug":"meshlab-point-cloud-to-mesh","status":"publish","type":"page","link":"https:\/\/blogs.gre.ac.uk\/designsupport\/3d-realisation\/process-present\/meshlab-point-cloud-to-mesh\/","title":{"rendered":"MeshLab: Point Cloud to Mesh"},"content":{"rendered":"\n<p>Availability \/ usability: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>This is free, open source software available from <a href=\"http:\/\/www.meshlab.net\/\">www.meshlab.net<\/a><\/li><li>MeshLab does have the function to convert a point cloud into a mesh but be warned &#8211; it can take a long time, it will often crash and the results may not be as good as you would like.  As point clouds typically are very large and data heavy some of the steps here are about reducing complexity.<\/li><\/ul>\n\n\n\n<p>Operation guide:<\/p>\n\n\n\n<p>You will need to have exported your point cloud from Recap as a PTS file &#8211; though for MeshLab to import it, it needs to be renamed as an .ASC file.  Browse to where your PTS file is and click to select it<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"170\" src=\"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-1024x170.png\" alt=\"\" class=\"wp-image-1997\" srcset=\"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-1024x170.png 1024w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-300x50.png 300w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-768x127.png 768w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image.png 1111w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Then at the top of the explorer window choose DETAILS and tick the box FILE NAME EXTENSION<\/p>\n\n\n\n<p>Your PTS file will change from whatever you called it to the same name but with the letters .PTS after it. <\/p>\n\n\n\n<p>Right click to rename the file &#8211; and change that last .PTS to .ASC &#8211; for example if your file was called MyFile.pts it should now be called MyFile.asc<\/p>\n\n\n\n<p>Now open Meshlab and choose Import Mesh. Then browse to your ASC point cloud file and select that.  Accept the default import options. Wait<\/p>\n\n\n\n<p>Once it has imported successfully then you need to do three operations:<\/p>\n\n\n\n<p>1. Compute Normals:<\/p>\n\n\n\n<p>Filters &gt; Normals, Curvatures and Orientation &gt; Compute Normals for Point Sets<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"822\" src=\"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-1-1024x822.png\" alt=\"\" class=\"wp-image-1998\" srcset=\"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-1-1024x822.png 1024w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-1-300x241.png 300w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-1-768x616.png 768w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-1.png 1064w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>&#8211; Accept the default settings by pressing Apply. Wait<\/p>\n\n\n\n<p>2. Optimise your point cloud<\/p>\n\n\n\n<p>Reduce the density of the point cloud by choosing<\/p>\n\n\n\n<p>Filters &gt; Point Set &gt; Point Cloud Simplification<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"343\" height=\"292\" src=\"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-3.png\" alt=\"\" class=\"wp-image-2000\" srcset=\"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-3.png 343w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-3-300x255.png 300w\" sizes=\"auto, (max-width: 343px) 100vw, 343px\" \/><\/figure>\n\n\n\n<p>In the Number of Samples field pick somewhere between 100000 (quicker, less detailed) and 1000000 (slower, bigger but more detailed). Click Apply. Wait<\/p>\n\n\n\n<p>You will now see two versions of your point cloud scan &#8211; the original and the reduced version<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"714\" src=\"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-4-1024x714.png\" alt=\"\" class=\"wp-image-2001\" srcset=\"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-4-1024x714.png 1024w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-4-300x209.png 300w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-4-768x535.png 768w, https:\/\/blogs.gre.ac.uk\/designsupport\/wp-content\/uploads\/sites\/20\/2020\/04\/image-4.png 1056w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You can switch them on and off (like Photoshop layers) in the right hand panel.  Also you can drag the point size lower to get a clearer view of your scan.  <\/p>\n\n\n\n<p>3. Convert the optimised point cloud to a mesh<\/p>\n\n\n\n<p>Click to turn off the original point cloud, leaving just the optimised version on and selected. Then Choose<\/p>\n\n\n\n<p>Filters &gt; Remeshing, Simplification and Reconstruction &gt; Surface Reconstruction: Ball Pivoting<\/p>\n\n\n\n<p>Accept the defaults and select Apply. Wait &#8211; potentially for a while<\/p>\n\n\n\n<p>After the process is complete you will then be able to view your mesh &#8211; if it is too poor quality you could try again by optimising the original point cloud with a higher sample count.<\/p>\n\n\n\n<p>When you are happy with the result export the mesh using  <\/p>\n\n\n\n<p>FILE &gt; EXPORT MESH AS <\/p>\n\n\n\n<p>and choose an appropriate file type \u2013 OBJ would be suitable for bringing into Rhino, Blender, 3DS etc<\/p>\n\n\n\n<p>NOTE: when you bring your mesh into your 3d application there may be &#8220;back to front&#8221; sections; in Rhino these will show up as darker patches. To unify these normal, issue the command<\/p>\n\n\n\n<p>UnifyMeshNormals <\/p>\n\n\n\n<p>and select everything.  This will flip all back to front faces in the same way.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Availability \/ usability: This is free, open source software available from www.meshlab.net MeshLab does have the function to convert a point cloud into a mesh but be warned &#8211; it can take a long time, it will often crash and the results may not be as good as you would&#8230; <a class=\"continue-reading-link\" href=\"https:\/\/blogs.gre.ac.uk\/designsupport\/3d-realisation\/process-present\/meshlab-point-cloud-to-mesh\/\">Continue reading<\/a><\/p>\n","protected":false},"author":28,"featured_media":0,"parent":2266,"menu_order":6,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1993","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/pages\/1993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/comments?post=1993"}],"version-history":[{"count":1,"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/pages\/1993\/revisions"}],"predecessor-version":[{"id":3899,"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/pages\/1993\/revisions\/3899"}],"up":[{"embeddable":true,"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/pages\/2266"}],"wp:attachment":[{"href":"https:\/\/blogs.gre.ac.uk\/designsupport\/wp-json\/wp\/v2\/media?parent=1993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}