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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2012, 23:25   #1
mrNobody
 
Аватар для mrNobody
 
Регистрация: 24.07.2011
Сообщений: 5
По умолчанию OpenGL: текстуры и производительность!

Всем привет!
Есть такой непростой (с точки зрения неопытного пользователя OpenGL) вопрос, касающийся текстур.

Суть такова: программа рисует на экране некоторое изображение, которое состоит из множества текстур. Размер текстур не более чем 256x256. Их достаточно много (более 400). Для их отрисовки используется механизм имён для текстур (через glGenTextures и glBindTexture). На стационарной машине или ноутбуке всё работает нормально. Проблема возникает на Mac'е с Win XP: каждый кадр рисуется более секунды!

Немного покопавшись я пришёл вот к чему: изображение состоит из 400 текстур, и приблизительно каждая 4я текстура требует 16ms на отрисовку (в то время как другие 3 отрисовываются менее чем за 1 ms). Т.е. каждый раз около 100 текстур требуют по 16ms, что в сумме даёт полторы секунды на кадр. Естественно это не приемлемо.

Все текстуры находятся в равных условиях: загружаются и рисуются одним и тем же кодом. Но почему они рисуются со скоростями, отличающимися на порядок?
Примечательно, что каждый раз разные текстуры требуют по 16ms, т.е., например, текстура номер 137 на предыдущем кадре потребовала 16ms, а не следующем ей понадобилось менее 1 ms чтобы отобразится на экране.
Более того, если взять изображение по меньше (например в 100 текстур 256x256), то оно не тормозит и рисуется резво.
На том же ноутбуке, но с Win 7к такой проблемы не возникает (там правда другая проблема).

Предполагал, что дело в видеокарте, так как в Маке встроенная Intel'кая видеокарта. Быть может ей не хватает памяти, и часть текстур приходится "подгружать" из оперативки каждый раз. Пробовол обновить драйвера, но никакого эффекта.

Вот такое дело. Ума не приложу, как избаиться от этого лага, и можно ли избавиться вообще, поэтому буду очень признателен любой помощи в этом вопросе!
"Восемнадцать лет, пять месяцев и утро ещё одного дня прожила на свете Люба Шевцова."
mrNobody вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи.Текстуры.OpenGL dark_sergey Мультимедиа в Delphi 3 19.12.2011 19:15
OpenGL. Текстуры. _PROGRAMM_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 14 01.06.2011 20:32
OpenGL и текстуры N!ckeL Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 05.05.2010 15:46
Текстуры OpenGl Stanislav Мультимедиа в Delphi 7 17.12.2008 17:55
OpenGL текстуры NoName_emaNoN Win Api 3 29.11.2007 20:11