Li Jiaheng's blog
532 字
3 分钟
模型与Mesh
2024-04-24

模型#

模型分为隐式模型和显式模型两种。后者直接把每个图形元素放的位置、属性等表示出来,这种表示可以是真正直接地存下来(比如obj直接把每个顶点、每个点纹理坐标、每个面法向、每个面顶点索引等信息字面意义上地记录了下来;也可以是不那么直接,用一种映射来表示,比如把参数空间 UV 的点映射到三维空间XYZ,这样遍历所有UV就能得到所有XYZ,也算显式。
——其实显式隐式大可不必分那么清。一般而言隐式建模的信息隐藏在一个函数式中,要通过某种由建模方式定义的方法去计算处理,比如NeRF,距离场等。

隐式建模#

最简单的就是方程。F(x,y,z)=0.
好处是很容易判断点是否在面上,在面内或者在面外。

距离场是一个函数 F(x,y,z),函数值定义为空间中点 (x,y,z) 距离模型表面的最近距离。它的好处是,给出模型的一段运动的初始状态和结束状态(距离场表示),能非常方便地通过 blend(融合,最简单的就是加权平均)“插值”出中间的状态。
距离场中找出距离为0的点就可以找出表面。

距离场函数显然很难找出来,可以用 Level-Set 数据结构存储。简单的说,似乎就是把XYZ的 R^3^ 空间离散化表示,存储离散值,然后对于连续点插值获取距离。用三维Grid去存放显然太费了,应该也是用纹理映射的思路,把R^3^映射到UV(LevelSet坐标)的R^2^,用一张纹理表示。而具体怎么映射,映射哪些空间,就不知道了.(|R^2^|和 |R^3^| 是不是等价来着,那应该可以是双射)

显式建模#

多边形,样条,体素Grid等。

Mesh相关话题#

Subdivision#

Loop细分#

Catmull细分#

Simplification#

基于二次度量误差的顶点坍缩#

regularization#

模型与Mesh
https://namisntimpot.github.io/posts/cg/theory/模型mesh相关话题/
作者
Li Jiaheng
发布于
2024-04-24
许可协议
CC BY-NC-SA 4.0