Название: Странности в приложении Отправлено: aaamodder от Апрель 05, 2015, 09:29 Здравствуйте, уважаемые форумчане! Я только начинаю изучать OpenGL, а уже происходят непонятные вещи. Банальнейшее приложение, выводящее белый квадрат на чёрном фоне. Собственно, вот код:
Код: glClearColor(0.0, 0.0, 0.0, 0.0); Но: при нажатии на Alt после запуска изображение прямоугольник какого-то чёрта уменьшается! Кроме этого кода функциональности у приложения нет, даже обработчика QKeyEvent. Почему такое может происходить? Заранее спасибо. Если нужно, могу прикрепить скрины. Название: Re: Странности в приложении Отправлено: RSATom от Апрель 06, 2015, 09:12 Совет - изучайте сразу шейдеры.
Название: Re: Странности в приложении Отправлено: Igors от Апрель 06, 2015, 09:39 Но: при нажатии на Alt после запуска изображение прямоугольник какого-то чёрта уменьшается! От скринов мало толку, выкладывайте проект. Вероятно меняется размер выводимой области (glViewport)Кроме этого кода функциональности у приложения нет, даже обработчика QKeyEvent. Почему такое может происходить? Если нужно, могу прикрепить скрины. Совет - изучайте сразу шейдеры. Мое мнение обратное - не лезьте в шейдеры если четко не понимаете зачем. Название: Re: Странности в приложении Отправлено: __Heaven__ от Апрель 06, 2015, 12:12 ИМХО, проблема в
Код Вы матрицу моделвью не приводите к единичной и при перерисовке получаете уменьшение Совет - изучайте сразу шейдеры. Мое мнение обратное - не лезьте в шейдеры если четко не понимаете зачем. Название: Re: Странности в приложении Отправлено: Igors от Апрель 06, 2015, 13:50 ИМХО, проблема в За счет чего, "матрица поехала", что ли? :) Код Вы матрицу моделвью не приводите к единичной и при перерисовке получаете уменьшение Знания и того и другого лишними не будут ;) Шейдеры - одна из самых легких, приятных и (не побоюсь этого слова) творческих вещей в 3D. Только они не имеют ничего общего с зубрежкой классов :)Название: Re: Странности в приложении Отправлено: __Heaven__ от Апрель 06, 2015, 13:59 За счет чего, "матрица поехала", что ли? :) Ну да, вроде того.Цитировать The current matrix (see glMatrixMode) is multiplied by this matrix and the result replaces the current matrix Название: Re: Странности в приложении Отправлено: Igors от Апрель 06, 2015, 14:55 Цитировать The current matrix (see glMatrixMode) is multiplied by this matrix and the result replaces the current matrix Название: Re: Странности в приложении Отправлено: __Heaven__ от Апрель 06, 2015, 16:26 Ещё есть момент.
Нужно, различать матрицы проекции и модели. Операция glOrtho, скорее всего относилась к матрице проекции. В коде отрисовки редко приходится её редактировать (по крайней мере, при изучении). Вам необходимо редактировать её в методе resizeGL(), там же переключаться на матрицу модели, чтобы при отрисовке в методе paintGL() управление происходило именно с ней. |