计算机图形学中的Mesh数据结构

Mesh数据结构是3D物体形状的表示,由点、法向量和面组成。例如,一个四面体有4个顶点,4个面的法向量,4个面。Mesh文件通常包含点、法向量和面的数量,以及它们的坐标和索引信息。这种结构用于在3D绘图中存储和交换几何信息,如在Opengl中。
摘要由CSDN通过智能技术生成

Mesh(网格)是一个点(Point也可用Vertex表示)、法向量(Normal Vector),面(Face)的集合,它定义了一个3D物体的形状。
看一个例子:
这里写图片描述
(a)中的四面体有4个顶点,4个面的法向量(正规化的),4个面,其中面中保存的是该面的N个(该例中是3个)顶点和该顶点法向量(与该面法向量相同,所以faces[0]的3个点的法向量的索引都是0)的索引。所以一定要小心点、向量数组中它们各自的顺序。PS:points_index存在Face中的顺序一般为从物体外侧看的逆时针方向。

Mesh数据结构可以将该结构写入文件,供其它程序使用,以上图为例的Mesh文件为:
4 4 4
0 0 0
1 0 0
0 1 0
0 0 1
0.577 0.577 0.577
0 0 -1
-1 0 0
0 -1 0
3 1 2 3 0 0 0
3 0 2 1 1 1 1
3 0 3 2 2 2 2
3 1 3 0 3 3 3
其中第一行3个数,分别为点、正规法向量、面的数目,以上所表示的3D图形有4个顶点,4个面的法向量,4个面
2-5行为每个顶点的坐标
6-9行为每个正规法向量的i, j, k值
10-13行为每个面的信息,其中第一列为顶点个数3,2-4列为3个顶点的索引(按顺序,按顺序,按顺序),和每个顶点的法向量,这里顶点的法向量与面的法向量相同,故索引都为该面法向量的索引。

附上C++代码:
Mesh.h:

#pragma once
#include <vector>
#include "Normal.h"
#include "Face.h"
#include "Point3D.h"
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值