【发布时间】:2014-04-11 08:22:16
【问题描述】:
我有两个相似的点云,由一个向量定义,它们在空间中的给定位置 (x,y,z),我想同时渲染两个云并评估它们之间的差异。这是我第一个使用 OpenGL 的应用程序,所以我对它的使用还不是很了解。
我已经设法通过分别处理每个向量来渲染它们,例如:
glBegin(GL_POINTS);GLfloat green[] = { 0.f, 1.0f, .0f, alpha[1]/10 };
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, green);
glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, low_shininess);
//glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
for (std::vector<Point3D>::iterator moit = morig_cloud.begin(); moit != morig_cloud.end(); ++moit){
if ((moit - f_cloud.begin()) % (ptd[1]) == 0){
glVertex3f(moit->x, moit->y, moit->z);
}
}
glEnd();
但是,当我将两者重叠时,生成的图像如下:
红云和蓝云都应该完美匹配。有没有办法“合并”这些点?也就是说,考虑到点位置匹配,我可以更改匹配位置的颜色吗?渲染只用点完成,没有网格化。
我尝试在渲染之前比较两个向量,但算法最终太慢,因为点云太大。
【问题讨论】:
标签: c++ opengl point-clouds