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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Плмогите с рисованием в OpenGL 
:(
    Опции темы
Ferrum
Дата 16.11.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я только начал кодить на OpenGl и сталкнулся с поблнмой, что рисуется довольно медленно

Вот мой код: (рисование модели)

glBegin(GL_TRIANGLES);
    for (int i = 0; i < CurrentModel->FacesNumber; i++){        
        for (int j = 0; j < 3; j++){            
            switch (j){
                case 0:{
                        if (CurrentModel->TVertsNumber != 0)
                        {                            
                            Temp2 = CurrentModel->MeshMapCoord1[i];
                        }
                        Temp = CurrentModel->MeshFaces1[i];    
                        break;
                       };
                case 1:{
                        if (CurrentModel->TVertsNumber != 0)
                        {                            
                            Temp2 = CurrentModel->MeshMapCoord2[i];
                        }
                        Temp = CurrentModel->MeshFaces2[i];    
                        break;
                       };
                case 2:{
                        if (CurrentModel->TVertsNumber != 0)
                        {                            
                            Temp2 = CurrentModel->MeshMapCoord3[i];
                        }
                        Temp = CurrentModel->MeshFaces3[i];    
                        break;
                       };
            }    
            if (CurrentModel->TVertsNumber != 0)
            {
                glTexCoord2f(CurrentModel->MeshTVertsPointX[Temp2], CurrentModel->MeshTVertsPointY[Temp2]);                        
            }            
        
            glNormal3f(CurrentModel->MeshNormalsPointX[Temp], CurrentModel->MeshNormalsPointY[Temp], CurrentModel->MeshNormalsPointZ[Temp]);    
            glVertex3f(CurrentModel->MeshVertsPointX[Temp] * ScaleX, CurrentModel->MeshVertsPointY[Temp] * ScaleY, CurrentModel->MeshVertsPointZ[Temp] * ScaleZ);                
        }
    }
    glEnd();

Класс модели:

class TModel{
    public:
        bool  MTLWith;
        bool  BitMapWith;        
        float Shininess;
        float MaterialAmbient[4];
        float MaterialDiffuse[4];
        float MaterialSpecular[4];        
        float *MeshVertsPointX;
        float *MeshVertsPointY;
        float *MeshVertsPointZ;
        float *MeshNormalsPointX;
        float *MeshNormalsPointY;
        float *MeshNormalsPointZ;
        float *MeshTVertsPointX;        
        float *MeshTVertsPointY;        
        int   *MeshFaces1;
        int   *MeshFaces2;
        int   *MeshFaces3;
        int   *MeshMapCoord1;
        int   *MeshMapCoord2;
        int   *MeshMapCoord3;
        int   FacesNumber;
        int   VertsNumber;
        int   TVertsNumber;        
    };


как его можно оптимизировать?(желательно с кодом)  Я прочитал про VBO, но реализовать не смог....
Какое расширение нужно подключать для работы с VBO?

PM MAIL   Вверх
Arks
Дата 6.12.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Для начала используй дисплейные списки или массивы вершин (glVertexPointer, glTexcoordPointer, glNormalPointer).
С VBO сам маялся долго, не работает. Временно забил не него, но если интересуешься поищи уроки NeHe, погугли. Там есть.
PM MAIL ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

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

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


 




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


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

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