Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Не прорисовывется объект после glLoadIdentity |
Автор: x_byte 7.9.2007, 21:50 | ||
Осваиваю уроки от Nehe по OpenGL (http://www.pmg.org.ru/nehe/). Проблема в уроке #4 (http://www.pmg.org.ru/nehe/nehe04.htm). Там отрисованные треугольник и квадрат должны вращаться одновременно. Вот кусок кода:
Собственно проблема заключается в том, что квадрат в таком случае не отрисовывается. Но если удалить вторую glLoadIdentity(), то и треугольник и квадрат отрисовываются и вращаются, но как сами понимате в одной координатной сетке, т.е. не достигается нужный эффект. Процедуры glRotatef убирал, но квадрат при этом всё равно не отрисовывался. Компилятор Dev_C++, испытывал и на Borland C++ Builder, результат одинаков. В чём может быть проблема? |
Автор: sgi1981 7.9.2007, 23:37 |
А почему треугольник отрисовывается с обходом противоположным обходу вершин квадрата ? Дело в том что в OpenGL задается направление обхода вершин для скрытых поверхностей. |
Автор: x_byte 8.9.2007, 08:18 |
Спасибо за ответ. Но не помогло, отрисовывал по часовой, против часовой, но результат не изменился. Да и почему тогда без второй процедуры glLoadIdentity() (которая идёт перед отриссовкой квадрата) обе фигуры отрысовываются нормально? |
Автор: sgi1981 8.9.2007, 12:38 |
Квадрат находится за пределами наблюдаемого объема. Попробуй изменить операторы так: после второго вызова функции glLoadIdentity(), оператор будет таким glTranslatef(3.0f, 0.0f, -4.0f); |
Автор: x_byte 10.9.2007, 17:59 |
Большое спасибо. |