我使用OpenGL制作3D视图,显示点云。 在当前版本中,我独立显示每个点。 每个点由其位置{Xi,Yi,Zi}和RGBA颜色{Ci}定义。
这些点是定义数据,因此当数据为0%(解释为噪声)时,它们具有最大alpha值。 相反,当数据为100%时,它们具有最小的alpha值。
我正在寻找一种有效的方法来分组这些点,以便它们看起来像多边形,具体取决于邻居点的数据(意思是alpha值)。 我试图使用立方体多边形方法显示所有点(所有点在恒定距离内彼此远离)
以下几个试验之后我现在拥有的观点的一个例子如下。
由于根据相机的角度(当前没有仔细处理相机和灯光)显示背面和正面的显示变化很大,因此无法有效显示这些点。
我们还可以看到“星”效应(数据的alpha计算需要重新设计?)。
你知道一种方法来分组这些点,当数据接近100%(alpha值为1.0)时,这些点会使这些点看起来像多边形(立方体),同时只显示“有意义”的数据(其中一个点)作为多边形的一部分应该被剔除)?
出于性能目的,“无意义”数据(在0%和用户设置级别之间被忽略)。
答案 0 :(得分:1)
如果我正确理解你的问题,你需要找到你的点的convex hull,这意味着找到一组点的非模糊和有效的表示。
一旦你这样做,你需要对网格进行三角测量,通常使用delaunay三角测量。 QHull提供此类功能。
关于你的跨性别;为了正确查看你需要对多边形/对象进行排序,这对于sorting polygons specifically来说尤其是一个棘手的问题。