OpenGL получает 2D-проекцию из 3D-точек

У меня есть коллекция 3D-облачных точек по этому коду:

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
if (keyframes[i]->numberOf3DPoints > 0)
{
    glColorPointer(3, GL_UNSIGNED_BYTE, sizeof(PointColor), ((uint8_t*)keyframes[i]->points+12));
    glVertexPointer(3, GL_FLOAT, sizeof(PointColor), ((float*)keyframes[i]->points));
    glDrawArrays(GL_POINTS, 0, keyframes[i]->numberOf3DPoints);
}
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);

Этот код отображает массив облаков 3D-точек со значениями его цвета, я хочу получить массив 2D-точек и отобразить эти точки в 2D (верхний вид 3D-точек)


person belal jafar    schedule 17.12.2011    source источник
comment
как преобразовать 3D-точки в 2D-точки, у меня есть 3D-точки от kinect, и я хочу создать 2D-карту для окружающей среды.   -  person belal jafar    schedule 17.12.2011
comment
Вы имеете в виду проекцию на плоскость?   -  person BЈовић    schedule 17.12.2011
comment
примерно так: qhwiki.originlab.com/~originla/ как/images/d/d1/   -  person belal jafar    schedule 17.12.2011


Ответы (1)


Это руководство по проецированию подробно объясняет преобразования матрицы проекции.

Чтобы получить проекцию сверху, установите матрицу проекции и установите камеру сверху и направьте ее в сторону плоскости. И этого должно быть достаточно.

person BЈовић    schedule 17.12.2011