Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу вывести текстуру в OpenGL 
:(
    Опции темы
mrioizo
Дата 8.10.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 8.10.2010

Репутация: нет
Всего: нет



Здравствуйте , не могу наложить текстуру в OpenGL. В OpenGL я пока, что не сильно разбираюсь, пытаюсь выключать и свет и глубину и всякие разные параметры но ничего не выводиться, выводиться квадрат на котором должна быть наложена текстура, если включаю свет, то квадрат заливается серым цветом, если без цвета то фоновым. И еще после glEnd(); происходит GL_INVALID_OPERATION 1282. А на протяжении всего кода ошибок нету!

Код

// Инициализируем класс
    Texture = new CTexture();    
    // Просим класс "Texture" загрузить указанное изображение в переданную структуру:
    //Texture->LoadTexture(IL_PNG,(char*)TextureName.c_str(),&textures[0]);
    Texture->LoadTexture(IL_PNG,"c:\\note.png",&textures[0]);



Текстуру загружаю с помощью Devila, она загружается нормально.

Код


wxPaintDC dc(this);
#ifndef __WXMOTIF__
    if (!GetContext()) return;
#endif
    SetCurrent();
    // Init OpenGL once, but after SetCurrent
  /*  if (!m_init)
    {
        InitGL();
        m_init = true;
    }*/    
    
    int w=0,h=0;
    this->GetSize(&w,&h);
    GLenum error = glGetError();
    glViewport( 0,0,w,h );
    error = glGetError();
    glMatrixMode( GL_PROJECTION );
    error = glGetError();
    glLoadIdentity();    
    error = glGetError();
    // Reset The Current Matrix to E
    glOrtho( 0, w, h, 0, 0, 1 );
    error = glGetError();
    glMatrixMode(GL_MODELVIEW);
    error = glGetError();
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);  // Clear The Screen And The Depth Buffer
    error = glGetError();
    glLoadIdentity();  // Reset The View                
    error = glGetError();

    glEnable(GL_TEXTURE_2D);            
    error = glGetError();
    error = glGetError();
    //glDisable(GL_DEPTH_TEST);            
    error = glGetError();
    //glEnable(GL_COLOR);
    glDisable(GL_BLEND);
    //glEnable(GL_DEPTH_TEST);
    glDisable(GL_DEPTH_TEST);

    error = glGetError();
            
    glColor4f(0.0f,0.5f,0.5f,1.0f);            // Full Brightness, 50% Alpha ( NEW )
    //glTranslatef((-1)*(w/2-(GLfloat)textures[0].width/2)+10,(-1)*(h/2-(GLfloat)textures[0].height/2),0.0f);    
    glBindTexture(GL_TEXTURE_2D, textures[0].texID);
    error = glGetError();

                
                
    glEnable(GL_LIGHTING);
    error = glGetError();
    glEnable(GL_LIGHT0);
    error = glGetError();
    glLightf(GL_LIGHT0, GL_POSITION, -128.0f);
    
    glBegin(GL_QUADS);                  
        glTexCoord2i(0,2);  glVertex2i(0,textures[0].height);
        
        glTexCoord2i(2,2);  glVertex2i(textures[0].width,textures[0].height); 
        
        glTexCoord2i(2,0);  glVertex2i(textures[0].width,0);
        
        glTexCoord2i(0,0);  glVertex2i(0,0);        
        
    glEnd();
    error = glGetError();

    //glFlush();
    error = glGetError();
    SwapBuffers();
    error = glGetError();

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0887 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.