Автор Тема: Алгоритмическая загрузка текстур  (Прочитано 1497 раз)

Оффлайн studenth

  • Детсадовец
  • *
  • Сообщений: 1
  • Репутация: 0
Всем доброго дня!
Столкнулся со следующей задачей...как загрузить и передать в OpenGL текстуру.
Задачу решил, но получившийся алгоритм не устраивает по скорости исполнения.
Для начала код:
//------------------------------------------------------------------------
//Среда C++ Builder 6.0
//анализируемое изображение грузим в объект TBitmap
//это слегка модернизированный алгоритм из стандартных примеров (теперь можно грузить "большие" текстуры)
       
        int k = size_of_array-1;                       //size_of_array это размерность массива = 4 * (Width * Height)
        for(int j=Image->Height-1; j>=0; j--)
        {
                for(int i=0; i<Image->Width; i++)
                {
                        Form1->tex[k] =   255;
                        Form1->tex[k-1] = GetBValue(Image->Canvas->Pixels[j]);
                        Form1->tex[k-2] = GetGValue(Image->Canvas->Pixels[j]);
                        Form1->tex[k-3] = GetRValue(Image->Canvas->Pixels[j]);               
                        k-=4;
                }
        }
Собственно на моем P III скорость загрузки текстуры, без создания mipmap'ов и отрисовки (именно скорость анализа) - порядка 8k милисекунд.
Пробовал расспаралелить задачу, и анализировать в два потока, но при этом длительность возросла, картинка анализировалась порядка 30 секунд.

Уважаемые форумчане, есть идеи? как решить проблему?