
计算机图形学
泊柴
这个作者很懒,什么都没留下…
展开
-
OpenMesh 教程:删除网格元素
删除网格元素翻译,原文链接本文将说明如何从网格中删除面和顶点。这里使用的网格为第一篇教程 (创建立方体) . 如果我们想要从网格中删除顶点、面或者边,就必须先打开网格的状态属性 OpenMesh::Attributes::Status 用来保存元素是否删除。一般用动态方式定义状态变量,代码如下mesh.request_face_status();mesh.request_edge_status();mesh.request_vertex_status();创建立方体后,我们就可以用 dele翻译 2020-09-21 20:43:36 · 1543 阅读 · 0 评论 -
OpenMesh 教程:使用特性拓展网格
使用特性拓展网格翻译,原文链接注:原文标题 Extending the mesh using traits本文包括如何使用特性拓展网格要素的功能上一篇教程中我们介绍了如何改变 Point, Normal, TexCoord, Color 的数据类型,这篇文章我们讲一下如何通过特性 (traits) 来改变 Vertex, Face, Edge, Halfedge 的功能。我们的第一个利用特性技巧 (traits technique) 目的是设计一个高度定制化的数据结构 . 我们还是以网格平滑翻译 2020-09-20 22:00:41 · 709 阅读 · 0 评论 -
OpenMesh 教程:使用网格属性和特性
使用网格属性和特性翻译,原文链接**注:**原文标题为 Using mesh attributes and traits. Attribute 中文意思是属性,前面几篇文章中提到的 Property 中文翻译也是属性,我也不知道怎么翻译才能体现两个词的区别。从英文来看,Attribute 有附加和归属的意思,而 Property 有财产的意思,所以简单地可以认为 Attribute 指的是固有属性,一旦定义便不可删除,Property 则指的是可删除和添加的动态属性。本文的主要内容是说明如何改变坐标、翻译 2020-09-20 20:48:50 · 1593 阅读 · 0 评论 -
OpenMesh 教程:使用标准属性
使用标准属性翻译,原文链接本文包括如何添加和删除一个标准属性如何获取和设置标准属性的值之前就已经知道,我们可以通过增加自定义属性的方式将额外的数据与网格进行绑定,OpenMesh 中也有不少内置的属性,姑且将之称为标准属性 (standard properties). 与自定义属性不同的是,标准属性具有一些特殊性质和不同的接口,本文将着重说明这些特别之处。下表列出了不同网格要素 (entity) 能够使用的标准属性VertexFaceEdgeHalfedgeCo翻译 2020-09-20 16:03:42 · 2038 阅读 · 0 评论 -
OpenMesh 教程:使用 Smart Handles
使用 Smart Handles本文包括:如何使用 Smart Handles 和 Smart Ranges 访问网格如何使用 Smart Ranges到目前为止,我们都是使用诸如 halfedge_handle(), next_halfedge_handle(), prev_halfedge_handle(), oppopsite_halfedge_handle(), face_handle(), to_vertex_handle() 等 handle 来获取网格信息。这些函数都需要一个网格翻译 2020-09-20 15:15:25 · 1435 阅读 · 0 评论 -
OpenMesh 教程:使用 STL 算法
使用 STL 算法翻译原文链接由于 OpenMesh 中迭代器几乎于 STL 迭代器兼容,所有我们可以利用 STL 算法处理网格。下面的例子展示了如何利用 for_each 来处理循环。首先定义一个平滑算法的类,为了可重复使用,这里使用 OpenMesh 中使用模板来定义该类,模板参数为网格类型template <class Mesh> class SmootherT类 SooothT 一共有2个仿函数 (functor),分别用来计算顶点重心和设置顶点坐标,这2个防寒顺都需要重载翻译 2020-09-20 10:23:04 · 900 阅读 · 0 评论 -
OpenMesh 教程:使用自定义属性
使用自定义属性翻译,原文链接本文包括:如何添加和删除自定义属性如何获取和设置自定义属性的值上一篇文章中我们计算所有顶点相邻点的重心并将之存储在数组中,这里我们介绍一种更加方便也更不容易出错的方式,也就是利用 OpenMesh 来管理这些数据。动态的管理网格的属性会更加方便。通过创建 OpenMesh::PropertyManager 对象,我们可以很方便地创建自定义属性 (custom properties)并将其与网格关联起来。PropertyManager 可以管理这些属性的生命周期并提翻译 2020-09-19 10:33:02 · 1761 阅读 · 0 评论 -
OpenMesh 教程:iterator 和 circulator的使用
iterator和circulator的使用翻译,原文连接本文包括:如何使用迭代器 (iterator)如何使用循环迭代器 (circulator)本文将以一个简单网格平滑方法来说明如何使用 iterators 和 circulators. 这两种迭代器分别提供了遍历一个网格的所有顶点和遍历一个顶点的所有相邻点的方法(即 one-ring neighbors). 详细说明见 Mesh Iterators and Circulators.首先定义网格类型,三角网格定义如下#include &翻译 2020-09-18 22:17:28 · 660 阅读 · 0 评论 -
OpenMesh 教程:第一步——创建立方体
##第一步——创建立方体翻译,原文地址本教程包括:如何定义自己的网格类型如何给网格添加顶点和面如何使用 IO 函数输出网格对于每一个程序,首先得定义自己的网格类型 MyMesh. OpenMesh 支持多边形网格(即每个面都是有多边形并且顶点数目也可以各不相同)。在本教程中,我们将利用6个四边形创建一个立方体,因此这里我们选择多边形网格作为基础类型OpenMesh 支持多种网格核 (Mesh Kernels),不同的核其顶点、边和面的存储方式也是不同的,但是所有的存储方式都必须提供与数组类翻译 2020-09-18 21:56:43 · 2039 阅读 · 5 评论