Смекни!
smekni.com

Московский департамент образования лицей №1533 (информационных технологий) (стр. 3 из 3)

Из вышесказанного вытекают основные направления дальнейших исследований:

- поддержка работы алгоритма с библиотекой трехмерных моделей

- оценка эффективности алгоритма на моделях из этой библиотеки (различной сложности, конфигураций и т. п.)

Для выполнения этих целей было решено написать программу-конвертор трехмерных объектов в формат входных данных программы lfm_process. Конвертирование производится посредством эмуляции трехмерного сканирования (фотографирования). Однако это исследование приостановилось из-за проблем с форматом файлов описания геометрии модели, а также калибрационных файлов (файлов, используемых для соотнесения геометрии модели и её фотографий).


Литература

1. Э. Эйнджел. Интерактивная компьютерная графика. Вводный курс на базе OpenGL: Пер. с англ. – М.: Издательский дом "Вильямс", 2001.

2. М. Ву, Дж. Нейдер, Т. Девис, Д. Шрайнер. OpenGL. Официальное руководство программиста: Пер. с англ. – СПб: ООО «ДиаСофтЮП», 2002.

3. Интернет-сайт Sourceforge http://www.sourceforge.net/projects/openlf

4. Интернет-сайт Romulus 2

http://www.romulus2.com/articles/guides/lfm/lfm1.htm


Благодарности

Автор также выражает благодарность следующим людям, без которых данная работа не была бы возможна: С. Молинову, А. Жиркову, А. Игнатенко и Д. Першакову, Вэй-Хао Чену (Wei-Chao Chen).


Приложение 1.

char basefname[256];

char outfname[256];

switch (lopts->decomposition_type)

{

case LFMfactor4Vertex:

cout<<"Calculating Factor4-Vertex&bsol;n"; cout.flush();

sprintf(basefname, "%s&bsol;trimat_#####.mat", lopts->location_textures.c_str());

sprintf(outfname, "%s&bsol;factor4_vert_#####.mat", lopts->directory.c_str());

break;

case LFMsvdVertex:

cout<<"Calculating SVD-Vertex&bsol;n"; cout.flush();

sprintf(basefname, "%s&bsol;trimat_#####.mat", lopts->location_textures.c_str());

sprintf(outfname, "%s&bsol;svd_vert_#####.mat", lopts->directory.c_str());

break;

case LFMnmfVertex:

cout<<"Calculating NMF-Vertex&bsol;n"; cout.flush();

sprintf(basefname, "%s&bsol;trimat_#####.mat", lopts->location_textures.c_str());

sprintf(outfname, "%s&bsol;nmf_vert_#####.mat", lopts->directory.c_str());

break;

default:

return 1;

}

LFMDecomp decomp(sdf, calibs, lopts, basefname, outfname);

decomp.Init();

decomp.run();