Отсечения в OpenGL
Последовательно рисуются 4 сферы с помощью gluSphere. Т.к. gluSphere рисует объект в центре, то каждая сфера сдвигается командой glTranslatef. В итоге получаются 4 рядом стоящие сферы. И мне надо, чтобы плоскость сечения отсекала у всей общей картины (например одну из сфер). Но если задать плоскость glClipPlane(GL_CLIP_PLANE0, equation); и включить её до рисования сфер, то отсекается кусок у каждой сферы, а не у всей картины. После рисования сфер включение плоскости ничего не дает. Как мне выйти из ситуации?
oList = glGenLists(1);
glNewList(oList, GL_COMPILE);
for (index=0; index<points.count(); index++) {
glPushMatrix();
glTranslatef( points[index].x, points[index].y, points[index].z );
gluSphere(qobj, aRadius, aSlices, aStacks);
glPopMatrix();
}
glEndList();
points - координаты центров сфер;
Вопрос такой: можно ли нарисовать это без использования glTranslatef или можно ли отсечь у уже нарисованой сцены?
Для того, чтобы при таком способе рисования отсечение осуществлялось применительно ко всей сцене, нужно при рисовании каждой сферы пересчитывать уравнение плоскости таким образом, чтобы после преобразования координат (т. е. умножения на видовую матрицу) плоскость располагалась в одном и том же месте.