Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2014, 21:30   #1
sidvishes
 
Регистрация: 28.03.2014
Сообщений: 5
По умолчанию OpenGl ошибка в наложение текстуры

Доброго времени суток, недавно начал изучать OpenGl , и уже день четвертый мучаюсь с наложением текстуры, рисую четырехугольник, и пытаюсь наложить на него текстуру, но вместо нее получается черный экран, не могу понять где ошибка, код ниже, заранее спасибо за помощь.


Код:
#include <Windows.h>
#include <stdlib.h>
#include <gl\glut.h>
#include <GL\GLAux.h>
 
unsigned int textures[1]; //массив для хранения текстур
 
void LoadTextures () // Функция загрузки текстур
{
 
    AUX_RGBImageRec *texture1=auxDIBImageLoadA("test.bmp"); // Загружаем текстуру
    glGenTextures(1 , textures);
    glBindTexture(GL_TEXTURE_2D , textures[0]);
    glTexParameteri(GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER , GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER , GL_LINEAR);
    glTexImage2D(GL_TEXTURE_2D , 0 , 3 , texture1 ->sizeX , texture1 ->sizeY, 0 , GL_RGB , GL_UNSIGNED_BYTE , texture1 ->data);
}
 
void draw ()
{
 
    glClear (GL_COLOR_BUFFER_BIT); 
    glColor3f (0.0 , 1.0 , 0.0);
    glBegin (GL_QUADS);
 
    glTexCoord2f(0.0 , 0.0); glVertex2f(-1.0 , 0.0);
    glTexCoord2f(0.0 , 1.0); glVertex2f(-1.0 , 1.0);
    glTexCoord2f(1.0 , 1.0); glVertex2f(1.0 , 1.0);
    glTexCoord2f(1.0 , 0.0); glVertex2f(1.0 , -1.0);
 
    glEnd (); 
    glFlush ();
    //glutSwapBuffers (); 
 
}
 
void Timer (int)
{
  //draw (); 
  glutPostRedisplay (); 
  glutTimerFunc (50 , Timer , 0);
  
 
}
 
void Initialize ()
{
    LoadTextures();
    glEnable (GL_TEXTURE_2D);
    glClearColor (0.0 , 0.0 , 0.0 , 1.0);
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
        glOrtho (-20.0 , 20.0 , -20.0 , 20.0 , -1.0, 1.0);
    glMatrixMode (GL_MODELVIEW);
 
}
 
int main (int argc , char** argv ) // argc - количество аргументов , char** argv - их описание, в виде указателей на строку!
{
 
    // Глобальная инициализация!
    glutInit (&argc , argv);
    glutInitDisplayMode (GLUT_SINGLE || GLUT_RGB);
    glutInitWindowSize (400 , 400);
    glutInitWindowPosition (100 , 200);
    glutCreateWindow ("Lesson 2");
 
    glutDisplayFunc (draw);
    //glutTimerFunc (50 , Timer , 0);
    Initialize ();
 
    glutMainLoop ();
 
    
 
    return 0;
}
sidvishes вне форума Ответить с цитированием
Старый 20.05.2014, 23:55   #2
nonsys
Пользователь
 
Регистрация: 25.09.2011
Сообщений: 11
По умолчанию

Если ещё не поздно, то попробуй когда рисуеш glColor3f (1.0 , 1.0 , 1.0);
а ещё тут (GLUT_SINGLE | GLUT_RGB) у тебя было || вроде пока всё
nonsys вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL наложение линий voronuk Мультимедиа в Delphi 6 26.07.2013 22:51
наложение текстуры на фон и рисунок Ольга12 Мультимедиа в Delphi 0 28.11.2012 09:49
OpenGL - наложение текстур. Nater Общие вопросы Delphi 0 21.02.2011 20:14
наложение текстур в OpenGL FJFray Мультимедиа в Delphi 1 23.10.2010 12:40
OpenGL некорректное наложение текстуры Selestis Мультимедиа в Delphi 1 03.02.2009 19:59