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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> тормозят текстуры в opengl 
:(
    Опции темы
Animator89
Дата 14.10.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



доброго времени суток!
использую devil для загрузки текстур но при создании уже трех текстурированных квадратов фпс очень низкое, меньше 15. пробовал как жпг так и бмп. может код кривой, я только начинаю... использую visual studio 2008
здесь инициализация текстур
Код

Texture = new CTexture();
    void Init(HWND hWnd)
{
    g_hWnd = hWnd;
    GetClientRect(g_hWnd, &g_rRect);
    InitializeOpenGL(g_rRect.right, g_rRect.bottom);

    // Инициализируем текстурный класс и загружаем текстуры.
    Texture = new CTexture();
    Texture->LoadTexture(IL_BMP,"image.bmp",&Textures[0]);
    Texture->LoadTexture(IL_BMP,"imageAlpha.bmp",&Textures[1]);
    Texture->LoadTexture(IL_BMP,"Cursor.bmp",&Textures[2]);
    Texture->LoadTexture(IL_BMP,"CursorAlpha.bmp",&Textures[3]);


    Font = new CFont("arial.ttf",16,16);
    glClearColor(0,0, 0, 1); 
    FPS=0;


это пример текстурирования квадрата, все остальное по аналогии
Код

glBindTexture(GL_TEXTURE_2D, Textures[0].texID);
    Player.DrawPlayer(    Player.PlayerCenterX,
                        Player.PlayerCenterY,
                        0,
                        0.5f,
                        0.5f);
    glDisable(GL_TEXTURE_2D);


вот функция построения квадрата 
Код

void Player::DrawPlayer(GLfloat x, GLfloat y, GLfloat z, 
                                GLfloat width, GLfloat height)
{
    glBegin(GL_QUADS);                
        glTexCoord2f(0,1);            
        glVertex3f(x-width, y+height, z);        
        glTexCoord2f(0,0);            
        glVertex3f(x-width, y-height,z);    
        glTexCoord2f(1,0);            
        glVertex3f(x+width, y-height, z);    
        glTexCoord2f(1,1);            /
        glVertex3f(x+width, y+height, z); 
    glEnd();    
}


а так у меня создается фон(обычный квадрат)
Код

glPushMatrix();
    glTranslatef(-3, -3, 0);
    glBindTexture(GL_TEXTURE_2D, Textures[2].texID);
                glBegin(GL_QUADS);
                        glTexCoord2f(0,0);
                        glVertex3f(0,0, -3);
                        glTexCoord2f(1,0);
                        glVertex3f(30, 0, -3);
                        glTexCoord2f(1,1);
                        glVertex3f(30, 40, -3);
                        glTexCoord2f(0,1);
                        glVertex3f(0, 40, -3);
                glEnd();
glPopMatrix();

проблема, еще раз, в том, что создав фон, курсор и игрока, очень тормозит программа... такого быть не должно. Может знает кто в чем проблема? 
Благодарю за внимание! smile

PM MAIL   Вверх
Static
Дата 14.10.2009, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



а без текстур? Не тормозит? Есть подозрение, что дело не в текстурах.
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
Alexeis
Дата 14.10.2009, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



  Может не стоят драйвера на опенгл и он эмуляцией рисует? 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Animator89
Дата 14.10.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



без текстур все отлично. 

драйвера на опенгл стоят, ну если они входят в комплект ати каталиста...

Добавлено через 6 минут и 45 секунд
Alexeis я ошибся, дрова стояли только на видео! огромнейшая тебе благодарность! и тебе Static ) 
PM MAIL   Вверх
Solomon
Дата 15.10.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

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



Alexeis, а что в твоем понимании драйвера на OpenGL? Либы ж идут в поставке с операционкой... или что ты имеешь ввиду под этим словом? 


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Alexeis
Дата 15.10.2009, 19:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Solomon @  15.10.2009,  17:10 Найти цитируемый пост)
Alexeis, а что в твоем понимании драйвера на OpenGL?

  OpenGL это стандарт. Т.е. то что написано в хидере. C винодой поставляется только OpenGL32.dll ? которая сама ничего не реализует, ну или реализует эмуляцией, которая страшно глючит и тормозит. Можно сказать не реализует. Чтобы реализовать аппаратное ускорение необходимо знать особенности видеокарты, поэтому драйвера опенгла поставляются только с драйвером от производителя. Если глянуть в секции экспорта этих Dll -ок, то можно увидеть все те же названия как и в OpenGL32.dll. Не знаю каким точно образом (возможно заменой OpenGL32.dll), но вызовы OpenGL32.dll переадресовываются драйверу (обычно вызываются одноименные функции). Майкрософт же хитрые с виндой они поставляют только те Dll драйвера, которые содержат реализации функций DirectX, те что содержат функции opengl с аппаратным ускорением они благополучно вырезают и не поставляют с операционкой. Поэтому часто наблюдается ситуация, когда DirectX работает шустро, а опенгл жутко тормозит, хотя правильный драйвер установлен в системе. Он то правильный но неполный.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Solomon
Дата 16.10.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

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



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

И ты уверен что при отсутствии поддержки энного расширения система будет эмулировать поддержку данного расширения? Насколько я знаю это в Директе при отсутствии поддержки функционала видиокартой, происходит эмуляция данного функционала системой, а в OpenGL оно либо есть либо его нету совсем... 


а OpenGL32.dll к расширениям опять же никакого отношения не имеет


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Alexeis
Дата 16.10.2009, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Solomon @  16.10.2009,  11:32 Найти цитируемый пост)
стоп стоп стоп... так ты говоришь сейчас о расширениях OpenGL, а какая связь между расширениями и кодом представленным выше? Девил насколько я знаю(хотя могу ошибаться так как толком с этой либой не работал) не использует расширения. 

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


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Solomon
Дата 16.10.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

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



Цитата(Alexeis @  16.10.2009,  12:25 Найти цитируемый пост)
 Нет я не про расширения. Недавно вот был вариант, не рисовалась штриховая линия. Если бы базовые средства работали без аппартной поддержки, то она бы везде не рисовалась, а так на другой видюхе все нарисовалось нормально. Даже такие простые вещи как рисование линий и те аппаратно ускоряются, чего уж говорить о текстурах.


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

ладно не будем разводить флуд



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

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

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


 




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


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

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