PMG

Форумы по созданию игр
Текущее время: 25 янв 2022 17:46

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Использование VBO
СообщениеДобавлено: 07 сен 2012 07:51 
Не в сети
Новичок

Зарегистрирован: 07 сен 2012 07:38
Сообщения: 7
Всем привет.
Вопрос к практикам.
При динамичном рисовании, когда каждая вершина на новом кадре пересчитывается центральным процессором, есть ли в таком случае, необходимость использовать VBO для оптимизации, или массивы вершин конечная точка оптимизации для такого случая?
Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование VBO
СообщениеДобавлено: 07 сен 2012 15:28 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Мне кажется VBO все равно быстрее. Во всяком случае можно иметь провести тестирование...

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование VBO
СообщениеДобавлено: 08 сен 2012 09:02 
Не в сети
Новичок

Зарегистрирован: 07 сен 2012 07:38
Сообщения: 7
Спасибо! Ну что ж, будем иметь и тестировать, тестировать и иметь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование VBO
СообщениеДобавлено: 10 сен 2012 10:58 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Вообще если есть возможность, то лучше сделать сразу несколькими путями:
Код:
int CMD2_OGL:: draw ()
{
  if ( yes_init_md2 == false || yes_draw_model == false)
    return IS_ERROR;

  CTexture_OGL * tex;
  ulong_t off=0;

  tex = (CTexture_OGL *) skin_ptr->tex_skin;
  tex->bind_texture();

  glEnableClientState(GL_VERTEX_ARRAY);
  glEnableClientState(GL_TEXTURE_COORD_ARRAY);

  if ( yes_buffers_ogl && scene_setting!=0 && scene_setting->yes_buffer_ogl ) {
    glBindBuffer(GL_ARRAY_BUFFER, bufferID);
    glVertexPointer(3, GL_FLOAT, 0, (GLvoid*)off);
    off+=(sizeof(SVector3f) * count_tri * 3);
    glTexCoordPointer(2, GL_FLOAT, 0, (GLvoid*)off);
  }
  else {
    glVertexPointer(3, GL_FLOAT, 0, (GLvoid*)ptr_vertexs);
    glTexCoordPointer(2, GL_FLOAT, 0, (GLvoid*)tex_coords);
  }

  glDrawArrays(GL_TRIANGLES, 0, count_tri * 3);

  glDisableClientState(GL_TEXTURE_COORD_ARRAY);
  glDisableClientState(GL_VERTEX_ARRAY);

  if ( yes_buffers_ogl && scene_setting!=0 && scene_setting->yes_buffer_ogl )
    glBindBuffer(GL_ARRAY_BUFFER, 0);

/*
   glBegin(GL_TRIANGLES);
   for(ulong_t x = 0, k=0; x < count_tri; x++)
   {
      glTexCoord2fv( (GLfloat*)&tex_coords[k] );
    glVertex3fv( (GLfloat*)&ptr_vertexs[k++] );
      glTexCoord2fv( (GLfloat*)&tex_coords[k] );
      glVertex3fv( (GLfloat*)&ptr_vertexs[k++] );
      glTexCoord2fv( (GLfloat*)&tex_coords[k] );
      glVertex3fv( (GLfloat*)&ptr_vertexs[k++] );
   }
  glEnd();
*/
  return IS_OK;
}

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Использование VBO
СообщениеДобавлено: 12 сен 2012 16:27 
Не в сети
Новичок

Зарегистрирован: 07 сен 2012 07:38
Сообщения: 7
Это хороший совет, обязательно учту.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB