Реализация алгоритма из этой статьи:
http://home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html
Пример использования:
#include "acmr.h"
#include "ls_vcache_opt.h"
{
std::vector<unsigned short> pos_indices;
std::vector<my_vertex> vertices;
//...
float acmr_before = ls_vcache_opt::acmr( &pos_indices[0], pos_indices.size()/3, 16 );
ls_vcache_opt::optimize( &pos_indices[0], pos_indices.size()/3, vertices.size() );
unsigned short num_verts = ls_vcache_opt::reorder_vertices( &pos_indices[0], pos_indices.size()/3, vertices );
vertices.resize( num_verts );
float acmr_after = ls_vcache_opt::acmr( &pos_indices[0], pos_indices.size()/3, 16 );
}
код:
http://files.rsdn.ru/38429/ls_vcache_opt.zip
Можно в двух словах. Что это? Где нужно? Где применяется?
Здравствуйте, nen777w, Вы писали:
N>Можно в двух словах. Что это? Где нужно? Где применяется?
Думаю, чаще всего в игроделаньи. Но можно и во всяких CAD-ах применять с 3Д визуализацией.
Рендеринг 3Д моделей (т.е. списков треугольников) происходит на современных видеокартах, на которых стоят специализированные процессоры с кеш памятью. При рендеринге желательно упорядочить так список треугольников, чтоб использование кеша процессора было максимально эффективным. Что варьируется от размеров кеша и способов его организации.
Тут представлен алгоритм универсального упорядочивания треугольников, что позволит на большиенстве видеокарт отрисовывать 3Д модели максимально эффективно.
... << RSDN@Home 1.2.0 alpha rev. 787>>