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

Ваш аккаунт

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

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

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

Выбор объектов мышью OpenGL

289
22 сентября 2012 года
Jeyson
207 / / 20.04.2000
Здравствуйте. Чего-то запутался. Нужно производить выбор мышью, который я успешно произвожу в glOrtho.
Переходя в gluPerspective не могу выбрать объекты. Фрагмент кода обработчика нажатия мыши:

Код:
int height=Screen->Height;
             int width=Screen->Width;
                     
          GLint viewport[4];
          GLuint selBuffer[BUFSIZE];
          glSelectBuffer ( BUFSIZE, selBuffer );
          glGetIntegerv  ( GL_VIEWPORT, viewport );
          glMatrixMode   ( GL_PROJECTION );
          glPushMatrix();
            glRenderMode ( GL_SELECT );
            glLoadIdentity();
            //gluPickMatrix ( (GLdouble)MOUSEX, (GLdouble)(viewport[3] - MOUSEY), 5, 5, viewport );
            gluPickMatrix((GLdouble)MOUSEX,(GLdouble)(viewport[3]-(MOUSEY-(cy*2))),5.0,5.0,viewport);
            gluPerspective(45.0f,(GLfloat)width/(GLfloat)height, .5f ,300.0f);
            //gluPerspective ( 60.0, (double)ViewWidth/(double)ViewHeight, 1.0, 1000.0 );
            glMatrixMode ( GL_MODELVIEW );

              DrawUzel3D(GL_SELECT );
             
              int Found = glRenderMode ( GL_RENDER ); // и это постоянно 0. Бывает редко на 1 перескакивает.
              Edit5->Text=AnsiString(Found);
            glMatrixMode ( GL_PROJECTION );
          glPopMatrix();
          glMatrixMode ( GL_MODELVIEW );


void DrawUzel3D (GLenum mode)
{
         float H=2;
              glInitNames();
              glPushName(0);

         for(int i=0;i<countUzel;i++)
         {

              if (mode==GL_SELECT)
              {
                glLoadName(i+countUch);
              }
         }
}

Подскажите пожалуйста что не так. Здесь хотя бы надо показать сколько объектов под курсором.
Спасибо.
289
24 сентября 2012 года
Jeyson
207 / / 20.04.2000
Вопрос решен. Внимательно следите за glViewport

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог