libigl: prototyping geometry processing research in C++

Alec Jacobson, Daniele Panozzo
{"title":"libigl: prototyping geometry processing research in C++","authors":"Alec Jacobson, Daniele Panozzo","doi":"10.1145/3134472.3134497","DOIUrl":null,"url":null,"abstract":"Modern geometry processsing algorithms depend on an ever-growing toolbox of fundamental sub-routines and data structures. Prototyping from scratch requires much time building basic tools rather than focusing on the novel research idea. Many existing code libraries have unsatisfactory APIs and the time spent implementing sub-routines is often replaced with time spent learning complex, templated object hierarchies or memory layouts. Libigl is a C++ library of geometry processing algorithms designed for and by researchers. Its wide functionality includes construction of common sparse discrete differential geometry operators (such as the cotangent Laplacian), simple facet- and edge-based topology data structures, mesh-viewing utilities for OpenGL and GLSL, and many core functions for matrix manipulation which make Eigen feel a lot more like MATLAB. Libigl places extreme importance on ease of use and experimentation. To this end, algorithms are directly exposed as functions taking simple matrix types as inputs and outputs. Libigl is a \"header only\" library and compiles on Windows, Mac, and Linux. In this course, we will walk through an introduction of libigl via readymade examples spanning the gamut of geometry processing applications and tasks. Attendees will be able to follow along on their laptops. We will explain the core functionality of libigl, how to piece together complex algorithms from library functions, and how to interface to libigl from Python and MATLAB. We will highlight some of libigl's most powerul features: including mesh booleans, quad remeshing, parameterization, and shape deformation. We will conclude with live coding sessions demonstrating libigl's effectiveness and ease-of-use. The course continues beyond the lecture via libigl's interactive online tutorial complete with over 50 example demos (http://libigl.github.io/libigl/tutorial/tutorial.html) and an open source graduate-level course on geometry processing based on libigl (https://github.com/alecjacobson/geometry-processing).","PeriodicalId":412128,"journal":{"name":"SIGGRAPH Asia 2017 Courses","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"166","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SIGGRAPH Asia 2017 Courses","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3134472.3134497","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 166

Abstract

Modern geometry processsing algorithms depend on an ever-growing toolbox of fundamental sub-routines and data structures. Prototyping from scratch requires much time building basic tools rather than focusing on the novel research idea. Many existing code libraries have unsatisfactory APIs and the time spent implementing sub-routines is often replaced with time spent learning complex, templated object hierarchies or memory layouts. Libigl is a C++ library of geometry processing algorithms designed for and by researchers. Its wide functionality includes construction of common sparse discrete differential geometry operators (such as the cotangent Laplacian), simple facet- and edge-based topology data structures, mesh-viewing utilities for OpenGL and GLSL, and many core functions for matrix manipulation which make Eigen feel a lot more like MATLAB. Libigl places extreme importance on ease of use and experimentation. To this end, algorithms are directly exposed as functions taking simple matrix types as inputs and outputs. Libigl is a "header only" library and compiles on Windows, Mac, and Linux. In this course, we will walk through an introduction of libigl via readymade examples spanning the gamut of geometry processing applications and tasks. Attendees will be able to follow along on their laptops. We will explain the core functionality of libigl, how to piece together complex algorithms from library functions, and how to interface to libigl from Python and MATLAB. We will highlight some of libigl's most powerul features: including mesh booleans, quad remeshing, parameterization, and shape deformation. We will conclude with live coding sessions demonstrating libigl's effectiveness and ease-of-use. The course continues beyond the lecture via libigl's interactive online tutorial complete with over 50 example demos (http://libigl.github.io/libigl/tutorial/tutorial.html) and an open source graduate-level course on geometry processing based on libigl (https://github.com/alecjacobson/geometry-processing).
c++中原型几何处理的研究
现代几何处理算法依赖于不断增长的基本子例程和数据结构工具箱。从零开始创建原型需要花费大量时间来构建基本工具,而不是专注于新颖的研究理念。许多现有的代码库都没有令人满意的api,花在实现子例程上的时间经常被花在学习复杂的模板化对象层次结构或内存布局上的时间所取代。Libigl是一个为研究人员设计的几何处理算法的c++库。它的广泛功能包括构建常见的稀疏离散微分几何算子(如余切拉普拉斯算子),简单的基于面和边的拓扑数据结构,OpenGL和GLSL的网格查看实用程序,以及许多用于矩阵操作的核心功能,这些功能使Eigen感觉更像MATLAB。Libigl非常重视易用性和实验性。为此,算法直接暴露为以简单矩阵类型作为输入和输出的函数。Libigl是一个“仅限头文件”的库,可以在Windows、Mac和Linux上编译。在本课程中,我们将通过现成的例子介绍libigl,涵盖几何处理应用程序和任务的范围。与会者可以在他们的笔记本电脑上跟随。我们将解释libigl的核心功能,如何从库函数中拼凑复杂的算法,以及如何从Python和MATLAB中接口到libigl。我们将重点介绍libigl的一些最强大的功能:包括网格布尔,四重网格,参数化和形状变形。我们将以现场编码会话结束,演示libigl的有效性和易用性。该课程通过libigl的交互式在线教程继续讲授,其中包括50多个示例演示(http://libigl.github.io/libigl/tutorial/tutorial.html)和基于libigl的开放源代码研究生级几何处理课程(https://github.com/alecjacobson/geometry-processing)。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信