文献阅读 A Subdivision Scheme for Hexahedral Meshes
简介
本文提出了一种六面体体细分的方案,可以将六面体分成比较光顺的六面体。同时增加六面体的数量且不改变六面体的拓扑。
本文作者 Bajaj =.=
论文方案
主要由两个步骤组成 split & average
将CC四边形细分变为简单的方案可以通过 bi-linear subdivision followed by a simple averaging operation.
一个双线性细分然后跟着一个均值的操作。
split
就是插入中心边点
插入cell的(中心)点
average
作者提出了一种mask的思想。
找到一篇文章讲mask的思想。就是新产生的点的权重的确定的矩阵
More precisely:
• What are good averaging masks?
• The averaging mask determines the weights by which the new point positions are computed
对于一个面来说,mask矩阵就是中心点和它四个角的加权平均
不知道能否这么解释。
上面的图可以更好的解释。mask 其实就是关于某个点生成对应点的权重矩阵。
核心语句 reposition a vertex at the centroid of the centroids of the eight hexahedra that contain the vertex.
对于在中心点来说,一个点连接着8个cell(六面体),如何移动这个顶点的坐标呢?首先求这8个cell的重心(每个cell8个顶点的均值),
求出8个cell均值,然后8个cell均值的均值,也就是这个点应在存在的位置了。 下图的公式就是对于这个思想的简单解释了
但是核心的是如何确定边缘的点,边缘的点只连接了4个cell,如果采用上述方法,那么将导致急剧的收缩。
所以作者在2.3节提出了复合细分规则。
\(ring[v1, v2..]\) 表示一些列顶点的多面体
\(val[v1,v2..]\) 表示这一系列点含有的多面体的个数。
\(dim[v1, v2..]\) 表示最小的维度 0 表示他们重合在了一起,1表示他们在边上,2表示他们在公共面上。
对于一个旧顶点,他的新坐标表示在周围一圈旧多面体的加权求和上。
作者提出了这个公式
\]
这个图就是对于公式的应用。
n表示中心黑点的度,也就是中心黑点和几个四边形相互连接。
如果只有一个四边形的话,那么 n = 1, val[v] = 1
\(\frac{1}{16} = \frac{1}{4^2 * 1} * 3^{2-2} * 1\) 因为共面所以dim=2, val[u,v] = 1 是因为包含u,v的顶点的面只有一个面。
文章公式思考
- \(P_i = S_{i-1} P_{i-1}\)
\(P_i\) 细分之后的举证
\(S_{i-1}\) 细分矩阵(简单来说,可以使用细分方案)
\(P_{i-1}\) 细分之前的矩阵。
对于数学没有太敏感的我,没什么软用。
- \(T_i\) 表示连接关系的拓扑矩阵。
文章图片思考
演示了对于面进行split & average 之后的结果。然后作者依据这种现象构建了新的六面体细分方案。
可以通过上面的图看出来有两个操作,一个是简单的差值,另一个是average。中间的图是差值的操作。
上面一行是差值,下面一行是average的效果图。
TIPS
Unfortunately, these rules only apply to quadrilateral meshes with tensor product topology (i.e. each
interior vertex is shared by four quadrilaterals). 作者说,简单的四边形细分规则,只能应用于张量积形式的拓扑(作者举了一个例子,就是内部点,周围有四个顶点。)
文章优点
可以应用于非流形拓扑,证明了这种方案生成的六面体网络的连续性。
猜想
文章的难点 均分可以解决内部点的问题如何将表面的点进行均分???
Question
- 嵌入折痕表示为CC曲面和样条曲线。嵌入折痕(embedded creases)就很由灵性了。真不懂,如果谁知道可以写一篇博客然后留一个评论。
- 张量积 是什么鬼?
参考链接 https://www.cnblogs.com/sybil-hxl/p/12804765.html
https://img2020.cnblogs.com/blog/968024/202005/968024-20200515231824101-870579029.png
- 双线性细分?
猜测 应该是沿着两个维度进行细分
类比3线性细分 应该是沿着三个维度进行细分
result
做是做出来了,但是我无法解释MLCA对于边缘的处理。参考的是师兄的代码,我也不方便将代码放上来。只能说,对于中心点的处理确实是使用 \(P_{new[v]} += \frac{cent}{val[v]}\)
对于边缘点的处理,该怎么整呢?
边缘点使用复合细分规则感觉也不太对。至少和师兄的代码不对应。
对于边缘点处理的想法(合理但感觉少了点什么)
由谢大佬提供
边缘的点的细分可以直接用面的细分,因为,样子是一样的。
友情赠送
http://resources.mpi-inf.mpg.de/departments/d4/teaching/ss2012/geomod/slides_public/14_Subdivision_Surfaces.pdf
这是某个大学关于细分很好的材料,对于mask的理解很大一部分参照了上面说的内容。
文献阅读 A Subdivision Scheme for Hexahedral Meshes的更多相关文章
- 文献阅读笔记——group sparsity and geometry constrained dictionary
周五实验室有同学报告了ICCV2013的一篇论文group sparsity and geometry constrained dictionary learning for action recog ...
- 文献阅读 | The single-cell transcriptional landscape of mammalian organogenesis | 器官形成 | 单细胞转录组
The single-cell transcriptional landscape of mammalian organogenesis 老板已经提了无数遍的文章,确实很nb,这个工作是之前我们无法想 ...
- 空间插值文献阅读(Geostatistical approaches for incorporating elevation into the spatial interpolation of rainfall)
空间插值技术应用必读论文---P. Goovaerts, Geostatistical approaches for incorporating elevation into the spatial ...
- 文献阅读方法 & 如何阅读英文文献 - 施一公(转)
附: 如何看懂英文文献?(好) 看需求,分层次 如何总结和整理学术文献? Mendeley & Everything 如何在pdf文献上做笔记?福晰阅读器 自己感悟: 一篇专业文献通常会有几页 ...
- phd文献阅读日志-博一上学期
为了记住并提醒自己阅读文献,进行了记录(这些论文都是我看过理解的),论文一直在更新中. 博一上学期: 1.week 6,2017.10.16 2014-Automatic Semantic Model ...
- RTCM32编解码中的一些概念及相关文献阅读
1. IODC和 IODE —— 导航电文相关.iode/iodc是在GPS系统的ICD2中定义的参数,iode指星历数据事件,iodc指星钟数据事件. IOD 是 issue of data ,数 ...
- AutoML文献阅读
逐步会更新阅读过的AutoML文献(其实是NAS),以及自己的一些思考 Progressive Neural Architecture Search,2018ECCV的文章: 目的是:Speed up ...
- 文献阅读报告 - Social BiGAT + Cycle GAN
原文文献 Social BiGAT : Kosaraju V, Sadeghian A, Martín-Martín R, et al. Social-BiGAT: Multimodal Trajec ...
- 文献阅读报告 - Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs
文献引用 Amirian J, Hayet J B, Pettre J. Social Ways: Learning Multi-Modal Distributions of Pedestrian T ...
- 文献阅读 - MonoLoco与关于Camera Matrix的笔记
目录 概览 HighLights Camera Intrinsic Matrix 笔记 Intrinsic Matrix Task-Error - 不确定性任务下确界的计算 输出假设的Laplace分 ...
随机推荐
- 解决React Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, ... useEffect cleanup function.
在写react程序时遇到警告: Warning: Can't perform a React state update on an unmounted component. This is a no- ...
- 关于μkeil v5.40(keil5) 如何使用STM32(ARM)虚拟下载器进行Proteus联调
最近我心血来潮,想用Proteus+keil5进行联调,但仔细在网上一找,全是某SDN扒下来的陈年老黑X,都快转出数字包浆了还在用,完完全全跟不上时代,也全是51单片机的版本,STM32(ARM)根本 ...
- MCP协议的相关知识总结
一.基本概念与核心价值 定义与定位 MCP(Model Context Protocol,模型上下文协议)是由Anthropic推出的开放标准协议,旨在通过标准化接口实现大语言模型(LLM)与外部数据 ...
- termux添加ll命令
cd ~ vim .bashrc 添加如下内容 alias ll="ls -l" 保存退出 :wq source .bashrc 参考:https://www.cnblogs.co ...
- 使用Ollama本地化部署DeepSeek
1.Ollama 简介 Ollama 是一个开源的本地化大模型部署工具,旨在简化大型语言模型(LLM)的安装.运行和管理.它支持多种模型架构,并提供与 OpenAI 兼容的 API 接口,适合开发者和 ...
- 鸿蒙NEXT开发实战教程—小红书app
幽蓝君最近发现小红书是个好东西,一定要多逛 今天就浅浅模仿一下小红书app,主要是底部tab栏和主页部分. 首先看一下tabbar,由于中间有一个红色按钮的存在,所以这里我使用自定义导航栏来实现,自定 ...
- 仿EXCEL插件,智表ZCELL产品V3.0 版本发布,底层采用canvas全部重构,功能大幅扩展,性能极致提升,满足千万级单元格加载
本次更新是底层全部重构,按照现代浏览器要求,采用canvas方式进行了重构,预留了将来扩展空间,特别是在大数据量性能提升方面有了较大提升,可以满足千万级单元格加载,欢迎大家体验使用. 体验地址:zce ...
- html_py
Sock.py import socket def handle_request(client): buf=client.recv(1024) client.send(bytes(&q ...
- python任务调度之schedule
本文通过开源项目schedule来学习定时任务如何工作 schedule简介 先来看下做做提供的一个例子 import schedule import time def job(): print(&q ...
- 字典(Dictionary) update()方法
描述 python字典(Dictionary) update()函数吧dict2的键/值对更新到dict里 语法 dict.update(dict2) 参数 dict2 -- 添加到指定字典dict里 ...