libigl第五章-参数化

article/2025/9/7 19:23:42

在计算机图形学中,我们将表面参数化表示为从表面到 R 2 R^2 R2 。它通常由网格的每个顶点的一组新的 2D 坐标编码(并且可能还通过与原始曲面的面一一对应的一组新面)请注意,此定义与经典微分几何定义相反。
参数化有很多应用,从纹理映射到表面重新网格化。 已经提出了许多算法,它们可以大致分为四个分支:

  1. 单面片,固定边界:这些算法可以参数化表面的盘状部分,给定其边界的固定 2D 位置。 这些算法高效且简单,但由于边界固定,它们通常会产生高失真的匹配。
  2. 单面片,自由边界:这些算法让边界自由变形,大大减少了地图失真。 应注意防止边界自相交。
  3. 全局参数化:这些算法适用于具有任意属的网格。 他们最初将网格切割成多个可以单独参数化的补丁。 生成的贴图在切口(通常称为接缝)上是不连续的。
  4. 全局无缝参数化:这些是隐藏接缝的全局参数化算法,使参数化“连续”,具体假设我们将在后面讨论。

谐波参数化

谐波参数化是一种单面片、固定边界参数化算法,将扁平网格的 2D 坐标计算为两个谐波函数。
该算法分为3个步骤:

  1. 检测边界顶点
  2. 将边界顶点映射到圆
  3. 计算两个调和函数(一个用于 u,一个用于 v 坐标)。 调和函数使用圆上的固定顶点作为边界约束。

该算法可以使用 libigl 进行编码,如下所示:

Eigen::VectorXi bnd;
igl::boundary_loop(V,F,bnd);Eigen::MatrixXd bnd_uv;
igl::map_vertices_to_circle(V,bnd,bnd_uv);igl::harmonic(V,F,bnd,bnd_uv,1,V_uv);

其中 bnd 包含边界顶点的索引,bnd_uv 它们在 UV 平面上的位置,“1”表示我们要计算调和函数(2 表示双谐波,3 表示三谐波,等等)。
请注意,这三个函数中的每一个都被设计为可在其他参数化算法中重用。
可以通过以下方式在查看器中可视化 UV 参数化:

viewer.data().set_uv(V_uv);

然后使用 UV 坐标将程序棋盘纹理应用于网格:在这里插入图片描述

最小二乘保形贴图

最小二乘保形贴图参数化最小化了参数化的保形(角度)失真。 与谐波参数化不同,它不需要有固定的边界。
LSCM 最小化以下能量:
E L S C M ( u , v ) = ∫ X 1 2 ∣ ∇ u ⊥ − ∇ v ∣ 2 d A E_{LSCM}(\mathbf u,\mathbf v)=\int_X\frac{1}{2}|\nabla \mathbf u^{\perp}-\nabla \mathbf v|^2dA ELSCM(u,v)=X21uv2dA
使用矩阵的形式可以改写为
E L S C M ( u , v ) = 1 2 [ u , v ] t ( L c − 2 A ) [ u , v ] E_{LSCM}(\mathbf u,\mathbf v)=\frac{1}{2}[\mathbf u,\mathbf v]^t(L_c-2A)[\mathbf u,\mathbf v] ELSCM(u,v)=21[u,v]t(Lc2A)[u,v]
其中 L c L_c Lc是一个余切拉普拉斯矩阵,A是一个使得 [ u , v ] t ( L c − 2 A ) [ u , v ] [\mathbf u,\mathbf v]^t(L_c-2A)[\mathbf u,\mathbf v] [u,v]t(Lc2A)[u,v]等于网格的矢量面积的矩阵。
使用 libigl,这个矩阵能量可以用几行代码编写。 余切矩阵可以使用 igl::cotmatrix 计算:

SparseMatrix<double> L;
igl::cotmatrix(V,F,L);

请注意,我们希望将拉普拉斯矩阵同时应用于 u 和 v 坐标,因此我们需要将其扩展为具有 2x2 单位矩阵的左 Kronecker 乘积:

SparseMatrix<double> L_flat;
igl::repdiag(L,2,L_flat);

面积矩阵用 igl::vector_area_matrix 计算:

SparseMatrix<double> A;
igl::vector_area_matrix(F,A);

最终的能量矩阵是 L f l a t − 2 A L_{flat}-2A Lflat2A。请注意,在这种情况下,我们不需要修复边界。 为了去除能量的零空间并使最小值唯一,将两个任意顶点固定到两个任意位置就足够了。 示例 502 中提供了完整的源代码。
在这里插入图片描述

尽可能刚性的参数化

As-rigid-as-possible 参数化是一种强大的单面片非线性算法,用于计算努力保持距离(以及角度)的参数化。这个想法与 ARAP 表面变形非常相似:每个三角形都映射到试图保持其原始形状的平面,直至进行刚性旋转。
该算法可以重复使用变形章节中讨论的函数来实现:igl::arap_precomputation 和 igl::arap_solve。 唯一的区别是优化必须在 2D 而不是 3D 中完成,并且我们需要计算一个起点。虽然对于 3D 变形,优化是使用原始网格自举的,但对于 ARAP 参数化,情况并非如此,因为起点必须是 2D 网格。在示例 503 中,我们使用谐波参数化初始化优化。 与 LSCM 类似,边界可以自由变形以最小化失真。在这里插入图片描述

N-旋转对称切场

切场设计是用于设计均匀四边形和六面体网格重新划分的引导场的基本工具。Libigl 包含所有最先进算法的实现,用于设计 N-RoSy 字段及其泛化。
在 libigl 中,切线单位长度向量场在三角形网格的面上是分段常数,并且它们由每个面的一个或多个向量来描述。 函数

igl::nrosy(V,F,b,bc,b_soft,b_soft_weight,bc_soft,N,0.5,output_field,output_singularities);

从一组稀疏的约束面开始创建一个平滑的单位长度向量场 (N=1),其索引在 b 中列出,它们的约束值在 bc 中指定.这些函数支持soft_constraints(b_soft、b_soft_weight、bc_soft),并返回三角形网格每个面的插值场(output_field),加上场的奇异性(output_singularities)。
在这里插入图片描述
奇点是场消失的顶点(在上图中以红色突出显示)。,这是向量场的概括,其中在每个面中,向量被定义为恒定旋转 π / 2 \pi/2 π/2。从下图中可以看出,不同N生成的场的奇点类型不同,出现的位置也不同。

在这里插入图片描述
我们在示例 504 中演示了如何调用和绘制 N-RoSy 字段,其中可以按数字键更改字段的程度。 igl::nrosy 实现了 26 中提出的算法.N-RoSy 字段也可以使用许多其他算法进行插值,请参阅库 libdirectional 以获得最流行算法的参考实现。有关各种应用中使用的字段的完整分类,请参见 Vaxman 等人。 2016 年。

全局无缝整数网格参数化

以前的参数化方法专注于创建表面补丁的参数化,旨在纹理映射或烘焙其他表面属性,如法线和高频细节。全局无缝参数化旨在通过参数化对复杂形状进行参数化,该参数化与给定的一组方向对齐,以用于表面重新网格化。在 libigl 中,我们提供了混合整数四边形论文中提出的管道的参考实现。
第一步涉及 4-RoSy 场(有时称为交叉场)的设计,它描述了所需四边形重新网格化的边缘的对齐方式。场约束通常是手动指定或从主曲率方向提取的。在示例 506 中,我们只是将一张脸固定在随机方向上。

在这里插入图片描述

梳理和切割

给定交叉场,我们现在要切割表面,使其与圆盘同胚。虽然这可以直接在交叉场上完成,但我们选择在其平分场(旋转 45 度的场的副本)上执行此操作,因为它更稳定和通用。在平分线上工作使我们能够将广义的、非正交的和非单位长度的交叉场作为输入。
因此,我们旋转场,
在这里插入图片描述
我们通过为每个面分配一个 u 和一个 v 方向来消除旋转歧义。 分配是通过从随机面片开始的广度优先搜索完成的。
在这里插入图片描述
你可以把这个过程想象成梳理一个毛茸茸的表面:你将能够梳理它的一部分,但在某些时候你将无法始终梳理整个表面(毛球定理)。 梳理中的不连续点定义了割图:
在这里插入图片描述
最后,我们将梳状场旋转 45 度以撤消初始旋转度数:
在这里插入图片描述
梳状交叉场可以看作是参数化的理想雅可比行列式,将在下一节中计算。

泊松参数化

沿着接缝切割网格并计算参数化,试图找到两个标量函数,其梯度与梳状交叉场方向相匹配。这是一个经典的泊松问题,可以通过最小化以下二次能量来解决:
E ( u , v ) = ∣ ∇ u − X u ∣ 2 + ∣ ∇ v − X v ∣ 2 E(\mathbf u,\mathbf v)=|\nabla \mathbf u-X_u|^2+|\nabla \mathbf v-X_v|^2 E(u,v)=uXu2+vXv2
其中 X u X_u Xu X v X_v Xv表示精梳交叉场。解决这个问题会生成一个参数化,其 u 和 v 等值线与输入交叉场对齐。
在这里插入图片描述
我们通过向泊松问题添加整数约束来隐藏接缝,使每个接缝两侧的等值线对齐。
在这里插入图片描述
请注意,此参数化只能用于重新划分网格,因为它包含许多重叠。
在这里插入图片描述
可以使用 libQEx(未包含在 libigl 中)从此参数化中提取四边形网格。 完整的流水线在示例 505 中实现。

各向异性重新划分网格

各向异性和非均匀四边形重新划分网格对于将元素集中在具有更多细节的区域中非常重要。可以扩展 MIQ 四边形网格划分框架以使用网格变形方法生成各向异性四边形网格。
各向异性重新划分网格算法的输入是一组稀疏的约束,这些约束定义了所需四边形的形状和比例。这可以编码为帧字段,它是一对非正交和非单位长度的向量。帧场可以通过将其分解为 4-RoSy 场和独特的仿射变换来进行插值。 然后可以分别对这两个部分进行插值,对交叉场使用 igl::nrosy,对仿射部分使用谐波插值。
在这里插入图片描述
插值后,曲面被扭曲以将每个帧转换为正交和单位长度的交叉(即从帧中移除缩放和偏斜)。 这种变形为表面定义了一个新的嵌入(和一个新的度量)。
在这里插入图片描述
可以使用上一节中介绍的 MIQ 算法对变形表面进行各向同性重新划分网格。
在这里插入图片描述
然后可以使用变形表面的 UV 坐标将参数化传输到原始表面,其中等值线将跟踪四边形网格,其元素与输入帧字段中规定的形状相似。
在这里插入图片描述
我们的实现(示例 506)使用 MIQ 生成 UV 参数化,但也可以应用其他算法:唯一的要求是生成的四边形网格应尽可能各向同性。

平面化

可以使用 Shape-Up 将四边形网格转换为平面四边形网格,这是一种局部/全局方法,使用全局步骤来强制表面连续性和局部步骤来强制平面性。
示例 507 对四边形网格进行平面化,直到其满足用户给定的平面度阈值。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/NVnc0s3T.shtml

相关文章

libigl第四章-变形

现代基于网格的形状变形方法满足手柄&#xff08;网格上选定的顶点或区域&#xff09;处的用户变形约束&#xff0c;并将这些手柄变形平滑地传播到形状的其余部分&#xff0c;而不会删除或扭曲细节。Libigl 提供了各种最先进的变形技术的实现&#xff0c;从基于二次网格的能量最…

SAP License:ARAP知识点

总部&#xff08;Head Office/Branch&#xff09;。公司代码视图&#xff0d;帐户管理&#xff0d;会计信息中的总部字段建立客户与总部的关联&#xff0c;这样客户的发票或付款就可以自动地过帐到总部去。 Corporate group&#xff08;常规视图&#xff0d;控制数据&#xff…

非固定边界网格参数化(ARAP)

非固定边界的网格参数化方法。 记录自己的实现过程&#xff0c;一方面可能对其他人有用&#xff0c;另一方面自己保存。 1、首先实现固定边界的网格参数化方法&#xff0c;参考如下论文 M. Floater. Parameterization and smooth approximation ofsurface triangulations. CAG…

arap deformation 网格变形可视化

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 rarp变形全称是 As-Rigid-As-Possible Suface Deformation. 意思是变形时尽量使每条边保持一个钢性变换。基本思路是基于能量优化来做。 能量定义 E ∑ i 1 N v w …

ARAP参数化算法

ARAP参数化算法实现 综述 三维模型的参数化把三维模型映射到二维平面&#xff0c;LSCM在映射的过程中尽可能地保持三角形的角度相同&#xff0c;ARAP参数化算法在LSCM的基础上尽可能的保证三角形没有扭曲地映射在二维平面上。 算法设计 因为需要映射过程中尽可能保持三角形…

经典论文推导: As-Rigid-As-Possible(ARAP) Surface Modeling

论文As-Rigid-As-Possible Surface Modeling 发表于SGP 2007&#xff0c;是变形领域的经典论文&#xff0c;目前引用已经超过1000次。网格变形要求产生视觉合理并且大致满足物理规律的变形效果&#xff0c;而模型细节的保持很大程度地满足了这种需求。刚性作为一个重要的属性在…

ARAP(As-Rigid-As-Possible)变形算法

上图中&#xff0c;最左侧的模型为其初始状态&#xff0c;由后面几种模型形状的变换我们可以发现它实际上就是要求变形前后模型每一个局部都只经历了平移或者旋转&#xff0c;也就是刚体变换&#xff08;rigid -transformation&#xff09;。我们知道&#xff0c;刚体变换是不会…

MiKTeX安装

MiKTeX安装&#xff08;导师使用这个版本&#xff09; 1&#xff0c;下载 2&#xff0c;打开文件 3&#xff0c;安装 安装好点击下一步&#xff0c; 二&#xff1a;选择并配置编辑器TeXstudio 1&#xff0c;下载地址&#xff1a;http://texstudio.sourceforge.net/ 错了…

LaTeX配置:MiKTeX+WinEdt

LaTeX(Tex)是一种语言&#xff0c;搭配上编译器(MIkTEX、TexLive)和编辑器(WinEdt、VS Code等)可以程序化生成PDF文档。本次给大家分享的是MiKTeXWinEdt的配置(安装方便快捷&#xff0c;占用空间小)。具体步骤如下&#xff1a; 预下载文件 下载Ctex2.9版本套装&#xff1a;http…

MikTex与Texlive 共存,vscode设置使用Texlive编译

为了在word中使用latex&#xff0c;安装了MikTex。 但在电脑上同时安装了MikTex 与Texlive之后&#xff0c;vscode本来之前默认用texlive编译项目&#xff0c;项目默认的编辑器变成了MikTex。 解决办法一&#xff1a; 一种说法是&#xff0c;在程序路径中删除MikTex的相关路径变…

MikTex+TexStudio配置

安装MikTex TexStudio cmd下mpm调出MikTex宏包管理器&#xff0c;下载宏包 相关参考&#xff1a; http://freshstu.com/2013/05/how-to-use-chinese-fonts-in-latax/ http://blog.sina.com.cn/s/blog_564b1b9b0100njfc.html http://guo-ch.blog.163.com/blog/static/120255…

【LaTeX】MiKTeX+TeXstudio安装过程

下载并安装MiKTeX 下载地址&#xff1a;MiKTeX 一路点击下一步即可 下载并安装TeXstudio 下载地址&#xff1a;TeXstudio 一路点击下一步即可 安装顺序一定是先MiKTeX&#xff0c;然后是TeXstudio&#xff0c;否则会报错 检查下配置 option->configure Texstudio-&g…

二、VSCode——MiKTeX编写latex编码

免安装下载VSCode https://blog.csdn.net/qq_40837795/article/details/128037675 下载MiKTeX https://miktex.org/download 配置MiKTeX https://blog.csdn.net/qq_40837795/article/details/120388489 配置VSCode LaTeX workshop 1、点击左侧Extensions&#xff0c;搜…

关于MikTex和TexStudio的安装

一位老师在课上向我们推荐使用了MikTex和TexStudio&#xff0c;要求我们提交pdf文档&#xff0c;以及学习一下新工具&#xff0c;这里记录一下这两个工具的安装过程。 1. Mik的下载与安装。 直接搜索MikTex&#xff0c;进入官方网址就可以下载。MikTex: https://miktex.org/ …

Texmaker+Miktex配置

Mixtex下载链接&#xff1a;https://miktex.org/download Texmaker下载链接&#xff1a;http://www.xm1math.net/texmaker/ 两者正常下载安装&#xff0c;记住Mixtex安装路径&#xff0c;主要是配置Texmaker 打开Texmaker&#xff0c;点击选项——配置Texmaker&#xff0c;出…

论文写作的又一利器:VSCode + Latex Workshop + MikTex + Git

论文写作的又一利器&#xff1a;VSCode Latex Workshop MikTex Git 摘要 本文介绍了Windows平台下面&#xff0c;MiktexVSCodeLatex WorkshopGit配置用于撰写学术论文的方法。 对正反向搜索的配置也进行了介绍。 1.引言 学术论文写作&#xff0c;Latex是不二的选择。它是免…

关于TeX,LaTeX,MikTex,CTeX,etc.

下文是王垠介绍的TeX&#xff0d;&#xff0d;一个专业的排版系统&#xff01; 这是一个介绍 TeX — 一个漂亮&#xff0c;有趣又可靠的排版程序的网页。希望通过我的介绍&#xff0c;你能体会到使用 TeX 的快乐感觉。 这页分成了很多小主题&#xff0c;可以叫做一个非技术性…

LaTeX相关概念介绍及CTeX、MiKTeX+TeXstudio环境搭建

1. LaTeX相关概念 TeX是Donald E.Knuth 开发的&#xff0c;用来进行文字排版的软件&#xff0c;特别的是TeX是数学公式排版最好的系统&#xff0c;很多世界一流的出版社均采用TeX系统出版书籍和期刊。 LaTeX 是一种格式&#xff0c;这种格式采用TeX作为自己的排版引擎。LaTeX…

Windows 下基于 MikTeX 的 Latex 环境配置小记

前言 前一阵子换了C盘&#xff0c;好多软件要重新安装。最近需要构建 tex 文件生成 pdf&#xff0c;发现之前配置好的后端已经无了。之前用的 TexLive&#xff0c;这次试试 MikTeX。TeX 相关的名词可以参考下面的链接。&#xff08;大概会被CSDN扣流量了&#xff09; TeX 家族…