网格属性

作者: ad19b033a300 | 来源:发表于2017-04-09 21:42 被阅读32次

网格有哪些属性

三角网格可以看作是一个图结构,由顶点,边和面(三角片)三个元素组成。网格的常见属性也由这三个元素的属性来表达。


网格顶点属性

顶点的几何属性通常可以表示为:

struct VertexInfo

{

    Vector3mCoord;

    Vector3mNormal;

};

除此之外,它还有一些其它的属性:

- 邻域:邻顶点,邻边,邻面

- 流形:如果顶点的邻域是一个单连同区域,则这点为流形结构

- colorId:对于一个彩色顶点网格,每个顶点有一个颜色值。如果这个网格是多个角度的数据拼接而成,则每个角度的网格片往往存在色差。colorId用于记录这个色差信息:同一个colorId的顶点,可以认为是颜色相容的,没有色差。colorId属性用于去除顶点色差的功能里。


网格边属性

边的几何属性一般由对应端点的几何属性来表达,所以它通常由拓扑属性来表达:

struct EdgeInfo

{

    int mVertexId[2];

    std::vector<int> mFaceIds;

};

除此之外,它还有一些其它的属性:

- 边界边:如果它的邻接面为1,则为边界上的边

- 非流形边:如果它的邻接面个数 > 2,则为非流形边


网格面属性

面的常见表达方式为:

struct TriangleInfo

{

    int mIndex[3];

    Vector3 mNormal;

};

其中mIndex为三角片的顶点索引,mNormal为三角片的法线。三角片的属性其实用的并不多,它常见的属性是面点属性。所谓面点,即三角片的三个顶点。需要注意的是,面点和顶点的概念是不同的。下面是一些常见的面点属性:

- 面点法线:它和顶点法线是不一样的概念。比如特征尖锐的区域,可以设置面点法线为面法线;在光滑区域,设置面点法线为顶点法线。

- 纹理坐标:纹理坐标是一个典型的面点属性。严格来讲,顶点并没有纹理坐标的概念,只有三角形有纹理坐标的概念。网格UV展开到平面的时候,如果没有割缝产生,那么每个顶点在其相邻三角形内的纹理坐标都是一样的,故可简称为顶点的纹理坐标。如果有割缝产生,割缝处的顶点在不同三角形内的纹理坐标是不一样的。这时,顶点和纹理坐标是一对多的关系。其实,UV展开在UV域生成了一个二维网格,UV域的网格的顶点和原始网格的面点是一一对应的。所以,从这个角度来看SimplifyWithTextureCoords,它其实是对UV域的网格做了保持边界的QuadricSimplify操作。

- 点像对应:点像对应信息用于纹理贴图,它的含义是三角片的面点在图像中的对应。它的概念和纹理坐标是类似的,都是网格到二维区域的一个映射。点像对应信息在图像域也映射出了一个二维网格。和UV展开的区别在于,UV展开的二维域是唯一的,而点像对应的二维域(图像),有可能有多个(多张图片)。这导致某些三角片的面点可能对应于不同的图像域。对于这类三角片的纹理贴图,一般采用面点颜色插值。

- 注意:虽然点像对应是一个面点属性,Magic3D里的点像对应采用的却是顶点属性的表达方式,其主要原始是,网格的点像对应信息是从点云的点像对应映射过来的,所以可以认为每个顶点对应于一个像素。

相关文章

  • CSS Grid 布局完全指南3-网格项(Grid Items)

    上一篇,介绍了grid的网格容器属性,接下来继续介绍grid的网格项 属性。 网格项(Grid Items) 属性...

  • 网格属性

    网格有哪些属性 三角网格可以看作是一个图结构,由顶点,边和面(三角片)三个元素组成。网格的常见属性也由这三个元素的...

  • grid布局

    一、容器属性:display:grid ;网格布局display:inline-grid ;行内 // 网格列宽g...

  • 修改网格的属性

    运行结果:

  • CSS Grid 属性

    Test it 网格容器(Grid Container) 属性 display grid-template-col...

  • C#DataGradeView 2019-04-19

    DataGradeView数据视图网格控件 一 属性: AutoGenerateColumns 控制是否自动生成列...

  • grid - CSS网格布局 - 学习笔记

    参考 一、网格容器 将属性display值设为grid或inline-grid就创建了一个网格容器,所有容器直接子...

  • dispaly:grid 与 dispaly:flex

    display:grid; 一:常见的容器属性 1、display:grid定义一个容器属性为网格布局2、grid...

  • Flutter-7-GridView(常用方法)

    我们在body属性中加入了网格组件,常用属性: padding:表示内边距,这个小伙伴们应该很熟悉。 crossA...

  • grid网格布局

    Grid 布局的属性分成两类容器属性: 项目属性: 1、指定项目的四个边框,分别定位在哪根网格线 2、grid-c...

网友评论

    本文标题:网格属性

    本文链接:https://www.haomeiwen.com/subject/lsrjattx.html