OpenGL - 邻居点的分组方法

时间:2014-01-23 13:26:04

标签: opengl mfc

我使用OpenGL制作3D视图,显示点云。 在当前版本中,我独立显示每个点。 每个点由其位置{Xi,Yi,Zi}和RGBA颜色{Ci}定义。

这些点是定义数据,因此当数据为0%(解释为噪声)时,它们具有最大alpha值。 相反,当数据为100%时,它们具有最小的alpha值。

我正在寻找一种有效的方法来分组这些点,以便它们看起来像多边形,具体取决于邻居点的数据(意思是alpha值)。 我试图使用立方体多边形方法显示所有点(所有点在恒定距离内彼此远离)

以下几个试验之后我现在拥有的观点的一个例子如下。

Current view

由于根据相机的角度(当前没有仔细处理相机和灯光)显示背面和正面的显示变化很大,因此无法有效显示这些点。 我们还可以看到“星”效应(数据的alpha计算需要重新设计?)。

你知道一种方法来分组这些点,当数据接近100%(alpha值为1.0)时,这些点会使这些点看起来像多边形(立方体),同时只显示“有意义”的数据(其中一个点)作为多边形的一部分应该被剔除)? 出于性能目的,“无意义”数据(在0%和用户设置级别之间被忽略)。

1 个答案:

答案 0 :(得分:1)

如果我正确理解你的问题,你需要找到你的点的convex hull,这意味着找到一组点的非模糊和有效的表示。

一旦你这样做,你需要对网格进行三角测量,通常使用delaunay三角测量。 QHull提供此类功能。

关于你的跨性别;为了正确查看你需要对多边形/对象进行排序,这对于sorting polygons specifically来说尤其是一个棘手的问题。