【发布时间】:2020-10-24 22:52:55
【问题描述】:
我正在从 OpenMesh 结构构建索引和顶点缓冲区,并将其输入我的渲染引擎。在这里,我迭代我的元素(未显示)并为我的每个点创建 VertexHandles,然后添加面。
std::vector<Mesh::VertexHandle> vhandles;
for (... 3 triangle points) {
vhandles.push_back(mesh.add_vertex(Mesh::Point(
point->px, point->py, point->pz)));
}
mesh.add_face(face_vhandles);
Point 的顶点缓冲区出现在下面,我将 vhandles 数据复制到此结构中,然后构建一个数组以提供给图形引擎。
struct Point
{
float px, py, pz; // positions
float nx, ny, nz; // normals
float cx, cy, cz; // diffuse
}
当我构建上面的vhandles 向量时,我没有向 VertexHandle 添加索引/id。
我需要在某个地方存储并使用 VertexHandle 本身访问该点的 id。我会在哪里存储它?我还没有在 VertexHandle 的源代码中找到用于此目的的字段,但似乎需要一些东西。
【问题讨论】:
-
澄清 - 您想保存原始网格 (OpenMesh) 和您构造的
Point数组之间的映射? -
没有。我只是想要一个字段来将 id 存储在原始 OpenMesh::Point 或 OpenMesh::VertexHandle 中。 Botond 有一个有趣的评论,我要评论一下。
标签: computational-geometry mesh vertex openmesh