首页 > 其他分享 >7.几何分类

7.几何分类

时间:2023-07-01 13:35:38浏览次数:45  
标签:一个点 函数 分类 距离 SDF 几何 顶点

隐式几何

  • 任何空间中的一系列点,来表示一个面,但是不说这些点的具体位置,但是告诉你这些点满足一个关系。
  • 类似给出一个数学意义上的公式
  • 例子:三维中的一系列点都满足 \(x^2+y^2+z^2=1\),表面在半径为1的球体上。

问题:下图中的例子,满足下面该式子的点在哪些面上?

  • 隐式几何的局限性,难以表示各个满足方程点的位置
  • 但是已知一个点后,判断该点是不是在该平面上很方便,只需要带入方程即可

显式几何

  • 表达出三角形面上所有点的信息
  • 利用参数映射的形式表现。下图中遍历根据(u,v)坐标映射获得对应的空间点(x,y,z),获得平面
  • 类似3维模型上的各个顶点,模型并不是每个面上的点都有数据(通过顶点插值获得)

给予一个点,怎么判断一个空间点在平面的内部还是外部?

  • 显式表达的局限性,较难判断点与平面的关系
  • 但是可以通过uv方程,映射获得所有在平面上的点

几种隐式几何例子

1、几何运算

  • 图为几何间的运算获得的复杂结果

2、距离函数

  • 对于任何一个几何,都不描述其表面,而是描述任何一个点到这个表面的最近距离(可正可负)。

  • 由于有正负,我们获得了两个物体,再把这两个物体融合恢复,得到原来的物体。

如何得到这种blend的效果,就要从SDF即符号距离函数说起了(这里的符号是指距离可以有正有负)。

首先对于符号距离函数来说本质上就是一种定义距离的函数。如有空间任意一点到各个几何物体表面的距离,对这些距离做各种各样的运算操作最后得到的一个函数就是最终的距离函数了

距离函数的应用

假如一个物体挡住了A的1/3,然后该物体继续向右移动,获得图B,求A到B的线性过程。

对于这样一个二维平面的例子,定义空间中每一个点的SDF为该点到阴影区域右边界的垂直距离,在阴影内部为负,外部为正,因此对于A和B两种阴影来说的SDF分别如上图下半部分所示。有了SDF(A),SDF(B)之后对这两个距离函数选择性的做一些运算得到最终的距离函数,这里采用最简单的SDF = SDF(A)+SDF(B)来举例,最终得到的SDF为零的点的集合即为blend之后曲面,对该例子来说,就是两道阴影之间中点的一条线:

因此对于一开始的那个例子来说,只需合理定义空间中任意一个点的SDF,再令SDF为0即可得到混合的效果了。(tips:对于几何体混合效果自然不可能像这里简单的两个距离相加就可以得到了,该效果具体实现是找出任一个点到两个几何体表面距离中的最短距离再减去一个变量作为该点最终的SDF)

3、水平集

封闭式方程很难描述复杂的形状。替代方案:存储一个近似函数的值网格

在插值等于零的位置找到曲面提供对形状。

水平集的方法其实与SDF很像(像是SDF的一种特殊形式),也是找出函数值为0的地方作为曲线,但不像SDF会空间中的每一个点有一种严格的数学定义,而是对空间用一个个格子去近似一个函数,如下:

已知距离函数,怎么求原本的平面?

只需要吧F(x)=0的所有点都求出来即可

  • 对该面内的每一个点利用已经定义好的格子值进行双线性插值(在纹理映射一节已讲解)就可以得到任意一点的函数值,找出所有=0的点作为曲面。

  • 该方法的好处是对于SDF,我们可以更加显示的区空间曲线的形状。该方法广泛的运用在医学成像和物理模拟之中。

4、分型几何

  • 分型几何是指许许多多自相似的形体最终所组成的几何形状。
  • 如雪花是一个六边形,放大之后会发现每一个边上又是一个六边形,再放大六边形边上的六边形边上又是六边形,就这样无限套娃,有点递归的意思。

几种显式几何例子

1、点云

  • 一组(x,yz)的点数组
  • 只要点足够密集,点云能表示各种几何
  • 点云经常用于转化成多边形的面

2、多边形表面(显式)

  • 存储了一组向量或者多边形(三角形或者四边形)
  • 容易处理、模拟
  • 更复杂的数据结构描述
  • 可能是在图形学中利用最多的

3、.obj文件

  • 在计算机图形当中,简单来说通过定义各个多边形面的顶点以及顶点之间的连接关系就可以得到许许多多的三角形面或是四边形面,再通过这些面来近似表现出我们想要的模型效果。
  • 上图是一个立方体的模型数据例子。
  • 3-10行定义了立方体的8个顶点信息。12-25行定义了这些顶点的纹理坐标信息(每个面4个点,共6个面所以最多有24种不同的纹理坐标信息,这里有一些纹理对于不同面上的点是公用的)。27-34行定义了6个面的法线信息,为什么有8个是因为建模软件输出的精度问题不必在意,其中有两个是重复的
  • 最重要的就是36-47行了,f 代表一个面,其中x/x/x的第一位表示是哪个顶点,第二位表示该顶点纹理坐标是第几个,第三位表示法线信息是第几个。 3个 x/x/x表示3个顶点的信息构成一个面。

标签:一个点,函数,分类,距离,SDF,几何,顶点
From: https://www.cnblogs.com/oOLzYOo/p/17519159.html

相关文章

  • 【无人机控制】基于几何自适应控制算法解耦姿态动力学的四旋翼无人机附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 单视图几何
    无穷远点(也称理想点)和无穷远线和无穷远平面2D:这个无穷只能在齐次坐标下表示,在欧式坐标系下并不方便所有理想都可以写成(x1,x2,0),并由比率x1:x2指定一个具体的理想点直线的齐次表示:性质1:对于直线ax+by+c=0,我们可以用向量(a,b,c)T来表示,而且对于任何非零常数k直线ax+by+c=0......
  • 【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据
    全文链接:https://tecdat.cn/?p=33031原文出处:拓端数据部落公众号分析师:DongleiNiu判别分析(Discriminantanalysis)是一种统计分析方法,旨在通过将一组对象(例如观察数据)分类到已知类别的组中,来发现不同组之间的差异。什么是判别分析判别分析有两种主要形式:线性判别分析(LDA)和......
  • MySQLINNODB表空间分类简单介绍
     MySQLINNODB表空间分类简单介绍 从功能上看INNODB表空间共以下几种:系统表空间File-Per-Table表空间通用表空间Undo表空间临时表空间 从共享与否角度看上边提到的五种表空间可以这么归类。共享表空间独立表空间官档中有明确提到“共享表空间”这个说法:http......
  • Halcon - 深度学习 - 目标分类
    这是一个例子,通过读取桃子和梨的图片集来进行模型训练,得到一个可以识别桃子或是梨的深度学习识别器。**********************************************Halcon-深度学习-分类测试*这是一个例子,通过读取桃子和梨的图片集来进行模型训练,*得到一个可以识别桃子或是梨的深度学......
  • 浅谈PCBA板机械加工分类
    印制板的机械加工主要应用于印制板坯料的下料(俗称开料)、孔加工和外形加工,是印制板整个工艺程序中的重要步骤。由于印制板的孔和外形加工质量都直接影响印制板的机械装配性能和电气连接性能,尤其是印制板上各种用途的孔(元件安装孔、导通孔、安装孔、定位孔、检测孔等)加工质量还会影......
  • 响应式布局分类
    响应式设计中常用的三种布局模式。   缩放、流式布局与响应式缩放布局,旨在相对缩放每一个元素。它们会随着窗口大小变化动态缩放内容,就这方面而言,它们是响应式的。布局本身保持静止,通过改变每一个元素来保持一致的表现。流式布局就不一样,因为它们随着窗口尺寸缩放容器元素......
  • @血源萌新☜ 怎么推导 黎曼几何 球面短程线 ?
    怎么推导黎曼几何球面短程线,  我问过   @血源萌新☜  两次, 一次是在反相吧, 一次是在高级民科吧,  见  反相吧 《【水】老杨终于露出了维相真面目》     https://tieba.baidu.com/p/8297248311   15楼, 高级民科吧   《4维度正方......
  • 单视图几何
    无穷远点(也称理想点)和无穷远线和无穷远平面2D:这个无穷只能在齐次坐标下表示,在欧式坐标系下并不方便所有理想都可以写成(x1,x2,0),并由比率x1:x2指定一个具体的理想点直线的齐次表示:性质1:对于直线ax+by+c=0,我们可以用向量(a,b,c)T来表示,而且对于任何非零常数k直线ax+by+c=0......
  • API接口的分类大全
    API接口可以按照不同的标准和功能进行分类,主要包括以下几种:根据功能分类:数据接口:用于获取、修改和删除数据的接口,包括增删查改等操作。认证接口:用于验证用户身份和权限的接口,通常用于用户登录、授权等操作。通知接口:用于发送通知和消息的接口,例如短信接口、邮件接口等。支付接口:用......