需要在C++(vs2008)中使用openGl进行3d点云显示的某些方向。我正在尝试使用纹理进行3D点云显示。我有3个二维数组(每个大小都是1024x512),代表每个点的x,y,z。我觉得我是在正确的轨道上opengl 3D点云渲染从x,y,z二维阵列
glBegin(GL_POINTS);
for(int i=0; i<1024; i++)
{
for(int j=0; j<512; j++)
{
glVertex3f(x[i][j], y[i][j], z[i][j]);
}
}
}
glEnd();
现在这个加载所有顶点缓冲区(我认为),但在这里我不知道如何着手。或者我完全是这里错了。
然后我有另一个二维数组(大小相同),它包含我想用作3D点云和显示纹理的颜色数据(值为0-255)。
我没有每个点的RGB,所以我不能使用glColor3 *(r,g,b)。我打算使用最后一个数组(具有0-255的值)作为3D点云的纹理。从glBegin(GL_POLYGON)我认为你建议创建一个网格?问题的另一个问题是如何从上面的内容中获得进展。或者我会完全错误的方向。 – user1733628
那么,上面的代码将基本上从你的3个坐标数组中绘制一个点云。没有真正的“缓冲区”被填满,你直接进入即时模式。对于颜色:据我所知,每个顶点有一个无符号的字节值?所以你应该定义这些值如何代表一些颜色。你可以直接使用它们作为强度,或者你可以使用调色板,或者完全不同的东西。 – derhass