PMG https://forum.pmg.org.ru/ |
|
Использование VBO https://forum.pmg.org.ru/viewtopic.php?f=1&t=9418 |
Страница 1 из 1 |
Автор: | danrusm [ 07 сен 2012 07:51 ] |
Заголовок сообщения: | Использование VBO |
Всем привет. Вопрос к практикам. При динамичном рисовании, когда каждая вершина на новом кадре пересчитывается центральным процессором, есть ли в таком случае, необходимость использовать VBO для оптимизации, или массивы вершин конечная точка оптимизации для такого случая? Спасибо. |
Автор: | MagicWolf [ 07 сен 2012 15:28 ] |
Заголовок сообщения: | Re: Использование VBO |
Мне кажется VBO все равно быстрее. Во всяком случае можно иметь провести тестирование... |
Автор: | danrusm [ 08 сен 2012 09:02 ] |
Заголовок сообщения: | Re: Использование VBO |
Спасибо! Ну что ж, будем иметь и тестировать, тестировать и иметь. |
Автор: | MagicWolf [ 10 сен 2012 10:58 ] |
Заголовок сообщения: | Re: Использование VBO |
Вообще если есть возможность, то лучше сделать сразу несколькими путями: Код: 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; } |
Автор: | danrusm [ 12 сен 2012 16:27 ] |
Заголовок сообщения: | Re: Использование VBO |
Это хороший совет, обязательно учту. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |