Make It Simpler Structure-Aware Mesh Decimation of Large Scale Models

Make It Simpler Structure-Aware Mesh Decimation of Large Scale Models

Master of Science Thesis in Electrical Engineering Department of Electrical Engineering, Linköping University, 2018 Make it Simpler Structure-aware mesh decimation of large scale models Daniel Böök Master of Science Thesis in Electrical Engineering Make it Simpler Structure-aware mesh decimation of large scale models Daniel Böök LiTH-ISY-EX–19/5192–SE Supervisor: Harald Nautsch isy, Linköpings universitet Mikael Hägerström Spotscale AB Examiner: Ingemar Ragnemalm isy, Linköpings universitet Division of Information Coding Department of Electrical Engineering Linköping University SE-581 83 Linköping, Sweden Copyright © 2018 Daniel Böök For Luna and Johanna Abstract A 3D-model consists out of triangles, and in many cases, the amount of triangles are unnecessarily large for the application of the model. If the camera is far away from a model, why should all triangles be there when in reality it would make sense to only show the contour of the model? Mesh decimation is often used to solve this problem, and its goal is to minimize the amount of triangles while still keep the visual representation intact. Having the decimation algorithm being structure aware, i.e. having the algorithm aware of where the important parts of the model are, such as corners, is of great benefit when doing extreme simplification. The algorithm can then decimate large, almost planar parts, to only a few triangles while keeping the important features detailed. This thesis aims to describe the development of a structure aware decimation algorithm for the company Spotscale, a company specialized in creating 3D-models of drone footage. v Acknowledgments I would like to thank everyone at Spotscale for giving me the opportunity to work at their office and being helpful with the addition of being great resources during this thesis. Also the examiner and the supervisor have been there and gave great insights during the development of the algorithm and writing this thesis. Finally, I would like to thank my family for being supportive and pushed me to do better when needed. Linköping, January 2019 Daniel Böök vii Contents 1 Introduction 1 1.1 Motivation . 1 1.2 Aim . 2 1.3 Research Questions . 2 1.4 Delimitations . 2 2 Background 3 2.1 Spotscale . 3 2.2 List of specification . 3 3 Related Work 5 3.1 Surface simplification . 5 3.1.1 Garland and Heckberts decimation algorithm . 5 3.1.2 Structure-Aware decimation . 6 3.2 Mesh Refinement . 6 4 Theory 9 4.1 Edge collapse . 9 4.2 Planar proxies . 10 4.3 Graph of proxies . 10 4.4 Error Quadrics . 10 4.4.1 Inner quadric . 11 4.4.2 Boundary quadric . 12 5 Method 13 5.1 Feasibility study . 13 5.1.1 Introduction to mesh simplification . 13 5.1.2 A search for libraries . 14 5.1.3 Metro - A way of comparing different algorithms . 15 5.2 Implementation . 15 5.2.1 Inner and Boundary quadrics . 15 5.2.2 Solving the problem with flipping normals . 16 5.2.3 Avoiding slivers and needles . 16 ix x Contents 5.2.4 Decimating with an error margin . 16 5.2.5 Vary the amount of simplification . 17 5.3 Evaluation . 17 6 Result 19 6.1 Feasibility study . 19 6.1.1 A tool for evaluating errors in a mesh . 19 6.1.2 The chosen library . 20 6.2 Implementation - The resulting application . 21 6.2.1 Decimating a model . 23 6.2.2 Decimating with error tolerance . 23 6.2.3 Varying the decimation . 25 6.3 Evaluation of the algorithm . 26 7 Discussion 31 7.1 Result . 31 7.1.1 The results from feasibility study . 31 7.1.2 The resulting application . 33 7.1.3 The structure-aware decimation algorithm . 33 7.2 Method . 33 7.2.1 The choice of library . 33 7.2.2 Decimating with an error tolerance . 34 7.2.3 Vary the amount of decimation . 34 7.2.4 Evaluation of the final algorithm . 34 7.3 Further work . 34 8 Conclusion 35 8.1 Aim . 35 8.2 Research questions . 35 Bibliography 37 1 Introduction This chapter contains a short motivation why this is a topic of interest, the aim of this thesis, research questions to be answered and delimitations. 1.1 Motivation Mesh decimation is a common processing step in polygon mesh processing. The aim of decimating a model is to lower the amount of triangles that the model is built upon. By having some input criterion(s), e.g. a target number of triangle faces or continue to decimate as long as an error is kept below a specific number, the model can be minimized to a smaller, more manageable size. By lowering the amount of triangles in a mesh and still keep the general structures of the model intact, a boost in performance can be achieved without being able to distinguish any difference between the original and the decimated model. Viewing a large 3D-model on a smart-phone or a tablet which do not have the same computing power as a desktop computer would not be possible or would be prohibitively slow if no simplification is done. Even when using a fast modern computer, a whole block of buildings would not be possible to show if each building consisted of millions of triangles. Here, decimation takes on the important role of reducing the number of triangles in the models down to a fraction while still keeping the structural integrity of the buildings. When simplifying a model, a difficulty is to preserve important details for that specific model. How does the algorithm know what is important and what to discard? Looking at buildings once again, the edges of the building is impor- tant to keep highly detailed or else the result will not resemble the original. On the other hand, finding large almost planar parts in the model and decimating these parts down to only a few triangles will save a lot of space. Having a mesh decimation algorithm that is aware of the geometry is something that is highly 1 2 1 Introduction desirable. 1.2 Aim This thesis aims to develop a mesh decimation algorithm for the company Spotscale. Spotscale specializes in converting drone footage, mainly of blocks and buildings, into 3D-models by using photogrammetry. In their current pipeline of creating a 3D model the mesh is decimated with little control of how the algorithm rec- ognizes surfaces or any other features in the model. As mentioned in section 1.1, when creating models out of buildings, corner detail is an important feature to preserve while larger, almost planar parts, can be decimated down to only a few triangles. This, along with a few more demands on the final algorithm is listed and more thoroughly explained in Chapter 2. 1.3 Research Questions The following research questions will be investigated and answered throughout this thesis: • Which library will be used as a starting point for implementing a decima- tion algorithm? • What is a good metric for comparing the error between a decimated model and the original model? • How does the final algorithm that this thesis result in hold up against other publicly available methods of decimation? 1.4 Delimitations This thesis aims at creating an algorithm that focuses on decimating 3D models of buildings, since these models is what Spotscale specifies in. The algorithm will be tested with 3D models provided by Spotscale. 2 Background This chapter contains background information of the thesis, the company where the thesis is conducted at and describes the list of specification given by the com- pany. 2.1 Spotscale Spotscale is a company that works in the realm of creating high quality 3D- models of buildings using photogrammetry and drone footage. In their pipeline of creating these models, there are a processing step of creating a lower quality model for LOD purposes. These models contains less triangles than the original, and for the building to still look good, the right triangles need to be discarded while the important triangles stay untouched by the decimation. The company wanted more control over how the decimation step in their pipeline was done, and with this thesis completed, hopefully they have something that they can use in production. 2.2 List of specification Before the thesis started, the company gave a list of specifications with impor- tant features that the final algorithm should fulfill. This list was used during the course of the thesis for reference of how far the project has come along. The spec- ification list below is not in any way written in a prioritized manner, although some points are more important than others to fulfill. • Vary the amount of decimation in different places in the mesh (on/off, but also by weight or some cost function based on classification, e.g. vegetation, building or vehicle). 3 4 2 Background • Decimate the mesh to a target number of faces. • Decimate the mesh that continue as long as it does not exceed an error mar- gin (in e.g. meters). • Avoid non-manifolds. • Take flat surfaces in consideration. (Spotscales already written plane detec- tion could be used). • Have other input in the decimation, such as maximum angle in a triangle to avoid slivers. • Have RAM usage and speed of calculation is not the focus, but should be with in reason (less than an hour for a big model with more than 3 million triangles). • The following points will be implemented if time is available: – Have the implementation use the point cloud (of which the mesh is built upon) in the decimation – Decimate with the texture so that it fits the new model.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    48 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us