Instant-Meshes-标架场方法
在顶点ViV_iVi定义n-Rosy标架场,定义
Rso(o,n,k):=rot(n,k2πso),k∈ZRso(o,n):={Rso(o,n,0),Rso(o,n,1),…,Rso(o,n,so−1)}\begin{aligned}&\mathcal{R_{s_o}}(\mathbf{o},\mathbf{n},k):=rot(\mathbf{n},k\frac{2\pi}{s_o}),k \in \mathbb{Z} \\&\mathcal{R_{s_o}}(\mathbf{o},\mathbf{n}):=\{\mathcal{R_{s_o}}(\mathbf{o},\mathbf{n},0),\mathcal{R_{s_o}}(\mathbf{o},\mathbf{n},1),\dots,\mathcal{R_{s_o}}(\mathbf{o},\mathbf{n},s_o-1)\}\end{aligned} Rso(o,n,k):=rot(n,kso2π),k∈ZRso(o,n):={Rso(o,n,0),Rso(o,n,1),…,Rso(o,n,so−1)}
第一个式子是将o⃗\vec{o}o绕法向量n⃗\vec{n}n旋转k2πsok\frac{2\pi}{s_o}kso2π角度,第二个式子即是在顶点处用o⃗\vec{o}o对称旋转nnn次构成一个n-Rosy标架场
1.Intrinsic smoothness
该方法为将顶点ViV_iVi的相邻顶点VjV_jVj旋转到ViV_iVi的切平面上,然后寻找oi⃗\vec{o_i}oi与oj⃗\vec{o_j}oj的最小旋转角度,并用高斯赛德尔方法进行迭代求解。
定义能量函数:
E(O,k):=∑i∈V∑j∈N(i)∠(oi,Rso(oji,ni,kij))2E(O, \mathbf{k}):=\sum_{i \in \mathcal{V}} \sum_{j \in \mathcal{N}(i)} \angle\left(\mathbf{o}_{i}, \mathcal{R}_{s_{o}}\left(\mathbf{o}_{j i}, \mathbf{n}_{i}, k_{i j}\right)\right)^{2} E(O,k):=i∈V∑j∈N(i)∑∠(oi,Rso(oji,ni,kij))2
其中oji:=rot(nj×ni,∠(nj,ni))oj\mathbf{o}_{j i}:=\operatorname{rot}\left(\mathbf{n}_{j} \times \mathbf{n}_{i}, \angle\left(\mathbf{n}_{j}, \mathbf{n}_{i}\right)\right) \mathbf{o}_{j}oji:=rot(nj×ni,∠(nj,ni))oj,即ojo_joj旋转到ViV_iVi切平面上后的向量。kijk_{ij}kij为旋转次数,要求解该能量函数,可通过以下方法
kij:=argmin0≤k<so∠(oi,Rso(oji,ni,k))oi←∑j∈N(i)wijRso(oji,ni,kij),oi←oi/∥oi∥\begin{aligned} &k_{i j}:=\underset{0 \leq k<s_{o}}{\arg \min } \angle\left(\mathbf{o}_{i}, \mathcal{R}_{s_{o}}\left(\mathbf{o}_{j i}, \mathbf{n}_{i}, k\right)\right)\\ &\mathbf{o}_{i} \leftarrow \sum_{j \in \mathcal{N}(i)} w_{i j} \mathcal{R}_{s_{o}}\left(\mathbf{o}_{j i}, \mathbf{n}_{i}, k_{i j}\right), \quad \mathbf{o}_{i} \leftarrow \mathbf{o}_{i} /\left\|\mathbf{o}_{i}\right\| \end{aligned} kij:=0≤k<soargmin∠(oi,Rso(oji,ni,k))oi←j∈N(i)∑wijRso(oji,ni,kij),oi←oi/∥oi∥
即先寻找最佳旋转次数,然后通过拉普拉斯权重归一化,由于搜寻空间是很小的(sos_oso,如果是n-Rosy,也就是n,而n通常是很小的一个常数),可用暴力方法,若顶点ViV_iVi周围有mmm个点,那迭代一次的搜索空间大小也只有mnmnmn
然后通过高斯赛德尔迭代:
oi′←wij1Rso(oj1i,ni,kij1),oi←oi′/∥oi′∥oi′←oi′+wij2Rso(oj2i,ni,kij2),oi←oi′/∥oi′∥\begin{array}{ll} \mathbf{o}_{i}^{\prime} \leftarrow w_{i j_{1}} \mathcal{R}_{s_{o}}\left(\mathbf{o}_{j_{1} i}, \mathbf{n}_{i}, k_{i j_{1}}\right), & \mathbf{o}_{i} \leftarrow \mathbf{o}_{i}^{\prime} /\left\|\mathbf{o}_{i}^{\prime}\right\| \\ \mathbf{o}_{i}^{\prime} \leftarrow \mathbf{o}_{i}^{\prime}+w_{i j_{2}} \mathcal{R}_{s_{o}}\left(\mathbf{o}_{j_{2} i}, \mathbf{n}_{i}, k_{i j_{2}}\right), & \mathbf{o}_{i} \leftarrow \mathbf{o}_{i}^{\prime} /\left\|\mathbf{o}_{i}^{\prime}\right\| \end{array} oi′←wij1Rso(oj1i,ni,kij1),oi′←oi′+wij2Rso(oj2i,ni,kij2),oi←oi′/∥oi′∥oi←oi′/∥oi′∥
2.Extrinsic smoothness
该方法区别于上面的方法为直接在三维空间里求解能量函数,即不再旋转到切平面,则能量函数改为:
Ee(O,k):=∑i∈V∑j∈N(i)∠(Rso(oi,ni,kij),Rso(oj,nj,kji))2E_{\mathrm{e}}(O, k):=\sum_{i \in \mathcal{V}} \sum_{j \in \mathcal{N}(i)} \angle\left(\mathcal{R}_{s_{o}}\left(\mathbf{o}_{i}, \mathbf{n}_{i}, k_{i j}\right), \mathcal{R}_{s_{o}}\left(\mathbf{o}_{j}, \mathbf{n}_{j}, k_{j i}\right)\right)^{2} Ee(O,k):=i∈V∑j∈N(i)∑∠(Rso(oi,ni,kij),Rso(oj,nj,kji))2
则kijk_{ij}kij的最优解为
(kij,kji):=argmin0≤k,l<so∠(Rso(oi,ni,k),Rso(oj,nj,l))2\left(k_{i j}, k_{j i}\right):=\underset{0 \leq k, l<s_{o}}{\arg \min } \angle\left(\mathcal{R}_{s_{o}}\left(\mathbf{o}_{i}, \mathbf{n}_{i}, k\right), \mathcal{R}_{s_{o}}\left(\mathbf{o}_{j}, \mathbf{n}_{j}, l\right)\right)^{2} (kij,kji):=0≤k,l<soargmin∠(Rso(oi,ni,k),Rso(oj,nj,l))2
可以看到搜索空间变为n2n^2n2,其实它还是很小的,也是可以暴力求的。下一步则依然还是高斯赛德尔迭代。
3.说明
- 上述算法有解的条件是收敛,而事实就是它就是收敛的。
- 上述算法因为它是基于局部的,所以可以支持并行。
- 初始标架场被设置为随机的切向量,锐利特征则通过二面角阈值来判断,锐利边上顶点的法向量为任一面的法向量,而其余的可用角度权重等来定义。
- Gauss–Seidel method可能陷入局部最小解,可通过随机法避免,而该文提出了另一种**多分辨率层次法(Multiresolution hierarchy)**来避免这种情况,如下。
Instant-Meshes-标架场方法相关推荐
- 使用位移基本场方法对空间扩展光源进行建模
1. 摘要 利用VirtualLab Fusion的参数耦合功能可在光学设置中耦合参数.耦合的参数可重新计算系统的其他参数,进而自动保持系统参数间的关系.因此,参数耦合功能使用户可以参数设置复杂的依存 ...
- 自动驾驶规划术语与搜索空间的几种方法
1. 导读 目前,自动驾驶或自动驾驶汽车是学术界和汽车界研究的核心,因为它具有多方面的优势,包括提高安全性.减少拥堵.降低排放和提高机动性.其实软件是支持自动驾驶的关键驱动因素,在将乘客或货物从指定的 ...
- Install Oracle Instant Client on Linux and Windows
前言 本篇文章用最简单和快速的方法介绍如何在Red Hat Enterprise Linux安装Oracle Instant Client,该方法同样适用于Windows,RHEL5/6/7,OEL, ...
- java 根据类名示例化类_Java即时类| from()方法与示例
java 根据类名示例化类 即时类from()方法 (Instant Class from() method) from() method is available in java.time pack ...
- java 根据类名示例化类_Java即时类| EpochSecond()方法的示例
java 根据类名示例化类 EpochSecond()方法的即时类 (Instant Class ofEpochSecond() method) Syntax: 句法: public static I ...
- Java即时类| plus()方法与示例
即时类plus()方法 (Instant Class plus() method) Syntax: 句法: public Instant plus(TemporalAmount t_amt); pub ...
- java 根据类名示例化类_Java LocalDateTime类| ofInstant()方法与示例
java 根据类名示例化类 LocalDateTime类的Instant()方法 (LocalDateTime Class ofInstant() method) ofInstant() method ...
- java中after什么意思_Java中的即时isAfter()方法
使用isAfter()Java中Instant类中的方法,可以检查特定Instant对象是否在时间轴上位于另一个Instant对象之后.此方法需要单个参数,即要比较的Instant对象.如果Insta ...
- java instant获取微秒转成日期格式_Java8新特性时间日期库DateTime API及示例
点击上方蓝字关注「程序新视界」 Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和Simp ...
最新文章
- [PHP] debug_backtrace()可以获取到代码的调用路径追踪
- 对比学习simSiam(一)--Exploring Simple Siamese Representation Learning总体理解
- Day9 深度学习入门
- 航拍+AI︱paddlepaddle图像分割实现天空风格迁移(换天、漂浮城堡、宇宙飞船)
- windows系统bat批处 注册一个exe执行文件变成服务
- 最新html word 分页符,分页符 有什么用
- 小学生数量成为楼市风向标?
- Testin融资后首个举措:推出O2O一站式测试服务
- 马化腾:非常看重小程序,小游戏将会是微信互联网的焦点?
- android 指南针 原理,手机指南针原理是什么?安卓/苹果手机指南针app工作原理介绍...
- MATLAB小技巧(20)矩阵分析--主成分回归
- tcp ip通讯 linux xpe,xpe安装在PCA-6006VE( #234
- 计算机软件系统思政点,高校思政课网络评估系统的设计
- phpcms 点赞_php+js实现点赞功能的示例详解
- 一篇说尽Excel常见函数用法
- UAC协议基础第一篇: UAC类设备相关的描述符
- 基于SpringBoot的“1818小酒馆”商城网站的设计与实现 毕业设计-附源码192004
- Java -Stream流和常见函数式接口
- latex:如何制作斜线表头
- mysql建图书馆表_数据库图书管理建表与修改表