Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отсечения в OpenGL

23K
06 апреля 2007 года
fastmod
5 / / 05.04.2007
Помогите разобраться...
Последовательно рисуются 4 сферы с помощью gluSphere. Т.к. gluSphere рисует объект в центре, то каждая сфера сдвигается командой glTranslatef. В итоге получаются 4 рядом стоящие сферы. И мне надо, чтобы плоскость сечения отсекала у всей общей картины (например одну из сфер). Но если задать плоскость glClipPlane(GL_CLIP_PLANE0, equation); и включить её до рисования сфер, то отсекается кусок у каждой сферы, а не у всей картины. После рисования сфер включение плоскости ничего не дает. Как мне выйти из ситуации?
23K
06 апреля 2007 года
fastmod
5 / / 05.04.2007
Для внесения большей ясности, код генерирования DL рисования сфер:

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 или можно ли отсечь у уже нарисованой сцены?
8.2K
06 апреля 2007 года
Akela
64 / / 13.05.2005
Отсечь уже нарисованное нельзя, так как отсечение осуществляется на этапе рисования.
Для того, чтобы при таком способе рисования отсечение осуществлялось применительно ко всей сцене, нужно при рисовании каждой сферы пересчитывать уравнение плоскости таким образом, чтобы после преобразования координат (т. е. умножения на видовую матрицу) плоскость располагалась в одном и том же месте.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог